• Stars
    star
    459
  • Rank 95,377 (Top 2 %)
  • Language
    Python
  • License
    Other
  • Created over 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create Python API documentation in Markdown format.

Pydoc-Markdown 📃

Python versions Pypi version

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 📘

Table of Contents

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.7 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 formatted Markdown
  • 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. #OtherClass for the Pydoc-Markdown style)
  • Configure the output using a YAML file or pyProject.toml, then you're only one command away to generate the documentation in Markdown format
  • Or use Novella to tightly integrate with static site generators like MkDocs and Hugo with with additional features such as Markdown pre-processing

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.

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!

More Repositories

1

myo-python

Python bindings for the Myo SDK
Python
259
star
2

pbzx

Fork of the pbzx stream parser (www.tonymacx86.com/general-help/135458-pbzx-stream-parser.html)
C
124
star
3

houdini-library

My personal library of Houdini digital assets and shelf tools.
C
112
star
4

movrepair

Attempts to repair a broken .MOV file using a working reference file
Python
39
star
5

python-localimport

Isolated import of Python Modules for embedded applications.
Python
27
star
6

flux-ci

Flux is your own private & lightweight CI server.
Python
26
star
7

python-github-bot-api

API for creating GitHub bots and webhooks in Python.
Python
23
star
8

slap

Slap is a CLI to assist in the process for developing and releasing Python packages.
Python
21
star
9

python-docspec

Docspec is a JSON object specification for representing API documentation of programming languages.
Python
16
star
10

python-baserow-client

Python client for Baserow.io
Python
15
star
11

houdini-nodeshape-converter

Convert SVG paths to Houdini JSON nodeshapes.
Python
13
star
12

python-databind

Databind is a library inspired by jackson-databind to de-/serialize Python dataclasses.
Python
11
star
13

novella

Novella is a build system for processing data in a temporary directory isolated from the project, designed for documentation source code preprocessing.
Python
11
star
14

file.io-cli

Command-line tool to upload files to https://file.io
Python
8
star
15

python-typeapi

Typeapi provides a sane and stable API to introspect Python type hints.
Python
6
star
16

readthedocs-custom-steps

A hack to run custom shell commands when building documentation on Read the Docs.
Python
5
star
17

terraform-helm-hcloud-k3s-cluster-autoscaler

Deploy Kubernetes cluster-autoscaler for Hetzner cloud using Helm + Terraform.
HCL
3
star
18

osxt

Install arbitrary XCode command-line tools, generate macOS ISO's and set-up an OSX VirtualBox machine.
Python
3
star
19

nocrux

painless per-user daemon manager
Python
3
star
20

git-profile

Easily switch between multiple Git configuration profiles on an individual repository basis.
Python
2
star
21

python-builddsl

A superset of the Python programming language with support for closures and multi-line lambdas
Python
2
star
22

poetry-link

A Poetry plugin to add a "link" command for editable installs.
Python
2
star
23

nyl

Nyl facilitates the orchestration of infrastructure and application deployment pipelines across different tools, making them work together in a seamless manner.
Python
1
star
24

poetry-release

A Poetry plugin to automate releasing new versions of Python packages.
Python
1
star
25

git-svnmodule

Track svn repositories as modules in git. Experimental
Python
1
star
26

python-hcl2-eval

Evaluate HCL2 configuration ASTs from hcl2-ast.
Python
1
star
27

python-nr.io.graphviz

A simple utility for writing Graphviz files.
Python
1
star
28

python-hcl2-ast

A HCL2 parser based on python-hcl2 that produces an Abstract Syntax Tree.
Python
1
star
29

git-worklog

Migrated to https://gitlab.niklasrosenstein.com/NiklasRosenstein/python/nr.cli.git-worklog
Python
1
star
30

cytonic

[Unmaintained] A Python framework to define REST APIs and automatically generate server side bindings and clients.
Python
1
star
31

statigen

Statigen is a minimal, customizable static site generator.
Python
1
star
32

python-stablehash

Stable hashing of Python data structures spanning invokations and platforms.
Python
1
star