Metadata-Version: 2.4
Name: docutools
Version: 2025.11.8
Summary: Documentation Tools for the Mkdocs Material Framework
Project-URL: Repository, https://github.com/axiros/docutools
Project-URL: Homepage, https://axiros.github.io/docutools/
Author-email: Gunther Klessinger <gkle_ss_ing_er@gmx.de>
License-Expression: BSD-2-Clause
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Requires-Dist: anybadge>=1.7.0
Requires-Dist: coverage>=6.0.2
Requires-Dist: diagrams
Requires-Dist: git-changelog
Requires-Dist: httpx>=0.17.1
Requires-Dist: imagesize>=1.0.0
Requires-Dist: inflection>=0.5.1
Requires-Dist: markdown-include>=0.8.1
Requires-Dist: markupsafe==2.0.1
Requires-Dist: mkdocs-exclude>=1.0.2
Requires-Dist: mkdocs-macros-plugin>=0.5.12
Requires-Dist: mkdocs-material>=8.0.0
Requires-Dist: mkdocs-pymdownx-material-extras>=1.1.3
Requires-Dist: mkdocs>=1.1.2
Requires-Dist: pycond>=2.0.0
Requires-Dist: pytest-cov>=2.10.1
Requires-Dist: pytest-randomly>=3.4.1
Requires-Dist: pytest-sugar>=0.9.4
Requires-Dist: pytest-xdist>=2.1.0
Requires-Dist: pytest>=6.0.1
Requires-Dist: toml>=0.10.1
Provides-Extra: dev
Requires-Dist: matplotlib>=3.0.0; extra == 'dev'
Requires-Dist: mypy>=0.900; extra == 'dev'
Requires-Dist: numpy>=1.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Description-Content-Type: text/markdown

#  docutools

<!-- badges -->
[![docs pages][docs pages_img]][docs pages] [![gh-ci][gh-ci_img]][gh-ci] [![pkg][pkg_img]][pkg] [![code_style][code_style_img]][code_style] 

[docs pages]: https://axiros.github.io/docutools
[docs pages_img]: https://axiros.github.io/docutools/img/badge_docs.svg
[gh-ci]: https://github.com/axiros/docutools/actions/workflows/ci.yml
[gh-ci_img]: https://github.com/axiros/docutools/actions/workflows/ci.yml/badge.svg
[pkg]: https://pypi.org/project/docutools/2025.08.01/
[pkg_img]: https://axiros.github.io/docutools/img/badge_pypi.svg
[code_style]: https://github.com/astral-sh/ruff
[code_style_img]: https://axiros.github.io/docutools/img/badge_ruff.svg
<!-- badges -->


## [MkDocs Documentation](https://axiros.github.io/docutools/) Tools For Developers

