Skip to main content

a reusable, production-ready documentation application built with Python, Django, Django REST Framework, and Wagtail CMS, styled with Tailwind CSS and daisyUI. It comes with sensible defaults, modern theming, and clean APIs—helping you launch structured, searchable documentation quickly and scale it with confidence.

Project description

django-w-docs

CI CD Code Style: Black Code Linting: Ruff Docker Image Docker Publish PyPI - Version PyPI - Python Version PyPI - Downloads PyPI - License

Overview

django-w-docs is a reusable, production-ready documentation application built with Python, Django, Django REST Framework, and Wagtail CMS, styled with Tailwind CSS and daisyUI. It comes with sensible defaults, modern theming, and clean APIs—helping you launch structured, searchable documentation quickly and scale it with confidence.


Demo

Demo


Key features

  • Full CMS: Wagtail-powered editorial interface with pages, media, search, and governance.
  • Modern UI: Utility-first styling with Tailwind CSS for responsive, accessible layouts.
  • Theming: All daisyUI themes included, with support for custom themes.
  • API ready: Optional REST API endpoints for headless delivery and integrations.
  • CI/CD: GitHub Actions pipelines for automated testing, linting, and deployment.
  • Dependencies: Managed with Poetry for reproducibility and clarity.
  • Formatting: Black for consistent, automatic code formatting.
  • Linting: Ruff for fast, comprehensive linting.
  • Testing: Django test runner for unit and integration tests.
  • Starter configs: .gitignore, pyproject.toml, and other boilerplate included.

Use cases

  • Product docs & API reference: Guides, FAQs, and endpoint documentation with search and tags.
  • Knowledge base: Self‑serve help center to reduce support load.
  • Internal handbook: Onboarding, SOPs, and runbooks with role‑based access.
  • Release notes & policies: Publish updates, policies, and compliance docs.
  • Multilingual content: Maintain parity across languages with Wagtail i18n.
  • In‑product help: Surface contextual docs via the REST API.

Installation

pip install django-w-docs

Configuration

Add installed apps

# project/settings.py

INSTALLED_APPS = [
    "docs",
    "docs.api",              # Optional: REST API
    "docs.apps.home",        # Optional: if your project includes a Home model ('home.Home')
    "docs.apps.indexes",
    "docs.apps.pages",
    "docs.apps.sections",
    "docs.apps.tags",
    "docs.cms",
    "docs.ui",

    # Dependencies
    "rest_wind",             # Optional: REST API
    "rest_framework",        # Optional: REST API
    "wagtail_blocks",
    "wagtail.contrib.search_promotions",
    "wagtail.contrib.forms",
    "wagtail.contrib.redirects",
    "wagtail.embeds",
    "wagtail.sites",
    "wagtail.users",
    "wagtail.snippets",
    "wagtail.documents",
    "wagtail.images",
    "wagtail.search",
    "wagtail.admin",
    "wagtail",
    "modelcluster",
    "taggit",
    # ...
]

Run migrations

python manage.py migrate

Update URL configuration

# project/urls.py

from django.urls import include, path
from wagtail import urls as wagtail_urls
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.documents import urls as wagtaildocs_urls

urlpatterns = [
    path("", include("docs.ui.urls")),
    path("api/", include("docs.api.urls")),           # Optional: REST API
    path("api/", include("rest_framework.urls")),     # Optional: REST API
    # ...
    path("documents/", include(wagtaildocs_urls)),
    path("dashboard/", include(wagtailadmin_urls)),
    path("", include(wagtail_urls)),                  # Keep this last
]

Theming and templates

All templates in django-w-docs extend docs/base.html. Create and customize this base template to match your brand.

Create the template directory

mkdir -p your_app/templates/docs

Create the base template

touch your_app/templates/docs/base.html

You can extend docs/base.html in your own templates or override any provided template for full control.

Available blocks and context

  • docs/base.html

    • Blocks: theme, toggle_theme, head, title, styles, navbar, branding, navbar_center, navbar_end, content, footer, drawer_branding, drawer_content
    • Context: home (site root page)
  • docs/index.html

    • Blocks: All from docs/base.html
    • Context: index (docs index page)
  • docs/section.html

    • Blocks: All from docs/base.html
    • Context: section (DocsSection instance)
  • docs/page.html

    • Blocks: All from docs/base.html
    • Context: page (DocsPage instance)
  • docs/search.html

    • Blocks: All from docs/base.html
    • Context: search_results (PageQuerySet results)

Contributing

We welcome contributions from the community. Please review the CONTRIBUTING guide for setup, coding standards, and workflow. Opening an issue before major changes helps align on scope and direction.


Support

For questions, bug reports, or feature requests, open an issue or join the conversation in GitHub Discussions.


License

This project is licensed under the MIT License. See the LICENSE file for details.

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

django_w_docs-1.0.3.tar.gz (65.1 kB view details)

Uploaded Source

Built Distribution

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

django_w_docs-1.0.3-py3-none-any.whl (85.3 kB view details)

Uploaded Python 3

File details

Details for the file django_w_docs-1.0.3.tar.gz.

File metadata

  • Download URL: django_w_docs-1.0.3.tar.gz
  • Upload date:
  • Size: 65.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for django_w_docs-1.0.3.tar.gz
Algorithm Hash digest
SHA256 62b87e275fcde8ee572533c97f4a38b6d2b9be4c2c2d250bbc31af5b6c3a3c50
MD5 554d51705adfb565a7eaac89bdd8002b
BLAKE2b-256 9c0675845e46043e10f18e0e1b20ad2c3b94f1039356b6f90c0b6d402000b59d

See more details on using hashes here.

File details

Details for the file django_w_docs-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: django_w_docs-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 85.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.11.0-1018-azure

File hashes

Hashes for django_w_docs-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5eef9766ecbcc76d83717c1e95fc46aecaab30a0c5659e6cf1bea788105c46a1
MD5 eef687d960cb6343a1d073d848f4f26c
BLAKE2b-256 a0a51c29ea028a7d97a5d650fda5b8ed8ab5b4853a156d5ec7a78ac2a110950c

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