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, BaseRenderer

Render 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_text(node: Text) None

Render a Text node.

Parameters:

node (Text) – Text to render

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

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

visit_math_block(node: MathBlock) None

Render a MathBlock node.

Textile doesn’t have native math support, so we render as a code block.

Parameters:

node (MathBlock) – Math block to render

render(doc: Document, output: str | Path | IO[bytes]) None

Render AST to Textile 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)