all2md.renderers.textile
Textile rendering from AST.
This module provides the TextileRenderer class which converts AST nodes to Textile markup text. The renderer supports configurable rendering options for controlling output format.
- class all2md.renderers.textile.TextileRenderer
Bases:
NodeVisitor,InlineContentMixin,BaseRendererRender AST nodes to Textile markup text.
This class implements the visitor pattern to traverse an AST and generate Textile output.
- Parameters:
options (TextileRendererOptions or None, default = None) – Textile rendering options
Examples
Basic usage:
>>> from all2md.ast import Document, Heading, Text >>> from all2md.renderers.textile import TextileRenderer >>> doc = Document(children=[ ... Heading(level=1, content=[Text(content="Title")]) ... ]) >>> renderer = TextileRenderer() >>> textile_text = renderer.render_to_string(doc) >>> print(textile_text) h1. Title
Initialize the Textile renderer with options.
- __init__(options: TextileRendererOptions | None = None)
Initialize the Textile renderer with options.
- render_to_string(document: Document) str
Render a document AST to Textile string.
- Parameters:
document (Document) – The document node to render
- Returns:
Textile 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.
Textile uses h1., h2., etc. notation for headings.
- 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.
Textile uses bc. notation for code blocks.
- Parameters:
node (CodeBlock) – Code block to render
- visit_block_quote(node: BlockQuote) None
Render a BlockQuote node.
Textile uses bq. notation for block quotes.
- Parameters:
node (BlockQuote) – Block quote to render
- visit_list(node: List) None
Render a List node.
Textile uses * for unordered lists and # for ordered lists.
- 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.
Textile uses pipe-cell-pipe notation for tables. Headers use pipe-underscore-dot-header-pipe notation.
- Parameters:
node (Table) – Table 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.
Textile doesn’t have a standard horizontal rule syntax, so we use HTML.
- 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) - “blockquote”: Render as Textile blockquote (bq.) - “ignore”: Skip comment entirely
- visit_emphasis(node: Emphasis) None
Render an Emphasis node.
Textile uses _text_ for emphasis (italic).
- Parameters:
node (Emphasis) – Emphasis to render
- visit_strong(node: Strong) None
Render a Strong node.
Textile uses text for strong (bold).
- Parameters:
node (Strong) – Strong to render
- visit_code(node: Code) None
Render a Code node.
Textile uses @code@ for inline code.
- Parameters:
node (Code) – Code to render
- visit_link(node: Link) None
Render a Link node.
Textile uses “link text”:url notation.
- Parameters:
node (Link) – Link to render
- visit_image(node: Image) None
Render an Image node.
Textile uses !imageurl! notation for images. Alt text can be added with !imageurl(alt text)!
- Parameters:
node (Image) – Image to render
- visit_line_break(node: LineBreak) None
Render a LineBreak node.
- Parameters:
node (LineBreak) – Line break to render
- visit_superscript(node: Superscript) None
Render a Superscript node.
Textile uses ^text^ for superscript.
- Parameters:
node (Superscript) – Superscript to render
- visit_subscript(node: Subscript) None
Render a Subscript node.
Textile uses ~text~ for subscript.
- Parameters:
node (Subscript) – Subscript to render
- visit_underline(node: Underline) None
Render an Underline node.
Textile uses +text+ for underline (inserted text).
- Parameters:
node (Underline) – Underline to render
- visit_strikethrough(node: Strikethrough) None
Render a Strikethrough node.
Textile uses -text- for strikethrough (deleted text).
- Parameters:
node (Strikethrough) – Strikethrough 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) - “blockquote”: Render as bracketed text (Textile has no inline blockquotes) - “ignore”: Skip comment entirely
- visit_definition_list(node: DefinitionList) None
Render a DefinitionList node.
Textile doesn’t have native definition lists, so we render as bold term followed by indented description.
- 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_footnote_reference(node: FootnoteReference) None
Render a FootnoteReference node.
Textile doesn’t have native footnote syntax, so we render as superscript with the identifier.
- Parameters:
node (FootnoteReference) – Footnote reference to render
- visit_footnote_definition(node: FootnoteDefinition) None
Render a FootnoteDefinition node.
Textile doesn’t have native footnote syntax, so we render as a paragraph with a bold identifier followed by the content.
- Parameters:
node (FootnoteDefinition) – Footnote definition to render
- visit_math_inline(node: MathInline) None
Render a MathInline node.
Textile doesn’t have native math support, so we render as inline code.
- Parameters:
node (MathInline) – Inline math to render