GithubHelp home page GithubHelp logo

ngoet / markdowndocs Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 40 KB

A light-weight markdown documentation generator for Python code.

License: MIT License

Python 100.00%
python documentation documentation-tool documentation-generator markdown

markdowndocs's Introduction

Downloads Downloads license

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:

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

Code documentation

markdowndocs's People

Contributors

ngoet avatar

Stargazers

Kavyashree avatar Alena Galysheva avatar Cpop avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.