Czy istnieje drzewo reST Writer dla docutil.nodes? Nie mogłem go znaleźć, ale może brakuje mi czegoś oczywistego. Czy jest to łatwe, aby napisać samemu? Chcę zaimplementować transformacje typu "ReST-to-ReST".Czy istnieje program ReST Writer?
Odpowiedz
Nie ma żadnego i trudno jest, jeśli nie niemożliwe, zaimplementować jeden poza banalnym znacznikiem ReST.
ReST Role i dyrektywy mogą wykonywać dowolny kod w czasie parse. W szczególności rola lub dyrektywa może tworzyć i wstawiać węzły arbitralnych typów z dowolną zawartością do drzewa dokumentu. Tak więc nie ma bezpośredniego mapowania między drzewem dokumentu a kodem źródłowym ReST iw związku z tym niemożliwe jest uzyskanie oryginalnego kodu źródłowego ReST - lub przynajmniej czegoś, co się zbliża - dla dowolnego drzewa dokumentu.
Przykładem realnym są różne dyrektywy z Sphinx, np. py:class
. Te dyrektywy wstawiają węzły do drzewa dokumentu, które w późniejszym czasie są przekształcane w rzeczywiste odsyłacze. Jednakże nie ma jednej dyrektywy, która odpowiada węzłowi, a zatem nie ma źródła ReST, które bezpośrednio odpowiada drzewu dokumentów zawierającemu takie węzły.
Można zaimplementować program piszący do prostych standardowych znaczników ReST, tj. Nagłówków, akapitów, podkreślenia i tym podobnych. Nie znam żadnej implementacji, ale to jest trywialne. To może, ale nie musi wystarczyć dla twoich celów.
Jeśli twoje dokumenty zawierają role, dyrektywy lub substytucje, kompletne transformacje ReST są niemożliwe. Można jednak sortować - oszukiwać, najpierw wyrejestrowując wszystkie role i dyrektywy, a następnie rejestrując funkcję, która przechwytuje wszystkie role i dyrektywy, i zachowuje je dosłownie w drzewie dokumentu. Na podstawie takiego drzewa możesz przywrócić źródło (lub przynajmniej zbliżyć się do tego). Zastępstwa są jednak tracone, ponieważ są one stosowane na wczesnym etapie analizowania i nie pojawiają się w wynikowym drzewie.
- 1. Czy istnieje sposób zamknięcia programu Writer bez zamykania strumienia bazowego?
- 2. Standard REST sprawdzający, czy zasób istnieje
- 3. Sprawdź, czy program istnieje ze skryptu pythonowego
- 4. Python csv writer wrong separator?
- 5. Jak przekonwertować Writer na ciąg
- 6. Konwersja PDF do XPS poprzez Writer
- 7. Zmienianie zapisanych danych w monitorze Writer
- 8. Napisz StringBuilder do Writer, bez toString()
- 9. Czy istnieje program, który zaciemnia kod źródłowy C#?
- 10. Czy istnieje program do formatowania kodu źródłowego Groovy?
- 11. Czy w Pythonie istnieje program taki jak GitLab?
- 12. Czy istnieje globalny program obsługi wyjątków dla NServiceBus?
- 13. Czy istnieje przydatna biblioteka/program rozpoznawania pisma ręcznego?
- 14. Czy ODATA jest REST?
- 15. 'Programowanie przez przypadek' Ćwiczenie: Java File Writer
- 16. Jetty Filtr do modyfikowania reakcji - java.lang.IllegalStateException writer
- 17. Python CSV nie ma atrybutu "Writer"
- 18. Czy można programować program UIContainerView?
- 19. Czy mój program Turing-complete?
- 20. Czy istnieje dekompilator C++?
- 21. Czy istnieje metoda REST, aby ustalić, czy test POST zakończy się pomyślnie?
- 22. Czy istnieje klucz API do odczytu REST dla bazy danych MongoLab, czy zawsze jest to ReadWrite
- 23. Czy istnieje sposób sprawdzenia, czy skrypt jest uruchamiany przez program PowerShell ISE?
- 24. Czy "elseif" nadal istnieje?
- 25. Sprawdź, czy program jest zainstalowany
- 26. Czy można ustawić program MasterType?
- 27. Czy można stylować program ProgressIndicator?
- 28. Czy program sqlite3 kompresuje dane?
- 29. Czy program cudaFree() jest asynchroniczny?
- 30. Czy działa ten sam program addEventListener?
+1 Piękna odpowiedź, dzięki. – ThomasH