Skip to main content

cross-docs

Python backend utilities for Cross-Docs documentation framework.

Installation

uv add cross-docs
# or
pip install cross-docs

Usage

from pathlib import Path
from fastapi import FastAPI, Request
from cross_docs import (
    generate_nav,
    create_docs_handler,
    strip_trailing_slash_middleware,
)
from cross_inertia.fastapi import InertiaDep

app = FastAPI()
app.middleware("http")(strip_trailing_slash_middleware)

CONTENT_DIR = Path("content")
NAV = generate_nav(CONTENT_DIR / "docs")

docs_handler = create_docs_handler(CONTENT_DIR, NAV)

@app.get("/docs")
async def docs_index(request: Request, inertia: InertiaDep):
    return await docs_handler(request, inertia)

@app.get("/docs/{path:path}")
async def docs_page(path: str, request: Request, inertia: InertiaDep):
    return await docs_handler(request, inertia, path=path)

API

Markdown Utilities

  • parse_frontmatter(content: str) - Parse YAML frontmatter
  • load_markdown(content_dir: Path, path: str) - Load and parse markdown
  • load_raw_markdown(content_dir: Path, path: str) - Load raw markdown

Navigation

  • generate_nav(docs_dir, base_path, section_order, index_page) - Generate nav from files

Middleware

  • strip_trailing_slash_middleware - Redirect trailing slashes
  • wants_markdown(request) - Check Accept header for markdown

Routes

  • create_docs_handler(...) - Create a docs route handler

License

MIT

Download files

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

Source Distribution

cross_docs-0.16.0.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

cross_docs-0.16.0-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file cross_docs-0.16.0.tar.gz.

File metadata

  • Download URL: cross_docs-0.16.0.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cross_docs-0.16.0.tar.gz
Algorithm Hash digest
SHA256 c36c28dfa28bf9b0deab317eeafaa6872cfd5ca46f8f56e8275dddc86d265b5c
MD5 3cf011378d4f90c0816a85b1de2bf492
BLAKE2b-256 2565b5661f4598318e504d8fa7c81b63d1d1a7209a1e972bb0207c3191400d79

See more details on using hashes here.

File details

Details for the file cross_docs-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: cross_docs-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for cross_docs-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f77f7a6706e1572de1539902bfcd1830df6d46008948dbd02d09713c64227b22
MD5 fc8636f2c8a7208bb4a9d159464aeed6
BLAKE2b-256 abaa6267676a694df0be20fc1f33aaf24102ff6050f529b56e3c3c75f68eb227

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