sphinxcontrib.datatemplates
Sphinx extension for rendering data files as nice HTML
Decision gist · record as of 2026-08-14
Yes, if you use Sphinx and need to keep documentation content synchronized with external data files. The low install friction and permissive license make it a straightforward addition. However, the aging maintenance status (last release 2023-12-21, 967 days old) means you should verify compatibility with your Sphinx version and be prepared to maintain a fork if critical issues arise.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Sphinx to be installed and configured; data files must be in a supported format (JSON, YAML, or CSV) and accessible to the Sphinx build process.
- Low friction install with four runtime dependencies (Sphinx, PyYAML, defusedxml, sphinxcontrib-runcmd).
- Maintenance is aging—last release was 2023-12-21 and the repository has not been archived, but activity has slowed significantly.
License · maintenance · safety
permissive license (permissive) — Permissive BSD license; no restrictions on use, modification, or distribution in commercial or private projects.
last release 2023-12-21 (967 days) · last repo commit 2025-05-25 · 50 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 125,465 downloads/mo, #11,816 on PyPI
Alternatives
Verify before relying
pip install sphinxcontrib-datatemplates
# In conf.py:
extensions = ['sphinxcontrib.datatemplates']
# In a .rst file:
.. datatemplate:yaml:file: data.yaml
Individual Item: {{ data['key1'] }}
List: {% for item in data['key2'] %}- {{item}}{% endfor %}- Whether the package supports CSV templating with the same feature set as YAML and JSON.
- Performance characteristics when rendering large data files or complex nested structures.
- Compatibility with recent Sphinx versions beyond 3.12 classifier coverage.
What it is and what it does
sphinxcontrib-datatemplates is a Sphinx extension that bridges external data files and documentation by rendering reStructuredText content from JSON, YAML, and CSV sources using Jinja2-style templating. Instead of hardcoding data into your documentation, you maintain it separately and reference it via template directives—useful when documentation needs to reflect live configuration, API schemas, or tabular data that changes independently of the docs themselves.
The extension provides template functions like `make_list_table` and `make_list_table_from_mappings` to convert nested data structures into reStructuredText tables. It depends on Sphinx, PyYAML, defusedxml (for safe XML parsing), and sphinxcontrib-runcmd. The package is in Beta status, last released in late 2023, and supports Python 3.8 through 3.12.
Use it for
- Render API endpoint documentation from a YAML schema file that is version-controlled separately from docs.
- Generate configuration reference tables from JSON files that are auto-generated by your build system.
- Build comparison matrices or feature tables from CSV data without manually editing reStructuredText.
- Keep deployment or environment documentation synchronized with YAML configuration files.
- Create dynamic release notes or changelog tables from structured data sources.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you use Sphinx and need to keep documentation content synchronized with external data files.
The low install friction and permissive license make it a straightforward addition. However, the aging maintenance status (last release 2023-12-21, 967 days old) means you should verify compatibility with your Sphinx version and be prepared to maintain a fork if critical issues arise.
Install
sphinxcontrib-datatemplates on PyPI
Before you install
Low friction install with four runtime dependencies (Sphinx, PyYAML, defusedxml, sphinxcontrib-runcmd). Maintenance is aging—last release was 2023-12-21 and the repository has not been archived, but activity has slowed significantly.
Requires Sphinx to be installed and configured; data files must be in a supported format (JSON, YAML, or CSV) and accessible to the Sphinx build process.
License in practice
Permissive BSD license; no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install sphinxcontrib-datatemplates
# In conf.py:
extensions = ['sphinxcontrib.datatemplates']
# In a .rst file:
.. datatemplate:yaml:file: data.yaml
Individual Item: {{ data['key1'] }}
List: {% for item in data['key2'] %}- {{item}}{% endfor %}
Verify before relying
- Whether the package supports CSV templating with the same feature set as YAML and JSON.
- Performance characteristics when rendering large data files or complex nested structures.
- Compatibility with recent Sphinx versions beyond 3.12 classifier coverage.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesSphinxPyYAMLdefusedxmlsphinxcontrib-runcmd |
| Maintenance | Aging 967 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 125,465 / month, #11,816 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleEnvironment :: Web EnvironmentFramework :: Sphinx :: ExtensionIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: DocumentationTopic :: Utilities |
Evidence: sphinxcontrib.datatemplates-0.11.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “sphinx data templating”
- sphinxcontrib.datatemplatesA Sphinx extension that renders reStructuredText documentation…
- sphinx-jinjaA Sphinx extension that lets you embed Jinja2 templates directly into…
- sphinxcontrib-websupportProvides a Python API to integrate Sphinx-generated documentation…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also sphinx-jinja · sphinxcontrib-autoyaml · sphinx-jsonschema · rich-rst · sphinx_mdinclude · sphinxcontrib-htmlhelp · Tempita · sphinx_external_toc · jsonnet · py3o.template