all2md.renderers.html
HTML rendering from AST.
This module provides the HtmlRenderer class which converts AST nodes to HTML format. The renderer supports standalone documents with CSS styling, as well as HTML fragments for embedding in other documents.
The rendering process uses the visitor pattern to traverse the AST and generate HTML output with appropriate semantic markup.
- class all2md.renderers.html.HtmlRenderer
Bases:
NodeVisitor,InlineContentMixin,BaseRendererRender AST nodes to HTML format.
This class implements the visitor pattern to traverse an AST and generate HTML output. It supports both standalone HTML documents with CSS styling and HTML fragments for embedding.
- Parameters:
options (HtmlRendererOptions or None, default = None) – HTML rendering options
Examples
Basic usage:
>>> from all2md.ast import Document, Heading, Text >>> from all2md.options import HtmlRendererOptions >>> from all2md.renderers.html import HtmlRenderer >>> doc = Document(children=[ ... Heading(level=1, content=[Text(content="Title")]) ... ]) >>> options = HtmlRendererOptions() >>> renderer = HtmlRenderer(options) >>> html = renderer.render_to_string(doc)
Initialize the HTML renderer with options.
- __init__(options: HtmlRendererOptions | None = None)
Initialize the HTML renderer with options.
- render_to_string(document: Document) str
Render a document AST to HTML string.
- Parameters:
document (Document) – The document node to render
- Returns:
HTML text
- Return type:
str
- render(doc: Document, output: str | Path | IO[bytes]) None
Render the AST to HTML and write to output.
- Parameters:
doc (Document) – AST Document node to render
output (str, Path, or IO[bytes]) – Output destination (file path or file-like object)
- 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.
- Parameters:
node (TableRow) – Table row to render
- visit_table_cell(node: TableCell) None
Render a TableCell node.
- 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_emphasis(node: Emphasis) None
Render an Emphasis node.
- Parameters:
node (Emphasis) – Emphasis to render
- 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_mark(node: Mark) None
Render a Mark (highlight) node.
- Parameters:
node (Mark) – Mark 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 (inline).
- Parameters:
node (CommentInline) – Inline comment to render
- visit_footnote_reference(node: FootnoteReference) None
Render a FootnoteReference node.
- Parameters:
node (FootnoteReference) – Footnote reference to render
- visit_math_inline(node: MathInline) None
Render a MathInline node.
- Parameters:
node (MathInline) – Inline math 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.
- Parameters:
node (DefinitionTerm) – Definition term to render
- visit_definition_description(node: DefinitionDescription) None
Render a DefinitionDescription node.
- Parameters:
node (DefinitionDescription) – Definition description to render