Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@contrib_first
def render_list_end(token, body, stack, loop):
"""Pops the pushed ``urwid.Pile()`` from the stack (decreases indentation)
See :any:`lookatme.tui.SlideRenderer.do_render` for argument and return
value descriptions.
"""
stack.pop()
@contrib_first
def render_heading(token, body, stack, loop):
"""Render markdown headings, using the defined styles for the styling and
prefix/suffix.
See :any:`lookatme.tui.SlideRenderer.do_render` for argument and return
value descriptions.
Below are the default stylings for headings:
.. code-block:: yaml
headings:
'1':
bg: default
fg: '#9fc,bold'
prefix: "██ "
@contrib_first
def render_newline(token, body, stack, loop):
"""Render a newline
See :any:`lookatme.tui.SlideRenderer.do_render` for argument and return
value descriptions.
"""
return urwid.Divider()
@contrib_first
def render_loose_item_start(token, body, stack, loop):
"""Render the start of a list item. This function makes use of the styles:
.. code-block:: yaml
bullets:
'1': "•"
'2': "⁃"
'3': "◦"
default: "•"
See :any:`lookatme.tui.SlideRenderer.do_render` for argument and return
value descriptions.
"""
return _list_item_start(token, body, stack, loop)
@contrib_first
def render_text(token=None, body=None, stack=None, loop=None, text=None):
"""Renders raw text. This function uses the inline markdown lexer
from mistune with the :py:mod:`lookatme.render.markdown_inline` render module
to render the lexed inline markup to
`urwid Text markup `_.
The created Text markup is then used to create and return a :any:`ClickableText`
instance.
Many other functions call this function directly, passing in the extra
``text`` argument and leaving all other arguments blank.
See :any:`lookatme.tui.SlideRenderer.do_render` for additional argument and
return value descriptions.
"""
if text is None:
text = token["text"]
@contrib_first
def inline_html(text):
return render_no_change(text)
@contrib_first
def render_block_quote_end(token, body, stack, loop):
"""Pops the block quote start ``urwid.Pile()`` from the stack, taking
future renderings out of the block quote styling.
See :any:`lookatme.tui.SlideRenderer.do_render` for additional argument and
return value descriptions.
"""
pile = stack.pop()
# remove leading/trailing divider if they were added to the pile
if isinstance(pile.contents[0][0], urwid.Divider):
pile.contents = pile.contents[1:]
if isinstance(pile.contents[-1][0], urwid.Divider):
pile.contents = pile.contents[:-1]
@contrib_first
def render_list_item_start(token, body, stack, loop):
"""Render the start of a list item. This function makes use of the styles:
.. code-block:: yaml
bullets:
'1': "•"
'2': "⁃"
'3': "◦"
default: "•"
See :any:`lookatme.tui.SlideRenderer.do_render` for argument and return
value descriptions.
"""
return _list_item_start(token, body, stack, loop)
@contrib_first
def render_table(token, body, stack, loop):
"""Renders a table using the :any:`Table` widget.
See :any:`lookatme.tui.SlideRenderer.do_render` for argument and return
value descriptions.
The table widget makes use of the styles below:
.. code-block:: yaml
table:
column_spacing: 3
header_divider: "─"
:returns: A list of urwid Widgets or a single urwid Widget
"""
@contrib_first
def render_code(token, body, stack, loop):
"""Renders a code block using the Pygments library.
See :any:`lookatme.tui.SlideRenderer.do_render` for additional argument and
return value descriptions.
"""
lang = token.get("lang", "text") or "text"
text = token["text"]
res = pygments_render.render_text(text, lang=lang)
return [
urwid.Divider(),
res,
urwid.Divider(),
]