Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/mistune/__init__.py: 80%
25 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 06:10 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 06:10 +0000
1from .markdown import Markdown
2from .block_parser import BlockParser
3from .inline_parser import InlineParser
4from .renderers import AstRenderer, HTMLRenderer
5from .plugins import PLUGINS
6from .util import escape, escape_url, escape_html, unikey
9def create_markdown(escape=True, hard_wrap=False, renderer=None, plugins=None):
10 """Create a Markdown instance based on the given condition.
12 :param escape: Boolean. If using html renderer, escape html.
13 :param hard_wrap: Boolean. Break every new line into ``<br>``.
14 :param renderer: renderer instance or string of ``html`` and ``ast``.
15 :param plugins: List of plugins, string or callable.
17 This method is used when you want to re-use a Markdown instance::
19 markdown = create_markdown(
20 escape=False,
21 renderer='html',
22 plugins=['url', 'strikethrough', 'footnotes', 'table'],
23 )
24 # re-use markdown function
25 markdown('.... your text ...')
26 """
27 if renderer is None or renderer == 'html':
28 renderer = HTMLRenderer(escape=escape)
29 elif renderer == 'ast':
30 renderer = AstRenderer()
32 if plugins:
33 _plugins = []
34 for p in plugins:
35 if isinstance(p, str):
36 _plugins.append(PLUGINS[p])
37 else:
38 _plugins.append(p)
39 plugins = _plugins
41 return Markdown(renderer, inline=InlineParser(renderer, hard_wrap=hard_wrap), plugins=plugins)
44html = create_markdown(
45 escape=False,
46 renderer='html',
47 plugins=['strikethrough', 'footnotes', 'table'],
48)
51def markdown(text, escape=True, renderer=None, plugins=None):
52 md = create_markdown(escape=escape, renderer=renderer, plugins=plugins)
53 return md(text)
56__all__ = [
57 'Markdown', 'AstRenderer', 'HTMLRenderer',
58 'BlockParser', 'InlineParser',
59 'escape', 'escape_url', 'escape_html', 'unikey',
60 'html', 'create_markdown', 'markdown',
61]
63__version__ = '2.0.5'