summaryrefslogtreecommitdiff
path: root/giscanner
diff options
context:
space:
mode:
authorChristoph Reiter <reiter.christoph@gmail.com>2018-12-19 22:17:16 +0100
committerChristoph Reiter <reiter.christoph@gmail.com>2018-12-20 20:21:45 +0000
commit287dbe9a066479a695769f96f8eea7af01b911aa (patch)
treedc8eeff09e3c6cf7beb5204088aaf9b245dcc5a5 /giscanner
parent13e8c7ff80f9ff2dc77e9d0da4b7396182c63612 (diff)
downloadgobject-introspection-287dbe9a066479a695769f96f8eea7af01b911aa.tar.gz
docwriter: Support markdown 3.x. Fixes #250
The headerid extension no longer exists in 3.x. Use the toc extension instead. The toc_depth option was only added in 3.x so still try headerid first.
Diffstat (limited to 'giscanner')
-rw-r--r--giscanner/docwriter.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/giscanner/docwriter.py b/giscanner/docwriter.py
index 15e68433..7ccce59f 100644
--- a/giscanner/docwriter.py
+++ b/giscanner/docwriter.py
@@ -29,7 +29,6 @@ import tempfile
from xml.sax import saxutils
from mako.lookup import TemplateLookup
import markdown
-from markdown.extensions.headerid import HeaderIdExtension
from . import ast, xmlwriter
from .utils import to_underscores
@@ -61,6 +60,18 @@ language_mimes = {
}
+def get_headerid_ext():
+ try:
+ from markdown.extensions.headerid import HeaderIdExtension
+ except ImportError:
+ # markdown 3.x
+ from markdown.extensions.toc import TocExtension
+ return TocExtension(toc_depth=0)
+ else:
+ # markdown 2.x
+ return HeaderIdExtension(forceid=False)
+
+
def make_page_id(node, recursive=False):
if isinstance(node, ast.Namespace):
if recursive:
@@ -1170,7 +1181,7 @@ class DevDocsFormatterGjs(DocFormatterGjs):
'markdown.extensions.fenced_code',
'markdown.extensions.nl2br',
'markdown.extensions.attr_list',
- HeaderIdExtension(forceid=False)
+ get_headerid_ext(),
])
def format_function_name(self, func):
@@ -1258,7 +1269,7 @@ class DevDocsFormatterGjs(DocFormatterGjs):
'markdown.extensions.fenced_code',
'markdown.extensions.nl2br',
'markdown.extensions.attr_list',
- HeaderIdExtension(forceid=False)
+ get_headerid_ext(),
])
def format_in_parameters(self, node):