Core Renderers

Base

class mistletoe.renderers.base.BaseRenderer(*, parse_context: Optional[mistletoe.parse_context.ParseContext] = None)[source]

Bases: object

Base class for renderers.

All renderers should …

  • define all render functions specified in self.render_map;

  • be a context manager (by inheriting __enter__ and __exit__);

Custom renderers could …

  • set the default tokens searched for during parsing, by overriding default_block_tokens and/or default_span_tokens

  • add additional render functions by appending to self.render_map;

Usage

Suppose SomeRenderer inherits BaseRenderer, and fin is the input file. The syntax looks something like this:

>>> from mistletoe import Document
>>> from some_renderer import SomeRenderer
>>> with SomeRenderer() as renderer:
...     rendered = renderer.render(Document.read(fin))

See mistletoe.renderers.html for an implementation example.

Naming conventions

  • The keys of self.render_map should exactly match the class name of tokens;

  • Render function names should be of form: render_ + the “snake-case” form of token’s class name.

Parameters

render_map (dict) – maps tokens to their corresponding render functions.

__enter__()[source]

Make renderer classes into context managers, reinstatiated the originally instatiated parse_context.

__exit__(exception_type, exception_val, traceback)[source]

Make renderer classes into context managers.

__init__(*, parse_context: Optional[mistletoe.parse_context.ParseContext] = None)[source]

Initialise the renderer.

Parameters

parse_context (mistletoe.parse_context.ParseContext) – the parse context stores global parsing variables, such as the block/span tokens to search for, and link/footnote definitions that have been collected. If None, a new context will be instatiated, with the default block/span tokens for this renderer. These will be re-instatiated on __enter__.

