git @ Cat's Eye Technologies klaus / 9c84806
Fix #56: Enable 'toc' and 'extra' markdown renderer extensions Thanks to @ar4s for the initial patch! Jonas Haag 11 years ago
1 changed file(s) with 34 addition(s) and 21 deletion(s). Raw diff Collapse all Expand all
00 import os
11
22 LANGUAGES = []
3
4 try:
5 import markdown
6 LANGUAGES.append((['.md', '.mkdn'], markdown.markdown))
7 except ImportError:
8 pass
9
10 try:
11 from docutils.core import publish_parts
12 from docutils.writers.html4css1 import Writer
13
14 def render_rest(content):
15 # start by h2 and ignore invalid directives and so on (most likely from Sphinx)
16 settings = {'initial_header_level': 2, 'report_level': 'quiet'}
17 return publish_parts(content,
18 writer=Writer(),
19 settings_overrides=settings).get('html_body')
20
21 LANGUAGES.append((['.rst', '.rest'], render_rest))
22 except ImportError:
23 pass
243
254
265 def get_renderer(filename):
3918 content = open(filename).read()
4019
4120 return get_renderer(filename)(content)
21
22
23 def _load_markdown():
24 try:
25 import markdown
26 except ImportError:
27 return
28
29 def render_markdown(content):
30 return markdown.markdown(content, extensions=['toc', 'extra'])
31
32 LANGUAGES.append((['.md', '.mkdn'], render_markdown))
33
34
35 def _load_restructured_text():
36 try:
37 from docutils.core import publish_parts
38 from docutils.writers.html4css1 import Writer
39 except ImportError:
40 return
41
42 def render_rest(content):
43 # start by h2 and ignore invalid directives and so on (most likely from Sphinx)
44 settings = {'initial_header_level': 2, 'report_level': 'quiet'}
45 return publish_parts(content,
46 writer=Writer(),
47 settings_overrides=settings).get('html_body')
48
49 LANGUAGES.append((['.rst', '.rest'], render_rest))
50
51
52
53 for loader in [_load_markdown, _load_restructured_text]:
54 loader()