Ticket #27 (closed task: fixed)
filtr dla szablonów konwertujący AST do HTML
Reported by: | dozzie | Owned by: | dozzie |
---|---|---|---|
Priority: | normal | Milestone: | połączenie logiki z UI |
Component: | Keywords: | ||
Cc: | Parent ID: |
Description
W #26 powstał parser dla naszego języka wiki. Ten parser dostarcza drzewa wyprowadzenia (AST, abstract syntax tree), w którym węzłami są fragmenty treści strony ułożone hierarchicznie (paragraf zawiera jedną lub więcej linii, linia zawiera fragmenty tekstu zwykłego i formatowanego, ...).
Nasze AST trzeba zamienić na HTML. Właściwym miejscem na to są szablony, więc potrzebny będzie nasz własny filtr. Dokumentacja na ten temat jest tu: https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/
Child Tickets
Attachments
Change History
comment:2 Changed 8 years ago by dozzie
Opisy węzłów są tu: SyntaxTree
Jeszcze obiecałem przykłady takich drzew (kod pythonowy) i sposób ich produkcji.
Changed 8 years ago by dozzie
- Attachment markup-samples.zip added
przykładowe pliki z tekstem wiki i drzewa wyprowadzenia z nich uzyskane
comment:3 Changed 8 years ago by dozzie
W załączniku markup-samples.zip zamieściłem przykładowe pliki z tekstem wiki (te same, które są w źródłach) i odpowiadające im reprezentacje jako drzewo (kod pythonowy).
Dalsze przykłady można uzyskać w ten sposób:
from dashwiki.markup.lexer import Lexer from dashwiki.markup.parser import Parser content = file("nazwapliku.txt").read() lexer = Lexer(content) parser = Parser() result_tree = parser.parse(lexer)