default_block_tokens = (<class 'mistletoe.block_tokens.HTMLBlock'>, <class 'mistletoe.block_tokens.BlockCode'>, <class 'mistletoe.block_tokens.Heading'>, <class 'mistletoe.block_tokens.Quote'>, <class 'mistletoe.block_tokens.CodeFence'>, <class 'mistletoe.block_tokens.ThematicBreak'>, <class 'mistletoe.block_tokens.List'>, <class 'mistletoe.block_tokens_ext.Table'>, <class 'mistletoe.block_tokens_ext.Footnote'>, <class 'mistletoe.block_tokens.LinkDefinition'>, <class 'mistletoe.block_tokens.Paragraph'>)
default_span_tokens = (<class 'mistletoe.span_tokens.EscapeSequence'>, <class 'mistletoe.span_tokens.HTMLSpan'>, <class 'mistletoe.span_tokens.AutoLink'>, <class 'mistletoe.span_tokens.CoreTokens'>, <class 'mistletoe.span_tokens_ext.FootReference'>, <class 'mistletoe.span_tokens_ext.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)

HTML

class mistletoe.renderers.html.HTMLRenderer(parse_context: Optional[mistletoe.parse_context.ParseContext] = None, as_standalone: bool = False, add_css: str = None)[source]

Bases: mistletoe.renderers.base.BaseRenderer

HTML renderer class.

__init__(parse_context: Optional[mistletoe.parse_context.ParseContext] = None, as_standalone: bool = False, add_css: str = None)[source]

Initialise the renderer

Parameters
  • parse_context (mistletoe.parse_context.ParseContext) – the parse context stores global parsing variables, such as the block/span tokens to search for, and link/footnote definitions that have been collected. If None, a new context will be instatiated, with the default block/span tokens for this renderer. These will be re-instatiated on __enter__.

  • as_standalone – return the HTML body within a minmal HTML page

  • add_css – if as_standalone=True, CSS to add to the header

default_block_tokens = (<class 'mistletoe.block_tokens.HTMLBlock'>, <class 'mistletoe.block_tokens.BlockCode'>, <class 'mistletoe.block_tokens.Heading'>, <class 'mistletoe.block_tokens.Quote'>, <class 'mistletoe.block_tokens.CodeFence'>, <class 'mistletoe.block_tokens.ThematicBreak'>, <class 'mistletoe.block_tokens.List'>, <class 'mistletoe.block_tokens_ext.Table'>, <class 'mistletoe.block_tokens_ext.Footnote'>, <class 'mistletoe.block_tokens.LinkDefinition'>, <class 'mistletoe.block_tokens.Paragraph'>)
default_span_tokens = (<class 'mistletoe.span_tokens.EscapeSequence'>, <class 'mistletoe.span_tokens.HTMLSpan'>, <class 'mistletoe.span_tokens.AutoLink'>, <class 'mistletoe.span_tokens.CoreTokens'>, <class 'mistletoe.span_tokens_ext.FootReference'>, <class 'mistletoe.span_tokens_ext.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)

JSON

class mistletoe.renderers.json.JsonRenderer(*, parse_context: Optional[mistletoe.parse_context.ParseContext] = None)[source]

Bases: mistletoe.renderers.base.BaseRenderer

__init__(*, parse_context: Optional[mistletoe.parse_context.ParseContext] = None)

Initialise the renderer.

Parameters

parse_context (mistletoe.parse_context.ParseContext) – the parse context stores global parsing variables, such as the block/span tokens to search for, and link/footnote definitions that have been collected. If None, a new context will be instatiated, with the default block/span tokens for this renderer. These will be re-instatiated on __enter__.

default_block_tokens = (<class 'mistletoe.block_tokens.HTMLBlock'>, <class 'mistletoe.block_tokens.BlockCode'>, <class 'mistletoe.block_tokens.Heading'>, <class 'mistletoe.block_tokens.Quote'>, <class 'mistletoe.block_tokens.CodeFence'>, <class 'mistletoe.block_tokens.ThematicBreak'>, <class 'mistletoe.block_tokens.List'>, <class 'mistletoe.block_tokens_ext.Table'>, <class 'mistletoe.block_tokens_ext.Footnote'>, <class 'mistletoe.block_tokens.LinkDefinition'>, <class 'mistletoe.block_tokens.Paragraph'>)
default_span_tokens = (<class 'mistletoe.span_tokens.EscapeSequence'>, <class 'mistletoe.span_tokens.HTMLSpan'>, <class 'mistletoe.span_tokens.AutoLink'>, <class 'mistletoe.span_tokens.CoreTokens'>, <class 'mistletoe.span_tokens_ext.FootReference'>, <class 'mistletoe.span_tokens_ext.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)

LaTeX

class mistletoe.renderers.latex.LaTeXRenderer(*, parse_context: Optional[mistletoe.parse_context.ParseContext] = None)[source]

Bases: mistletoe.renderers.base.BaseRenderer

__init__(*, parse_context: Optional[mistletoe.parse_context.ParseContext] = None)[source]

Initialise the renderer.

Parameters

parse_context (mistletoe.parse_context.ParseContext) – the parse context stores global parsing variables, such as the block/span tokens to search for, and link/footnote definitions that have been collected. If None, a new context will be instatiated, with the default block/span tokens for this renderer. These will be re-instatiated on __enter__.

default_block_tokens = (<class 'mistletoe.block_tokens.BlockCode'>, <class 'mistletoe.block_tokens.Heading'>, <class 'mistletoe.block_tokens.Quote'>, <class 'mistletoe.block_tokens.CodeFence'>, <class 'mistletoe.block_tokens.ThematicBreak'>, <class 'mistletoe.block_tokens.List'>, <class 'mistletoe.block_tokens_ext.Table'>, <class 'mistletoe.block_tokens.LinkDefinition'>, <class 'mistletoe.block_tokens.Paragraph'>)
default_span_tokens = (<class 'mistletoe.span_tokens.EscapeSequence'>, <class 'mistletoe.span_tokens.AutoLink'>, <class 'mistletoe.span_tokens.CoreTokens'>, <class 'mistletoe.span_tokens_ext.Math'>, <class 'mistletoe.span_tokens_ext.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)