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

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 

7 

8 

9def create_markdown(escape=True, hard_wrap=False, renderer=None, plugins=None): 

10 """Create a Markdown instance based on the given condition. 

11 

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. 

16 

17 This method is used when you want to re-use a Markdown instance:: 

18 

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

31 

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 

40 

41 return Markdown(renderer, inline=InlineParser(renderer, hard_wrap=hard_wrap), plugins=plugins) 

42 

43 

44html = create_markdown( 

45 escape=False, 

46 renderer='html', 

47 plugins=['strikethrough', 'footnotes', 'table'], 

48) 

49 

50 

51def markdown(text, escape=True, renderer=None, plugins=None): 

52 md = create_markdown(escape=escape, renderer=renderer, plugins=plugins) 

53 return md(text) 

54 

55 

56__all__ = [ 

57 'Markdown', 'AstRenderer', 'HTMLRenderer', 

58 'BlockParser', 'InlineParser', 

59 'escape', 'escape_url', 'escape_html', 'unikey', 

60 'html', 'create_markdown', 'markdown', 

61] 

62 

63__version__ = '2.0.5'