all2md.renderers.dokuwiki
DokuWiki rendering from AST.
This module provides the DokuWikiRenderer class which converts AST nodes to DokuWiki markup text. The renderer supports configurable rendering options for controlling output format suitable for DokuWiki-based wikis.
- class all2md.renderers.dokuwiki.DokuWikiRenderer
Bases:
NodeVisitor,InlineContentMixin,BaseRendererRender AST nodes to DokuWiki markup text.
This class implements the visitor pattern to traverse an AST and generate DokuWiki output suitable for DokuWiki-based wikis.
- Parameters:
options (DokuWikiOptions or None, default = None) – DokuWiki rendering options
Examples
Basic usage:
>>> from all2md.ast import Document, Heading, Text >>> from all2md.renderers.dokuwiki import DokuWikiRenderer >>> doc = Document(children=[ ... Heading(level=1, content=[Text(content="Title")]) ... ]) >>> renderer = DokuWikiRenderer() >>> wiki_text = renderer.render_to_string(doc) >>> print(wiki_text) ====== Title ======
Initialize the DokuWiki renderer with options.
- __init__(options: DokuWikiOptions | None = None)
Initialize the DokuWiki renderer with options.
- render_to_string(document: Document) str
Render a document AST to DokuWiki markup string.
- Parameters:
document (Document) – The document node to render
- Returns:
DokuWiki markup text
- Return type:
str
- visit_document(node: Document) None
Render a Document node.
- Parameters:
node (Document) – Document to render
- visit_heading(node: Heading) None
Render a Heading node.
DokuWiki headings use equals signs: ====== Level 1 ====== Level calculation: 6 equals for level 1, 5 for level 2, etc.
- Parameters:
node (Heading) – Heading to render
- visit_paragraph(node: Paragraph) None
Render a Paragraph node.
- Parameters:
node (Paragraph) – Paragraph to render
- visit_code_block(node: CodeBlock) None
Render a CodeBlock node.
DokuWiki code blocks use <code> or <code language>.
- Parameters:
node (CodeBlock) – Code block to render
- visit_block_quote(node: BlockQuote) None
Render a BlockQuote node.
DokuWiki blockquotes use > at the start of each line.
- Parameters:
node (BlockQuote) – Block quote to render
- visit_list(node: List) None
Render a List node.
DokuWiki lists use * for unordered and - for ordered. Nested lists are indented with 2 spaces per level.
- Parameters:
node (List) – List to render
- visit_list_item(node: ListItem) None
Render a ListItem node.
- Parameters:
node (ListItem) – List item to render
- visit_table(node: Table) None
Render a Table node.
DokuWiki tables use ^ for headers and | for cells.
- Parameters:
node (Table) – Table to render
- visit_table_row(node: TableRow) None
Render a TableRow node.
Note: Table rows are rendered by visit_table, not individually.
- Parameters:
node (TableRow) – Table row to render
- visit_table_cell(node: TableCell) None
Render a TableCell node.
Note: Table cells are rendered by _render_table_row.
- Parameters:
node (TableCell) – Table cell to render
- visit_thematic_break(node: ThematicBreak) None
Render a ThematicBreak node.
DokuWiki uses —- for horizontal rules.
- Parameters:
node (ThematicBreak) – Thematic break to render
- visit_emphasis(node: Emphasis) None
Render an Emphasis (italic) node.
DokuWiki uses // for italic.
- Parameters:
node (Emphasis) – Emphasis to render
- visit_strong(node: Strong) None
Render a Strong (bold) node.
DokuWiki uses ** for bold.
- Parameters:
node (Strong) – Strong to render
- visit_code(node: Code) None
Render an inline Code node.
DokuWiki uses ‘’ for monospace (two single quotes). Can optionally use <code> tags if monospace_fence is enabled.
- Parameters:
node (Code) – Code to render
- visit_link(node: Link) None
Render a Link node.
DokuWiki uses [[url]] or [[url|text]].
- Parameters:
node (Link) – Link to render
- visit_image(node: Image) None
Render an Image node.
DokuWiki uses {{image.png}} or {{image.png|alt text}}.
- Parameters:
node (Image) – Image to render
- visit_line_break(node: LineBreak) None
Render a LineBreak node.
DokuWiki uses \ for hard line breaks. Soft line breaks are rendered as newlines.
- Parameters:
node (LineBreak) – Line break to render
- visit_strikethrough(node: Strikethrough) None
Render a Strikethrough node.
DokuWiki uses <del>text</del> for strikethrough.
- Parameters:
node (Strikethrough) – Strikethrough to render
- visit_underline(node: Underline) None
Render an Underline node.
DokuWiki uses __ for underline.
- Parameters:
node (Underline) – Underline to render
- visit_superscript(node: Superscript) None
Render a Superscript node.
DokuWiki uses <sup>text</sup> for superscript.
- Parameters:
node (Superscript) – Superscript to render
- visit_subscript(node: Subscript) None
Render a Subscript node.
DokuWiki uses <sub>text</sub> for subscript.
- Parameters:
node (Subscript) – Subscript to render
- visit_html_block(node: HTMLBlock) None
Render an HTMLBlock node.
- Parameters:
node (HTMLBlock) – HTML block to render
- visit_html_inline(node: HTMLInline) None
Render an HTMLInline node.
- Parameters:
node (HTMLInline) – HTML inline to render
- visit_footnote_reference(node: FootnoteReference) None
Render a FootnoteReference node.
DokuWiki uses ((footnote text)) for inline footnotes. Since we only have a reference ID, we render a placeholder.
- Parameters:
node (FootnoteReference) – Footnote reference to render
- visit_footnote_definition(node: FootnoteDefinition) None
Render a FootnoteDefinition node.
DokuWiki doesn’t have separate footnote definitions. Footnotes are inline using ((text)).
- Parameters:
node (FootnoteDefinition) – Footnote definition to render
- visit_definition_list(node: DefinitionList) None
Render a DefinitionList node.
DokuWiki doesn’t have native definition list syntax. Use HTML <dl>, <dt>, <dd> if use_html_for_unsupported is enabled.
- Parameters:
node (DefinitionList) – Definition list to render
- visit_definition_term(node: DefinitionTerm) None
Render a DefinitionTerm node.
- Parameters:
node (DefinitionTerm) – Definition term to render
- visit_definition_description(node: DefinitionDescription) None
Render a DefinitionDescription node.
- Parameters:
node (DefinitionDescription) – Definition description to render
- visit_math_inline(node: MathInline) None
Render a MathInline node.
DokuWiki typically uses plugin syntax for math. Render as <math>content</math> if use_html_for_unsupported.
- Parameters:
node (MathInline) – Inline math to render
- visit_math_block(node: MathBlock) None
Render a MathBlock node.
DokuWiki typically uses plugin syntax for math blocks. Render as <MATH>content</MATH> if use_html_for_unsupported.
- Parameters:
node (MathBlock) – Math block to render
- visit_comment(node: Comment) None
Render a Comment node according to comment_mode option.
- Parameters:
node (Comment) – Comment block to render
Notes
Supports multiple rendering modes via comment_mode option: - “html”: Use HTML comment syntax <!– –> (default) - “visible”: Render as visible text - “ignore”: Skip comment entirely
- visit_comment_inline(node: CommentInline) None
Render a CommentInline node according to comment_mode option.
- Parameters:
node (CommentInline) – Inline comment to render
Notes
Supports multiple rendering modes via comment_mode option: - “html”: Use C-style comment syntax (default) - “visible”: Render as visible bracketed text - “ignore”: Skip comment entirely