diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-09-18 18:49:53 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-09-18 18:49:53 +0200 |
commit | e0ffb439998894f368f24fcea8fbdec4fad00a99 (patch) | |
tree | 4983fd3381170559454256d5f35f96c0ff2aa9f6 /_exts | |
parent | 47adf02f389d4b0a5a0c21323dd2b2f1ad9a393a (diff) | |
download | docs-e0ffb439998894f368f24fcea8fbdec4fad00a99.tar.gz docs-e0ffb439998894f368f24fcea8fbdec4fad00a99.tar.bz2 docs-e0ffb439998894f368f24fcea8fbdec4fad00a99.zip |
omit deep section names
Diffstat (limited to '_exts')
-rw-r--r-- | _exts/taler_sphinx_theme/__init__.py | 27 | ||||
-rw-r--r-- | _exts/tsref.py | 5 |
2 files changed, 29 insertions, 3 deletions
diff --git a/_exts/taler_sphinx_theme/__init__.py b/_exts/taler_sphinx_theme/__init__.py index 9ac8f386..2d3c61c4 100644 --- a/_exts/taler_sphinx_theme/__init__.py +++ b/_exts/taler_sphinx_theme/__init__.py @@ -17,7 +17,8 @@ def setup(app): """Setup conntects events to the sitemap builder""" app.connect('html-page-context', add_html_link) app.connect('build-finished', create_sitemap) - app.set_translator('html', HTMLTranslator) + app.set_translator('html', MyHTMLTranslator) + app.set_translator('html-linked', MyHTMLTranslator) app.sitemap_links = [] app.add_html_theme('taler_sphinx_theme', path.abspath(path.dirname(__file__) + "/guzzle_sphinx_theme")) @@ -53,7 +54,7 @@ def html_theme_path(): return [os.path.dirname(os.path.abspath(__file__))] -class HTMLTranslator(SphinxHTMLTranslator): +class MyHTMLTranslator(SphinxHTMLTranslator): """ Handle translating to bootstrap structure. """ @@ -141,3 +142,25 @@ class HTMLTranslator(SphinxHTMLTranslator): def visit_container(self, node): self.body.append(self.starttag(node, 'div', CLASS='docutils')) + + def add_secnumber(self, node): + # type: (nodes.Element) -> None + if node.get('secnumber'): + numbers = list(map(str, node['secnumber'])) + if len(numbers) <= 3: + self.body.append('.'.join(numbers) + self.secnumber_suffix) + elif isinstance(node.parent, nodes.section): + if self.builder.name == 'singlehtml': + docname = self.docnames[-1] + anchorname = "%s/#%s" % (docname, node.parent['ids'][0]) + if anchorname not in self.builder.secnumbers: + anchorname = "%s/" % docname # try first heading which has no anchor + else: + anchorname = '#' + node.parent['ids'][0] + if anchorname not in self.builder.secnumbers: + anchorname = '' # try first heading which has no anchor + if self.builder.secnumbers.get(anchorname): + numbers = list(self.builder.secnumbers[anchorname]) + if len(numbers) <= 3: + self.body.append('.'.join(map(str, numbers)) + + self.secnumber_suffix) diff --git a/_exts/tsref.py b/_exts/tsref.py index ae0e924b..daeb08cd 100644 --- a/_exts/tsref.py +++ b/_exts/tsref.py @@ -171,7 +171,10 @@ class LinkFilter(Filter): defname = make_id('tsref-type-' + value); t = copy_token(ttype) if defname in id_to_doc: - current_docname = self.app.builder._current_docname + if hasattr(self.app.builder, "_current_docname"): + current_docname = self.app.builder._current_docname + else: + current_docname = "(unknown-doc)" docname = id_to_doc[defname] uri = self.app.builder.get_relative_uri(current_docname, docname) href = uri + "#" + defname |