Write your requirements and functional tests in a textual format to easily version it with Git, then generate a PDF and a static website.
- PDF with all relevant cross references
- Static website
- Differential PDF to see what changed since last version
Requires Typst >= 0.13.0
The speky typst package will generate content from language-agnostic data, like YAML.
make -C typst#import "@local/speky:1.2.0": speky
#speky((
"requirements.yaml",
"tests.yaml",
"comments.yaml",
).map(yaml))Requires uv >= 0.8.0
- Install speky
uv tool install git+https://github.com/agagniere/speky#master
- Generate Myst Markdown:
speky requirements.yaml tests.yaml comments.yaml \ --output-folder markdown \ --project-name Toto - Configure Sphinx:
cat <<-EOF > conf.py project = 'Toto' language = 'en' extensions = [ 'myst_parser', 'sphinx_design' ] html_theme = 'furo' myst_enable_extensions = [ 'colon_fence' ] EOF
- Generate HTML with Sphinx:
uv tool install sphinx --with furo,sphinx-design,sphinx-copybutton,myst-parser sphinx-build -M html markdown sphinx --conf-dir . - Open the website in a browser
open sphinx/html/index.html