Core Renderers

Base

class mistletoe.renderers.base.BaseRenderer(find_blocks=None, find_spans=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 …

  • add additional tokens into the parsing process by passing custom tokens to super().__init__();

  • 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.

  • parse_context – container for the instatiated tokens, and other global parsing variables. These will be re-instatiated on __enter__

__enter__()[source]

Make renderer classes into context managers.

__exit__(exception_type, exception_val, traceback)[source]

Make renderer classes into context managers.

__init__(find_blocks=None, find_spans=None)[source]

Initialise the renderer

Parameters
  • find_blocks – override the default block tokens (classes or class paths)

  • find_spans – override the default span tokens (classes or class paths)

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.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.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)

HTML

class mistletoe.renderers.html.HTMLRenderer(find_blocks=None, find_spans=None)[source]

Bases: mistletoe.renderers.base.BaseRenderer

HTML renderer class.

__init__(find_blocks=None, find_spans=None)[source]

Initialise the renderer

Parameters
  • find_blocks – override the default block tokens (classes or class paths)

  • find_spans – override the default span tokens (classes or class paths)

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.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.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)

JSON

class mistletoe.renderers.json.JsonRenderer(find_blocks=None, find_spans=None)[source]

Bases: mistletoe.renderers.base.BaseRenderer

__init__(find_blocks=None, find_spans=None)

Initialise the renderer

Parameters
  • find_blocks – override the default block tokens (classes or class paths)

  • find_spans – override the default span tokens (classes or class paths)

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.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.Strikethrough'>, <class 'mistletoe.span_tokens.InlineCode'>, <class 'mistletoe.span_tokens.LineBreak'>, <class 'mistletoe.span_tokens.RawText'>)

LaTeX

class mistletoe.renderers.latex.LaTeXRenderer(find_blocks=None, find_spans=None)[source]

Bases: mistletoe.renderers.base.BaseRenderer

__init__(find_blocks=None, find_spans=None)[source]

Initialise the renderer

Parameters
  • find_blocks – override the default block tokens (classes or class paths)

  • find_spans – override the default span tokens (classes or class paths)

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'>)