This repo is providing a set of plugins for [mkdocs material](https://squidfunk.github.io/mkdocs-material/) compatible documentation.

It is meant to be used as a development dependency for projects, intended to be used mainly by the
developers themselves, i.e. for the more technical, code centric parts of software project documentation.

Most notable feature: **[Literate Programming](https://axiros.github.io/docutools/features/lp/)**, i.e. dynamic code execution - tightly integrated within the mkdocs framework.


> Most plugins should work in [other](https://www.mkdocs.org/dev-guide/themes/) mkdocs themes as well. No guarantees though.



## [Feature](https://axiros.github.io/docutools/features/) Gallery

<!-- gallery --><table id=gallery>
<tr>
<td style="cursor: pointer" title="features/lp/bash" class="even" onclick="window.location.href='features/lp/bash'">
<a href="https://axiros.github.io/docutools/features/lp/bash/">bash</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/bash/img/gl_lp_any.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/bash" class="odd" onclick="window.location.href='features/lp/bash'">
<a href="https://axiros.github.io/docutools/features/lp/bash/">bash</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/bash/img/gl_lp_async.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/bash" class="even" onclick="window.location.href='features/lp/bash'">
<a href="https://axiros.github.io/docutools/features/lp/bash/">bash</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/bash/img/gl_lp_ctrl_c.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/python/call_flow_logging" class="odd" onclick="window.location.href='features/lp/python/call_flow_logging'">
<a href="https://axiros.github.io/docutools/features/lp/python/call_flow_logging/">call_flow_logging</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/call_flow_logging/img/gl_cfl.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/call_flow_logging" class="even" onclick="window.location.href='features/lp/python/call_flow_logging'">
<a href="https://axiros.github.io/docutools/features/lp/python/call_flow_logging/">call_flow_logging</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/call_flow_logging/img/gl_cfl_details.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/chart" class="odd" onclick="window.location.href='features/lp/plugs/chart'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/chart/">chart</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/chart/img/gl_chart.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/plugs/chartist" class="even" onclick="window.location.href='features/lp/plugs/chartist'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/chartist/">chartist</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/chartist/img/gl_chartist.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/column" class="odd" onclick="window.location.href='features/lp/plugs/column'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/column/">column</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/column/img/gl_columns.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/comments" class="even" onclick="window.location.href='features/lp/python/comments'">
<a href="https://axiros.github.io/docutools/features/lp/python/comments/">comments</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/comments/img/gl_comments.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/python/convert" class="odd" onclick="window.location.href='features/lp/python/convert'">
<a href="https://axiros.github.io/docutools/features/lp/python/convert/">convert</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/convert/img/gl_convert.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/convert" class="even" onclick="window.location.href='features/lp/python/convert'">
<a href="https://axiros.github.io/docutools/features/lp/python/convert/">convert</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/convert/img/gl_convert_slides.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/cov_report" class="odd" onclick="window.location.href='features/lp/python/cov_report'">
<a href="https://axiros.github.io/docutools/features/lp/python/cov_report/">cov_report</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/cov_report/img/gl_cov_backref.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/python/data_table" class="even" onclick="window.location.href='features/lp/python/data_table'">
<a href="https://axiros.github.io/docutools/features/lp/python/data_table/">data_table</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/data_table/img/gl_data_tables.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/diag_diagram" class="odd" onclick="window.location.href='features/lp/python/diag_diagram'">
<a href="https://axiros.github.io/docutools/features/lp/python/diag_diagram/">diag_diagram</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/diag_diagram/img/gl_diag.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/drawio" class="even" onclick="window.location.href='features/lp/plugs/drawio'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/drawio/">drawio</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/drawio/img/gl_drawio.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/find-pages" class="odd" onclick="window.location.href='features/find-pages'">
<a href="https://axiros.github.io/docutools/features/find-pages/">find-pages</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/find-pages/img/gl_find_pages.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/flowchart" class="even" onclick="window.location.href='features/lp/plugs/flowchart'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/flowchart/">flowchart</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/flowchart/img/gl_flow.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/git_changelog" class="odd" onclick="window.location.href='features/lp/python/git_changelog'">
<a href="https://axiros.github.io/docutools/features/lp/python/git_changelog/">git_changelog</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/git_changelog/img/gl_changel.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/plugs/kroki" class="even" onclick="window.location.href='features/lp/plugs/kroki'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/kroki/">kroki</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/kroki/img/gl_kroki.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/kroki" class="odd" onclick="window.location.href='features/lp/plugs/kroki'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/kroki/">kroki</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/kroki/img/gl_kroki_cheat.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/lightbox" class="even" onclick="window.location.href='features/lp/plugs/lightbox'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/lightbox/">lightbox</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/lightbox/img/gl_light.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/python/lprunner" class="odd" onclick="window.location.href='features/lp/python/lprunner'">
<a href="https://axiros.github.io/docutools/features/lp/python/lprunner/">lprunner</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/lprunner/img/gl_lprunner.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/make_badges" class="even" onclick="window.location.href='features/lp/plugs/make_badges'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/make_badges/">make_badges</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/make_badges/img/gl_badges.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/markmap" class="odd" onclick="window.location.href='features/lp/plugs/markmap'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/markmap/">markmap</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/markmap/img/gl_mark.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/md-replace" class="even" onclick="window.location.href='features/md-replace'">
<a href="https://axiros.github.io/docutools/features/md-replace/">md-replace</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/md-replace/img/gl_md_repl.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/md-replace" class="odd" onclick="window.location.href='features/md-replace'">
<a href="https://axiros.github.io/docutools/features/md-replace/">md-replace</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/md-replace/img/gl_md_repl_custom_admons.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/plugs/mermaid" class="even" onclick="window.location.href='features/lp/plugs/mermaid'">
<a href="https://axiros.github.io/docutools/features/lp/plugs/mermaid/">mermaid</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/plugs/mermaid/img/gl_merm.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/page-tree" class="odd" onclick="window.location.href='features/page-tree'">
<a href="https://axiros.github.io/docutools/features/page-tree/">page-tree</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/page-tree/img/gl_tree_ex.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python/project_dependencies" class="even" onclick="window.location.href='features/lp/python/project_dependencies'">
<a href="https://axiros.github.io/docutools/features/lp/python/project_dependencies/">project_dependencies</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/project_dependencies/img/gl_auto_deps.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/python" class="odd" onclick="window.location.href='features/lp/python'">
<a href="https://axiros.github.io/docutools/features/lp/python/">python</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/img/gl_lp_html.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="features/lp/python/screenshot" class="even" onclick="window.location.href='features/lp/python/screenshot'">
<a href="https://axiros.github.io/docutools/features/lp/python/screenshot/">screenshot</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/python/screenshot/img/gl_shots.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/stats" class="odd" onclick="window.location.href='features/stats'">
<a href="https://axiros.github.io/docutools/features/stats/">stats</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/stats/img/gl_stats.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
<td style="cursor: pointer" title="features/lp/xterm" class="even" onclick="window.location.href='features/lp/xterm'">
<a href="https://axiros.github.io/docutools/features/lp/xterm/">xterm</a><br/><img onclick="event.stopPropagation();" src="https://axiros.github.io/docutools/features/lp/img/gl__xterm.png" style="display: block; padding: 3%; margin: auto; max-height: 500px"></img>
</td>
</tr>
<tr>
<td style="cursor: pointer" title="" class="odd" onclick="window.location.href=''">
</td>
<td style="cursor: pointer" title="" class="even" onclick="window.location.href=''">
</td>
<td style="cursor: pointer" title="" class="odd" onclick="window.location.href=''">
</td>
</tr>
</table><!-- gallery -->