A Copier template for creating Dash docset generators.
- Complete project scaffold for building Dash docsets
- Web scraper with support for sitemap.xml or llms.txt URL discovery
- SQLite search index builder with customizable parsers
- TOC anchor injection for in-page navigation
- Docset validation script (
verify.py) - Dash contribution checker (
verify_contribution.py) - Contribution workflow (
contribute.py) for submitting to Dash-User-Contributions - Pytest test suite with pre-commit hook
- Pre-commit hooks with prek (ty type checking, pytest, standard hooks)
- uv for dependency management
- Poe tasks for common commands (
scrape,build,verify,test,contribute)
# With uv
uv tool install copier
# Or with pipx
pipx install copiercopier copy gh:ichoosetoaccept/dash-docset-template my-new-docset
# Or from a local clone
copier copy /path/to/dash-docset-template my-new-docset- project_name: Name of your project (e.g.,
raycast-docset) - docset_name: Display name for the docset (e.g.,
Raycast) - docs_url: Base URL of documentation (e.g.,
https://developers.raycast.com) - author_name: Your name for attribution
- author_link: Your GitHub profile URL
- repo_url: GitHub repo URL for this docset project
cd my-new-docset
uv sync
prek install- Scraper (
*_docset/scraper.py): Adjust URL discovery and filtering - Parsers (
*_docset/parsers.py): Add custom parsers for different page types - Builder (
*_docset/builder.py): Customize icon URL and path handling
poe scrape # Download documentation
poe build # Build the docset
poe verify # Validate the docset
poe test # Run tests
# Or all at once:
poe alldash-docset-template/
βββ copier.yaml # Template configuration
βββ template/
β βββ {{docset_identifier}}_docset/ # Package (name templated)
β β βββ __init__.py.jinja
β β βββ scraper.py.jinja # Auto-detects sitemap/llms.txt
β β βββ builder.py.jinja
β β βββ parsers.py.jinja
β βββ tests/ # Pytest test suite
β β βββ test_builder.py.jinja
β β βββ test_verify.py.jinja
β β βββ test_verify_contribution.py
β β βββ test_contribute.py
β βββ main.py.jinja
β βββ verify.py.jinja # Docset quality validation
β βββ verify_contribution.py.jinja # Dash contribution requirements
β βββ contribute.py.jinja # Contribution workflow
β βββ pyproject.toml.jinja
β βββ README.md.jinja
β βββ .gitignore
β βββ .pre-commit-config.yaml # Includes pytest hook
βββ README.md
MIT