Skip to main content

Universal Python documentation generator with 40+ Sphinx extensions pre-configured. Zero-configuration setup for beautiful, professional documentation.

Project description

pydevelop-docs

PyPI version Python Versions License: MIT CI PyPI Downloads

Universal Python documentation generator with 40+ Sphinx extensions pre-configured. Zero-configuration setup for beautiful, professional documentation.

pydevelop-docs is the docs build system used by the Haive monorepo. It bundles 40+ Sphinx extensions, custom CSS/JS, AutoAPI configuration, and a CLI for one-command documentation builds. Designed for monorepos, but works for any Python project.


Why pydevelop-docs?

Setting up Sphinx for a real project is painful. You need to:

  • Pick the right extensions (and there are hundreds)
  • Configure AutoAPI to organize docs hierarchically (not flat)
  • Wire up theme, CSS, JS, dark mode
  • Handle Pydantic models, type hints, mermaid diagrams, code highlighting
  • Make it work for monorepos with cross-package linking
  • Build all packages in dependency order

pydevelop-docs gives you all of this with one command:

pydevelop-docs build --clean

Features

🚀 Zero-config build

  • 40+ Sphinx extensions pre-configured
  • Furo theme with dark mode
  • AutoAPI hierarchical organization (autoapi_own_page_level = "module")
  • Pre-built CSS for code visibility, navigation, dark mode

📦 Monorepo support

  • Build all packages in dependency order
  • Master documentation hub with cross-package linking
  • Per-package builds for individual development

🎨 Beautiful defaults

  • Furo theme (purple/violet, dark mode)
  • Mermaid + PlantUML diagrams
  • Interactive tooltips (sphinx-tippy)
  • Code copybutton
  • Inline tabs
  • AutoAPI hierarchical layout

🔧 Pydantic support

  • Auto-detects Pydantic models
  • Renders with autodoc-pydantic
  • Field validation, default values, examples

🧪 Visual testing

  • Playwright screenshot tools
  • Light + dark theme captures
  • Issue detection (white-on-white, missing nav, etc.)

Extension List (40+)

Category Extensions
Core autodoc, napoleon, viewcode, intersphinx, todo, coverage, mathjax
API Docs autoapi, sphinx_autodoc_typehints, autodoc_pydantic
Enhanced Docs myst_parser, copybutton, togglebutton, design, tabs, inline_tabs
Diagramming mermaid, plantuml, blockdiag, seqdiag, graphviz
Code codeautolink, exec_code, runpython
UI tippy, favicon, sphinxemoji
Utilities sitemap, last_updated_by_git, opengraph, reredirects, treeview, enum_tools, sphinx_toolbox

Installation

pip install pydevelop-docs

Quick Start

For a single Python project

cd your-project/

# Initialize Sphinx config
poetry run pydevelop-docs init

# Build
poetry run pydevelop-docs build --clean

# Serve locally
cd docs/build && python -m http.server 8000

For a monorepo

cd your-monorepo/

# Build all packages with dependency-aware ordering
poetry run pydevelop-docs build-all --clean

# Or use the enhanced builder with monitoring
poetry run pydevelop-docs rebuild-haive --debug --save-log

CLI Commands

# Initialize a new docs setup
pydevelop-docs init

# Build single package
pydevelop-docs build [--clean] [--ignore-warnings]

# Build all packages in monorepo
pydevelop-docs build-all [--clean]

# Enhanced rebuild with monitoring (best for large projects)
pydevelop-docs rebuild-haive --debug --save-log

# Watch mode for development
pydevelop-docs watch

Configuration

Default config

# docs/source/conf.py
from pydevelop_docs.config import get_haive_config
config = get_haive_config(package_name="my-package")
globals().update(config)

Customize

# docs/source/conf.py
from pydevelop_docs.config import get_haive_config

config = get_haive_config(
    package_name="my-package",
    project="My Project",
    author="My Name",
    extensions_extra=["my_custom_extension"],
)
globals().update(config)

Visual Testing

# Build and serve
poetry run sphinx-build -b html docs/source docs/build
python -m http.server 8003 --directory docs/build

# Take screenshots (light + dark, all major pages)
poetry run python scripts/debug/comprehensive_screenshot.py 8003

# Specific page
poetry run python scripts/debug/screenshot_specific.py \
    "http://localhost:8003/autoapi/index.html" \
    "autoapi_test"

Used By


License

MIT © pr1m8

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydevelop_docs-1.0.1.tar.gz (173.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydevelop_docs-1.0.1-py3-none-any.whl (212.1 kB view details)

Uploaded Python 3

File details

Details for the file pydevelop_docs-1.0.1.tar.gz.

File metadata

  • Download URL: pydevelop_docs-1.0.1.tar.gz
  • Upload date:
  • Size: 173.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for pydevelop_docs-1.0.1.tar.gz
Algorithm Hash digest
SHA256 9ac484634b493d3ba4115408becfd825e9f45acc1cd1c77ff5f311cbe10051fc
MD5 62f305738bdd67a8dc31e90421ab317c
BLAKE2b-256 47f3caf87bbd7b7169343a3ed7a1b4736e2b5b5ab49185643602638dae09d388

See more details on using hashes here.

File details

Details for the file pydevelop_docs-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pydevelop_docs-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 212.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for pydevelop_docs-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ca457e4844f0cf4a0fba8ac18ae6e3df50fdce06ddb25f44468669cef5042f51
MD5 6b601053445b060e1dd3a74b95dda620
BLAKE2b-256 99cd366053985e3686760fe61eba4095e05611dad4634f0bfb4964f105dd1b0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page