Renderers¶
- class wenmode.renderers.RenderContext¶
Base render context passed through renderer handlers.
- class wenmode.renderers.BaseRenderer¶
Dispatch-based base class for renderers.
Subclasses register handlers with
register(). A handler receives the renderer instance, the node, and the render context, and returns rendered text.- create_context(node=None)¶
Create a render context for one render call.
- Parameters:
node (Node | None) – Root node being rendered, when available.
- Returns:
New render context.
- Return type:
- render(node, context=None)¶
Render a node.
- Parameters:
node (Node) – Node to render.
context (RenderContext | None) – Optional render context. When omitted, a new context is created.
- Returns:
Rendered output.
- Return type:
str
- render_iter(nodes)¶
Render an iterable of nodes with one shared context.
- Parameters:
nodes (Iterable[Node]) – Nodes to render.
- Returns:
Iterator of rendered chunks.
- Return type:
Iterator[str]
- render_node(node, context)¶
Render one node with an existing context.
- render_children(children, context)¶
Render child nodes and concatenate their output.
- classmethod register(node_type)¶
Register a render handler for a node type.
- Parameters:
node_type (str) – Value of
node.typehandled by the decorated function.- Returns:
Decorator that stores the handler on the renderer class.
- Return type:
Callable[[Callable[[…], str]], Callable[[…], str]]
- render_unknown(node, context)¶
Render a node without a registered handler.
The default behavior renders child nodes, then literal
valuefields, and otherwise returns an empty string.
- class wenmode.HTMLRenderer(escape=True, sanitize_urls=True, directives=())¶
Render Wenmode nodes as HTML.
- Parameters:
escape (bool) – Escape raw HTML nodes when
True.sanitize_urls (bool) – Drop unsafe URL schemes from links and images when
True.directives (Iterable[DirectiveHtmlRenderer]) – Directive renderers to register at construction time.
- create_context(node=None)¶
Create an HTML render context.
- register_directive_renderer(directive)¶
Register one directive renderer.
- Parameters:
directive (DirectiveHtmlRenderer) – Directive renderer implementation.
- escape(value)¶
Escape raw HTML when renderer escaping is enabled.
- escape_html(value)¶
Escape a string for HTML text or attribute output.
- render_attrs(attrs)¶
Render a mapping as HTML attributes.
NoneandFalsevalues are omitted.Truevalues render as boolean attributes.
- sanitize_url(value)¶
Return a URL if its scheme is allowed, otherwise
None.
- class wenmode.MarkdownRenderer¶
Render Wenmode nodes as normalized Markdown.
The renderer serializes the AST and is not source preserving. Syntax details that are not represented in the node tree may be normalized.
- escape_text(value)¶
Escape Markdown punctuation in plain text.
- escape_destination(value)¶
Escape a link or image destination.
- escape_title(value)¶
Escape a link or image title.
- render_directive_attributes(attributes)¶
Render directive attributes in Markdown directive syntax.
- class wenmode.RSTRenderer¶
Render Wenmode nodes as reStructuredText.
- create_context(node=None)¶
Create a reStructuredText render context.
- escape_text(value)¶
Escape reStructuredText punctuation in plain text.
- escape_inline_literal(value)¶
Escape text inside an inline literal.
- escape_link_target(value)¶
Escape a link or image target.
- render_directive_argument(node, context)¶
Render a directive argument from a directive or label node.