Pydoc-Markdown 📃
__Disclaimer__: I don't find enough time to properly maintain and develop this project. If you want to generate
docstrings for your Python project with MkDocs, consider mkdocstrings instead.
Pydoc-Markdown is a tool to create Python API documentation in Markdown format. Instead of executing your Python code like so many other documentation tools, it parses it using docspec instead.
[→ Go to the Documentation 📘][Documentation]
[contrib]: https://github.com/NiklasRosenstein/pydoc-markdown/blob/develop/.github/CONTRIBUTING.md [docspec]: https://niklasrosenstein.github.io/python-docspec/ [Documentation]: https://niklasrosenstein.github.io/pydoc-markdown/ [MkDocs]: https://www.mkdocs.org/ [Novella]: https://niklasrosenstein.github.io/novella/ [Novella build backend]: https://niklasrosenstein.github.io/pydoc-markdown/usage/novella/
__Table of Contents__
* 4.7.0 (Undeprecating YAML configuration) * 4.6.0 (Novella integration)Installation 📦
You can install Pydoc-Markdown using Pipx:
$ pipx install pydoc-markdown
If you plan on using the [Novella][] integration, you may want to install it as:
$ pipx install novella $ pipx inject novella pydoc-markdown[novella]
You need at least Python 3.10 to run Pydoc-Markdown. The Python version compatibility of the package you are looking to generate documentation for is irrelevant.
Features 🌟
- Understands multiple documentation styles (Sphinx, Google, Pydoc-Markdown specific) and converts them to properly
- Can parse docstrings for variables thanks to docspec (
#:block before or string literal after the statement) - Generates links to other API objects per the documentation syntax (e.g.
#OtherClassfor the Pydoc-Markdown style) - Configure the output using a YAML file or
pyProject.toml, then you're only one command away to generate the
- Or use [Novella][] to tightly integrate with static site generators like MkDocs and Hugo with with additional
News 📢
4.7.0 (Undeprecating YAML configuration)
Many users prefer the YAML configuration over the using [Novella][], which is why starting with __4.7.0__, the YAML style configuration is officially un-deprecated and will continue to be supported.
4.6.0 (Novella integration)
Starting with __4.6.0__, development focuses on integrating with [Novella][] and use it as a replacement for tool-specific renderers thus far provided directly by Pydoc-Markdown (i.e. integrations with MkDocs, Hugo and Docusuraus). Such integrations are/will be provided by Novella instead.
With the Novella integration, you can now place generated API content in Markdown format inline with your
existing Markdown documentation source files using @pydoc tags. Check out the [Documentation][] for more
information on how to use Pydoc-Markdown with Novella.
The old style of using Pydoc-Markdown with a YAML or PyProject configuration to generate files and kick off the build is now deprecated but will be maintained for the foreseeable future (at least until the next major version bump). It is strongly recommended to migrate your existing projects to using the Novella build backend.
Contributing to Pydoc-Markdown 🤝
All contributions are welcome! Check out the [Contribution Guidelines][contrib].
Questions / Need help? 🤔
Feel free to open a topic on GitHub Discussions!
Projects using Pydoc-Markdown 📚
An incomplete list of projects that use Pydoc-Markdown to generate their API documentation. Feel free to open a pull request to add your project to this list!