A light-weight markdown code documentation generator
Project description
MarkdownDocs
markdowndocs
is a light-weight markdown documentation generator that generates a simple .md
file that documents your Python code based on your docstrings and source code.
Installation and usage | Usage | Using markdowndocs with pre-commit | Contributor guidelines | Code documentation
Installation and usage
Installation
Install with:
pip install markdowndocs
Usage
Options
To run markdowndocs
on all modules in your working directory:
$ markdowndocs --all
To run markdowndocs
on (a) specific module(s) in your working directory:
$ markdowndocs --module-names <my_module>
To run markdowndocs
on on all modules in your working directory, except (a) specific module(s):
$ markdowndocs --exclude-modules <my_module>
Full options and use:
$ markdowndocs --help
usage: markdowndocs [-h] [--output-file-name NAME] [--add-to-readme]
[--exclude-dependencies] [--exclude-code] [--version]
(-a | -m NAME [NAME ...] | -e NAME [NAME ...])
Markdown documentation package.
optional arguments:
-h, --help show this help message and exit
--output-file-name NAME
Use this option to specify a custom output file name
for the .md documentation [default:
code_documentation.md]
--add-to-readme If enabled, adds a link to your documentation file to
your README.md file with the following format: ## Code
documentation [Code
Documentation](code_documentation.md) [default: False]
--exclude-dependencies
If enabled, includes a list of dependencies for each
module. [default: False]
--exclude-code If enabled, excludes the source code for each function.
[default: False]
--version Show version information and exit.
-a, --all Use this option to generate documentation for all
modules in your current working directory [default:
False]
-m NAME [NAME ...], --module-names NAME [NAME ...]
Use this option to generate documentation for a
specific module or modules
-e NAME [NAME ...], --exclude-modules NAME [NAME ...]
Use this option to exclude a specific module or
multiple modules from the documentation generator
Output
By default, the generated markdown documentation is stored in a file called code_documentation.md
. You can use the --output-file-name
argument to set a custom file name.
The following is included in the output by default:
- User-defined docstrings for modules, classes, and functions (including private methods);
- Internal links and nested tables of content for all modules, classes, and functions;
- A list of dependencies (i.e. imports) for each module;
- The source code for each function.
Examples
Markdowndocs output for:
- a single function
- multiple_functions
- class and functions
- class and private functions
- multiple_modules
- markdowndocs code documentation
Known limitations
markdowndocs
will only pick up modules in directories in your working directory, but not in sub-directories (i.e. only one level of "nestedness" is currently supported)markdowndocs
assumes that all imports in your code work, that is, do not refer to non-existing modules.markdowndocs
does not play nicely with pydantic.
Using markdowndocs
with pre-commit hooks
To use markdowndocs
to generate up-to-date documentation upon every new commit, add the following configuration to your .pre-commit-config.yaml
file (and add your preferred configuration options in the args
field):
repos:
- repo: https://github.com/ngoet/markdowndocs
rev: 0.1.0
hooks:
- id: markdowndocs
pass_filenames: false
args: ["-m", "<my-module-name>",
"--add-to-readme"]
Contributor guidelines
Suggestions for improvements are appreciated. Please open an issue if you find anything is broken, or if you'd like to suggest changes.
Code documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file markdowndocs-0.1.1.tar.gz
.
File metadata
- Download URL: markdowndocs-0.1.1.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f49caaf3a6528b24d14cf1132bff2e37911b9df924b307c748cbe6d7b6d50400 |
|
MD5 | bd6bf852695e82ec63ba827502ed374c |
|
BLAKE2b-256 | 4ea299bf41aaa118b3766f6759311678a3ce2fbee1c18845ae1d248bbbdc7ad1 |
File details
Details for the file markdowndocs-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: markdowndocs-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fafaf583db09a9d77d7daa5a5e3a5e1c1dd5c32e4657821d9e7c74866fa10cb2 |
|
MD5 | 298a413ea0eb295fa0c29db11aefdcb1 |
|
BLAKE2b-256 | 4381c876d94066d4764b74645929088e2a0e1d02ec3b86c8f02a2603156f10d0 |