Skip to content
FastVideo
Esc
↑↓navigate↵open⌘Jpreview
On this page

Documenting FastVideo

FastVideo documentation is built with Blume and published at haoailab.com/FastVideo.

Source ownership

  • Edit guides under docs/. Keep runnable examples under examples/ and scripts/.
  • Edit the welcome page, Fast Models catalog, and cookbook model pages under docs-site/content/, docs-site/islands/, and docs-site/lib/.
  • Edit sidebar labels and grouping in docs-site/navigation.json. Group by reader task. Hardware, integrations, and model-specific guides belong under Run inference.
  • Python reference pages are extracted from source with Griffe. They require no FastVideo installation, GPU packages, or model imports.
  • Do not edit .generated/, public/, or dist/. Preparation recreates them.

Write a task guide

Give each page one task and one audience. Use this order where it applies:

  1. Explain what the reader will do and when to use the guide.
  2. List prerequisites, supported runtimes, and hardware assumptions.
  3. Provide the shortest runnable example and its expected output.
  4. Explain configuration choices after the working example.
  5. Put troubleshooting beside the relevant command or in a short closing section.
  6. Link to the next task and the relevant reference.

Keep measured results, hardware and limitations together. Put implementation history and rejected experiments in an architecture or research page, rather than between setup commands. Link to installation instead of repeating it. The main quick start owns the first generation example; specialized guides build on it. Keep model IDs in the catalog and runnable sources consistent.

Build and check

From the repository root, use Node 24 and Python 3.12:

uv venv docs-site/.venv --python 3.12
uv pip install --python docs-site/.venv/bin/python -r requirements-docs.txt
npm ci --prefix docs
npm ci --prefix docs-site
npm run dev --prefix docs-site

Open the printed URL under /FastVideo. After editing canonical guides, rerun npm run prepare:content --prefix docs-site and restart the dev server. For a static production build:

npm run check --prefix docs-site
npm run format:check --prefix docs-site
npm run build --prefix docs-site
npm run validate --prefix docs-site
npm run test:content --prefix docs-site
npm test --prefix docs-site

Use DOCS_PYTHON=/path/to/python to select another documentation environment. Install Chromium with npm exec --prefix docs-site -- playwright install chromium if the browser suite requests it. Python renderer tests run with docs-site/.venv/bin/python -m unittest discover -s docs-site/tests -p 'test_*.py'.

Publish

The existing .github/workflows/infra-docs.yml builds Blume, checks content and browser interactions, and uploads docs-site/dist/ to GitHub Pages. Only pushes to main deploy. The custom domain, GitHub Pages environment, and /FastVideo base path remain the same. Pull requests validate the build without deploying.

When changing dependencies, edit requirements-docs.in and regenerate its lock:

uv pip compile requirements-docs.in -o requirements-docs.txt \
  --python-platform x86_64-manylinux_2_28 --python-version 3.12

The committed migration anchor manifest records the previous site’s URLs and fragments. It is a compatibility contract, not generated content to refresh on each build. A deliberate URL change needs a redirect and an updated regression check before removing an old route.

Was this page helpful?