{"id":34072908,"url":"https://github.com/ngoet/markdowndocs","last_synced_at":"2026-04-09T00:32:38.078Z","repository":{"id":40573631,"uuid":"301175712","full_name":"ngoet/markdowndocs","owner":"ngoet","description":"A light-weight markdown documentation generator for Python code.","archived":false,"fork":false,"pushed_at":"2024-08-18T17:22:01.000Z","size":45,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-07T23:33:44.293Z","etag":null,"topics":["documentation","documentation-generator","documentation-tool","markdown","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ngoet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-04T16:36:07.000Z","updated_at":"2024-08-18T17:22:02.000Z","dependencies_parsed_at":"2024-08-18T18:39:17.254Z","dependency_job_id":null,"html_url":"https://github.com/ngoet/markdowndocs","commit_stats":{"total_commits":16,"total_committers":1,"mean_commits":16.0,"dds":0.0,"last_synced_commit":"8154276bd943c8a641d1c5ef6e3aa07395beee1c"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ngoet/markdowndocs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngoet%2Fmarkdowndocs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngoet%2Fmarkdowndocs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngoet%2Fmarkdowndocs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngoet%2Fmarkdowndocs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngoet","download_url":"https://codeload.github.com/ngoet/markdowndocs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngoet%2Fmarkdowndocs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation","documentation-generator","documentation-tool","markdown","python"],"created_at":"2025-12-14T08:29:10.522Z","updated_at":"2026-04-09T00:32:38.069Z","avatar_url":"https://github.com/ngoet.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MarkdownDocs\n\n[![](https://img.shields.io/pypi/v/markdowndocs.svg)](https://pypi.org/project/markdowndocs/)\n[![Downloads](https://pepy.tech/badge/markdowndocs)](https://pepy.tech/project/markdowndocs)\n[![Downloads](https://pepy.tech/badge/markdowndocs/month)](https://pepy.tech/project/markdowndocs/month)\n[![license](https://img.shields.io/github/license/ngoet/markdowndocs)](https://github.com/ngoet/markdowndocs/blob/main/LICENSE)\n\n[![ci-linting](https://github.com/ngoet/markdowndocs/actions/workflows/ci-linting.yaml/badge.svg?branch=main)](https://github.com/ngoet/markdowndocs/actions/workflows/ci-linting.yaml)\n[![ci-regression-tests](https://github.com/ngoet/markdowndocs/actions/workflows/ci-regression-tests.yaml/badge.svg?branch=main)](https://github.com/ngoet/markdowndocs/actions/workflows/ci-regression-tests.yaml)\n[![ci-unit-tests](https://github.com/ngoet/markdowndocs/actions/workflows/ci-unit-tests.yaml/badge.svg?branch=main)](https://github.com/ngoet/markdowndocs/actions/workflows/ci-unit-tests.yaml)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n`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.\n\n---\n\n[Installation and usage](#installation-and-usage) | [Usage](#usage) | [Using markdowndocs with pre-commit](#using-markdowndocs-with-pre-commit-hooks-version-control-integration) | [Contributor guidelines](#contributor-guidelines) | [Code documentation](#code-documentation)\n\n---\n\n## Installation and usage\n\n### Installation\nInstall with:\n```\npip install markdowndocs\n```\n\n### Usage\n#### Options\nTo run `markdowndocs` on all modules in your working directory:\n```bash\n$ markdowndocs --all\n```\n\nTo run `markdowndocs` on (a) specific module(s) in your working directory:\n```bash\n$ markdowndocs --module-names \u003cmy_module\u003e\n```\n\nTo run `markdowndocs` on on all modules in your working directory, *except* (a) specific module(s):\n```bash\n$ markdowndocs --exclude-modules \u003cmy_module\u003e\n```\n\nFull options and use:\n```text\n$ markdowndocs --help\nusage: markdowndocs [-h] [--output-file-name NAME] [--add-to-readme]\n                    [--exclude-dependencies] [--exclude-code] [--version]\n                    (-a | -m NAME [NAME ...] | -e NAME [NAME ...])\n\nMarkdown documentation package.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --output-file-name NAME\n                        Use this option to specify a custom output file name\n                        for the .md documentation [default:\n                        code_documentation.md]\n  --add-to-readme       If enabled, adds a link to your documentation file to\n                        your README.md file with the following format: ## Code\n                        documentation [Code\n                        Documentation](code_documentation.md) [default: False]\n  --exclude-dependencies\n                        If enabled, includes a list of dependencies for each\n                        module. [default: False]\n  --exclude-code        If enabled, excludes the source code for each function.\n                        [default: False]\n  --version             Show version information and exit.\n  -a, --all             Use this option to generate documentation for all\n                        modules in your current working directory [default:\n                        False]\n  -m NAME [NAME ...], --module-names NAME [NAME ...]\n                        Use this option to generate documentation for a\n                        specific module or modules\n  -e NAME [NAME ...], --exclude-modules NAME [NAME ...]\n                        Use this option to exclude a specific module or\n                        multiple modules from the documentation generator\n```\n#### Output\nBy 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.\nThe following is included in the output by default:\n* User-defined docstrings for modules, classes, and functions (including private methods);\n* Internal links and nested tables of content for all modules, classes, and functions;\n* A list of dependencies (i.e. imports) for each module;\n* The source code for each function.\n\n#### Examples\nMarkdowndocs output for:\n* [a single function](examples/one_function.md)\n* [multiple_functions](examples/multiple_functions.md)\n* [class and functions](examples/class_and_functions.md)\n* [class and private functions](examples/class_and_private_functions.md)\n* [multiple_modules](examples/multiple_modules.md)\n* [markdowndocs code documentation](examples/code_documentation.md)\n\n### Known limitations\n* `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)\n* `markdowndocs` assumes that all imports in your code work, that is, do not refer to non-existing modules.\n* `markdowndocs` does not play nicely with [pydantic](https://pydantic-docs.helpmanual.io/).\n\n## Using `markdowndocs` with pre-commit hooks\nTo 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):\n\n```buildoutcfg\nrepos:\n-   repo: https://github.com/ngoet/markdowndocs\n    rev: 0.1.0\n    hooks:\n    - id: markdowndocs\n      pass_filenames: false\n      args: [\"-m\", \"\u003cmy-module-name\u003e\",\n             \"--add-to-readme\"]\n```\n\n## Contributor guidelines\nSuggestions for improvements are appreciated. Please open an issue if you find anything is broken, or if you'd like to suggest changes.\n\n## Code documentation\n[Code documentation](examples/code_documentation.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngoet%2Fmarkdowndocs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngoet%2Fmarkdowndocs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngoet%2Fmarkdowndocs/lists"}