beanbag_docutils.sphinx.ext.json_writer¶
Sphinx extension offering an enhanced JSON document builder.
When enabled, the JSON builder provided by sphinxcontrib-serializinghtml will be augmented with:
A
toc
key inglobalcontext.json
containing a structured Table of Contents for the site.An
anchors_html
in the page’s context containing HTML-rendered anchors for the page, without the page title being included.
Setup¶
To use this, add the extension in conf.py
:
extensions = [
...
'beanbag_docutils.sphinx.ext.json_writer',
...
]
This will automatically enable the sphinxcontrib.serializinghtml
extension and set the appropriate overrides.
You can then build the JSON documentation using the json
builder.
Table of Contents Structure¶
The toc
key in globalcontext.json
contains a list of dictionaries
containing:
- Keys:
This will start with the index.rst
at the top of the project, if it exists.
If it does not, it will fall back to the configured Sphinx root document
(configured by root_doc
).
Anchors Structure¶
Anchors are stored in a .fjson
page’s anchors_html
key. This will be
pre-rendered HTML, following the form of the normal toc
key. For example:
<ul>
<li><a class="reference internal" href="#section1">Section 1</a></li>
<li><a class="reference internal" href="#section2">Section 2</a><ul>
<li><a class="reference internal" href="#section2.1">Section 2.1</a></li>
<li><a class="reference internal" href="#section2.2">Section 2.2</a></li>
...
</ul></li>
...
</ul>
Functions
|
Set up the Sphinx extension. |
Classes
|
Sphinx builder for JSON files. |
- class beanbag_docutils.sphinx.ext.json_writer.JSONBuilder(app: Sphinx, env: Optional[BuildEnvironment] = None)¶
Bases:
JSONHTMLBuilder
Sphinx builder for JSON files.
This specializes
sphinxcontrib.serializinghtml.JSONHTMLBuilder
, adding additional state for a structured Table of Contents, available inglboalcontext.json
.New in version 2.2.
- handle_finish()¶
Handle finishing the build for all the docs.
- beanbag_docutils.sphinx.ext.json_writer.setup(app)¶
Set up the Sphinx extension.
This sets up the configuration and event handlers needed for the JSON writer extension.
New in version 2.2.
- Parameters:
app (
sphinx.application.Sphinx
) – The Sphinx application to register configuration and listen to events on.