Skip to main content

includes jinja templates in a documentation

Project description

https://github.com/tardyp/sphinx-jinja/actions/workflows/ci.yml/badge.svg

sphinx-jinja

A sphinx extension to include jinja based templates based documentation into a sphinx doc

Usage

In your rst doc, you can use the following snippet to use a jinja template to generate your doc

.. jinja:: first_ctx

    {% for k, v in topics.items() %}

    {{k}}
    ~~~~~
    {{v}}
    {% endfor %}

In your sphinx conf.py file, you can create or load the contexts needed for your jinja templates

extensions = ['sphinx_jinja']

jinja_contexts = {
    'first_ctx': {'topics': {'a': 'b', 'c': 'd'}}
}

You can also customize the jinja Environment by passing custom kwargs, adding filters, tests, and globals, and setting policies:

jinja_env_kwargs = {
    'lstrip_blocks': True,
}

jinja_filters = {
    'bold': lambda value: f'**{value}**',
}

jinja_tests = {
    'instanceof': lambda value, type: isinstance(value, type),
}

jinja_globals = {
    'list': list,
}

jinja_policies = {
    'compiler.ascii_str': False,
}

Which can then be used in the templates:

Lists
-----

{% for o in objects -%}
    {%- if o is instanceof list -%}
        {%- for x in o -%}
            - {{ x|bold }}
        {% endfor -%}
    {%- endif -%}
{%- endfor %}

Available options

  • file: allow to specify a path to Jinja instead of writing it into the content of the directive. Path is relative to the current directory of sphinx-build tool, typically the directory where the conf.py file is located.

  • header_char: character to use for the the headers. You can use it in your template to set your own title character:

    For example:

    Title
    {{ options.header_char * 5 }}
  • header_update_levels: If set, a header in the template will appear as the same level as a header of the same style in the source document, equivalent to when you use the include directive. If not set, headers from the template will be in levels below whatever level is active in the source document.

  • debug: print debugging information during sphinx-build. This allows you to see the generated rst before sphinx builds it into another format.

Example of declaration in your RST file:

.. jinja:: approval_checks_api
   :file: relative/path/to/template.jinja
   :header_char: -

Each element of the jinja_contexts dictionary is a context dict for use in your jinja templates.

Running tests

  • pip install tox

  • tox

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx-jinja-2.0.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_jinja-2.0.1-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file sphinx-jinja-2.0.1.tar.gz.

File metadata

  • Download URL: sphinx-jinja-2.0.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.10

File hashes

Hashes for sphinx-jinja-2.0.1.tar.gz
Algorithm Hash digest
SHA256 de5318d489c6d4f680aa122ba79928bc4eadfa44d3a53292de2afe588ffe4406
MD5 463c48e8d2bdb82d7a6afd6d4001752f
BLAKE2b-256 9c0443a3730ffc12ff7b391e7c34082da91f8c91aaf7004264be162d4b9cb341

See more details on using hashes here.

File details

Details for the file sphinx_jinja-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: sphinx_jinja-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.10

File hashes

Hashes for sphinx_jinja-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1defa443db25acd662b5c2ccd288d7c7455af29c6cf63573f089f78b688f7254
MD5 0afd4838cc1e69c5fea09f59fb88ba4c
BLAKE2b-256 36146f6b22527504383e495445cac43352bd448ea940291a352d57a7b1e4896c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page