properdocs
Project documentation with Markdown.
What it is and what it does
ProperDocs is a static documentation site generator built for developers who want to write project docs in Markdown and publish them as static HTML. It reads Markdown source files and a YAML configuration file, then generates a complete static website ready to deploy anywhere. The tool is designed around simplicity: one config file, standard Markdown input, and extensibility through themes and plugins rather than complex configuration.
The package depends on common Python tooling libraries—Markdown rendering, YAML parsing, file watching, and CLI handling—to provide a straightforward workflow. It targets the documentation use case specifically, with features like theme support and plugin architecture to customize output without forking the core tool.
Use it for:
- Build and maintain project documentation for open-source or internal software projects using only Markdown and YAML.
- Generate static HTML documentation sites that can be hosted on GitHub Pages, S3, or any static file server.
- Create branded documentation by applying third-party themes or writing custom themes without modifying core code.
- Set up automated documentation builds triggered by changes to Markdown source files using the file-watching capability.
- Extend documentation generation with custom Markdown extensions or plugins to handle project-specific markup needs.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ProperDocs is a static site generator that converts Markdown documentation into HTML, configured through a single YAML file and extensible with themes and plugins.
Yes. ProperDocs is actively maintained, production-stable, has low install friction, carries no known vulnerabilities, and uses a permissive license. It is well-suited for developers building project documentation from Markdown. Install it if you need a straightforward static documentation generator; verify the plugin ecosystem and programmatic API match your workflow before committing to it for large projects.
Install
properdocs on PyPI
pip
pip install properdocsuv
uv add properdocspoetry
poetry add properdocsInstalling properdocs
Before you install
Low install friction with a pure-Python wheel and 13 runtime dependencies that are all standard tooling libraries. Active maintenance with a recent commit on 2026-07-19 and production-stable status.
License in practice
BSD-2-Clause is a permissive license that allows commercial and private use with minimal restrictions, requiring only license and copyright notice preservation.
Quickstart
pip install properdocs
Create a docs/ folder with Markdown files and a mkdocs.yml config, then:
from properdocs import build
build('docs')
Requires Python 3.9 or later; the exact API for programmatic use should be verified against the package documentation.
Verify before relying
- Exact programmatic API surface and whether it's intended for CLI-only use or library integration
- Performance characteristics and scalability limits for large documentation projects
- Availability and maturity of third-party themes and plugins in the stated catalog
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — click, colorama, ghp-import, importlib-metadata, jinja2, markdown, markupsafe, packaging, pathspec, platformdirs, pyyaml-env-tag, pyyaml, watchdog |
| Maintenance | actively maintained — 147 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,258,774/month — #3,183 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: properdocs-1.6.7-py3-none-any.whl
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
mkdocsMkDocs generates static HTML documentation…
permissive · top 5,000 on PyPI
mkdocs-same-dirA ProperDocs plugin that allows placing the…
permissive · top 15,000 on PyPI
mkdocstringsAn MkDocs plugin that automatically generates…
permissive · top 5,000 on PyPI
mkdocs-materialMaterial for MkDocs is a professional theme and…
permissive · top 5,000 on PyPI
pelicanPelican is a static site generator that…
agpl · top 15,000 on PyPI
mkdocs-techdocs-coreBundles Spotify's TechDocs defaults—themes,…
permissive · top 15,000 on PyPI
mkdocs-gen-filesMkDocs plugin that generates documentation…
permissive · top 5,000 on PyPI
mkdocs-include-markdown-pluginA MkDocs plugin that includes content from…
permissive · top 15,000 on PyPI
mkdocs-jupyterConverts Jupyter notebooks and Python scripts…
permissive · top 15,000 on PyPI
mkdocs-macros-pluginExtends MkDocs with Jinja2 templating to use…
permissive · top 5,000 on PyPI