all2md.renderers.mediawiki
MediaWiki rendering from AST.
This module provides the MediaWikiRenderer class which converts AST nodes to MediaWiki markup text. The renderer supports configurable rendering options for controlling output format suitable for Wikipedia and other MediaWiki-based wikis.
- class all2md.renderers.mediawiki.MediaWikiRenderer
Bases:
NodeVisitor,InlineContentMixin,BaseRendererRender AST nodes to MediaWiki markup text.
This class implements the visitor pattern to traverse an AST and generate MediaWiki output suitable for Wikipedia and other MediaWiki-based wikis.
- Parameters:
options (MediaWikiOptions or None, default = None) – MediaWiki rendering options
Examples
Basic usage:
>>> from all2md.ast import Document, Heading, Text >>> from all2md.renderers.mediawiki import MediaWikiRenderer >>> doc = Document(children=[ ... Heading(level=1, content=[Text(content="Title")]) ... ]) >>> renderer = MediaWikiRenderer() >>> wiki_text = renderer.render_to_string(doc) >>> print(wiki_text) = Title =
Initialize the MediaWiki renderer with options.
- __init__(options: MediaWikiOptions | None = None)
Initialize the MediaWiki renderer with options.
- render_to_string(document: Document) str
Render a document AST to MediaWiki markup string.
- Parameters:
document (Document) – The document node to render
- Returns:
MediaWiki 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.
- 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.
- Parameters:
node (CodeBlock) – Code block to render
- visit_block_quote(node: BlockQuote) None
Render a BlockQuote node.
- Parameters:
node (BlockQuote) – Block quote to render
- visit_list_item(node: ListItem) None
Render a ListItem node.
- Parameters:
node (ListItem) – List item to render
- visit_table_row(node: TableRow) None
Render a TableRow node (handled by visit_table).
- Parameters:
node (TableRow) – Table row to render
- visit_table_cell(node: TableCell) None
Render a TableCell node (handled by visit_table).
- Parameters:
node (TableCell) – Table cell to render
- visit_thematic_break(node: ThematicBreak) None
Render a ThematicBreak node.
- Parameters:
node (ThematicBreak) – Thematic break to render
- visit_html_block(node: HTMLBlock) None
Render an HTMLBlock node.
- Parameters:
node (HTMLBlock) – HTML 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_emphasis(node: Emphasis) None
Render an Emphasis node.
- Parameters:
node (Emphasis) – Emphasis to render
- visit_code(node: Code) None
Render a Code node.
- Parameters:
node (Code) – Code to render
Notes
Code content is HTML-escaped to prevent markup injection and ensure special characters like <, >, and & display correctly.
- visit_image(node: Image) None
Render an Image node.
- Parameters:
node (Image) – Image to render
Notes
MediaWiki image syntax: [[File:filename|options|caption]] - When image_thumb=True and caption_mode is configured, renders with caption - Caption can be derived from alt_text or title metadata - alt= attribute and caption text can be controlled separately via image_caption_mode
- visit_line_break(node: LineBreak) None
Render a LineBreak node.
- Parameters:
node (LineBreak) – Line break to render
- visit_strikethrough(node: Strikethrough) None
Render a Strikethrough node.
- Parameters:
node (Strikethrough) – Strikethrough to render
- visit_underline(node: Underline) None
Render an Underline node.
- Parameters:
node (Underline) – Underline to render
- visit_superscript(node: Superscript) None
Render a Superscript node.
- Parameters:
node (Superscript) – Superscript to render
- visit_subscript(node: Subscript) None
Render a Subscript node.
- Parameters:
node (Subscript) – Subscript to render
- visit_html_inline(node: HTMLInline) None
Render an HTMLInline node.
- Parameters:
node (HTMLInline) – Inline HTML to render
- 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 HTML comment syntax <!– –> (default) - “visible”: Render as visible text - “ignore”: Skip comment entirely
- visit_footnote_reference(node: FootnoteReference) None
Render a FootnoteReference node.
- Parameters:
node (FootnoteReference) – Footnote reference to render
- visit_footnote_definition(node: FootnoteDefinition) None
Render a FootnoteDefinition node.
- Parameters:
node (FootnoteDefinition) – Footnote definition to render
- visit_definition_list(node: DefinitionList) None
Render a DefinitionList node.
- Parameters:
node (DefinitionList) – Definition list to render
- visit_definition_term(node: DefinitionTerm) None
Render a DefinitionTerm node (handled by visit_definition_list).
- Parameters:
node (DefinitionTerm) – Definition term to render
- visit_definition_description(node: DefinitionDescription) None
Render a DefinitionDescription node (handled by visit_definition_list).
- Parameters:
node (DefinitionDescription) – Definition description to render
- visit_math_inline(node: MathInline) None
Render a MathInline node.
- Parameters:
node (MathInline) – Inline math to render