Files
..
2026-07-19 18:37:47 -07:00

FastVideo Documentation

This directory contains the FastVideo documentation built with MkDocs.

Build the docs locally

# Install docs dependencies
uv pip install -r requirements-mkdocs.txt
npm ci --prefix docs

# Build the browser API/validator bundle and generate cookbook catalogs
npm run build:catalog --prefix docs

# Serve docs with live reload (recommended for development)
mkdocs serve

# Or build static site
mkdocs build

Run these commands from the repository root with Node 22.13+ (22.x) or Node 24+. Catalog generation uses authored YAML and Node dependencies; it does not import FastVideo or install model runtime dependencies. mkdocs build and mkdocs serve use the generated files without regenerating them. A small MkDocs hook checks required assets before and after the build and explains how to prepare them if missing. Rerun build:catalog after changing cookbook sources. The npm prebuild:catalog and pretest:cookbook hooks automatically run build:assets, including in CI. The combined docs/assets/cookbook-config/cookbook-config.js, its cookbook-config.LICENSE.txt, index and catalogs are Git-ignored and published together; do not hand-edit or commit them. Handwritten modules live in docs/js/ and tests in docs/tests/.

View the docs

Development server (with live reload)

mkdocs serve

Then open your browser to: http://127.0.0.1:8000

Static build

mkdocs build
python -m http.server -d site/

Then open your browser to: http://localhost:8000

Automatic Deployment

Documentation is automatically built and deployed to GitHub Pages when relevant changes are pushed to the main branch via .github/workflows/infra-docs.yml. Pull requests run the build without deploying. The normal docs job installs requirements-mkdocs.txt and the Node dependencies with npm ci --prefix docs, runs scoped lint/format checks, cookbook tests and asset-check tests, generates catalogs with npm run build:catalog --prefix docs, and runs mkdocs build. Invalid authored metadata stops the build. The generated JSON remains Git-ignored but is copied to site/assets/cookbook-config/ for publication. The source-only docs/cookbook/options.yaml and recipe manifests are excluded from the site. No separate metadata job or runtime server is required.

Update documentation dependencies

Edit requirements-mkdocs.in, then regenerate the pinned Linux/Python 3.12 lock file:

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

Local cookbook catalogs

Generate catalogs from the repository root:

npm ci --prefix docs
npm run build:catalog --prefix docs

This command builds the combined API/validator bundle first. Rerun it whenever shared options, recipe manifests or baseline YAML change. Then mkdocs build or mkdocs serve includes the generated assets. Generation loads no model weights and performs no inference.

Inspect a deployment without a browser UI:

node docs/js/build-cookbook-config.mjs --preview fastwan21/cuda-rest

See the contributor guide for recipe authoring and local test commands, and the API contract for using the same catalogs from a cookbook UI.

Check cookbook changes

npm run test:cookbook --prefix docs
npm run check:cookbook --prefix docs
python -m unittest discover -s docs/tests -p 'test_*.py'

npm run format:cookbook --prefix docs formats handwritten cookbook modules, build scripts, tooling configuration and Node tests under docs/. The check commands do not change files. The Node tests use synthetic fixtures for reusable behavior and discover every production recipe for integration checks. They do not launch serving processes.