Skip to content

agagniere/speky

Repository files navigation

Speky: Specifications in YAML

logo

Write your requirements and functional tests in a textual format to easily version it with Git, then generate a PDF and a static website.

Roadmap

  • PDF with all relevant cross references
  • Static website
  • Differential PDF to see what changed since last version

Generate a PDF

Requires Typst >= 0.13.0

The speky typst package will generate content from language-agnostic data, like YAML.

Install locally

make -C typst

Use from typst

#import "@local/speky:1.2.0": speky

#speky((
  "requirements.yaml",
  "tests.yaml",
  "comments.yaml",
).map(yaml))

Generate a static website

Requires uv >= 0.8.0

  1. Install speky
    uv tool install git+https://github.com/agagniere/speky#master
  2. Generate Myst Markdown:
    speky requirements.yaml tests.yaml comments.yaml \
        --output-folder markdown \
        --project-name Toto
  3. Configure Sphinx:
    cat <<-EOF > conf.py
       project    = 'Toto'
       language   = 'en'
       extensions = [ 'myst_parser', 'sphinx_design' ]
       html_theme = 'furo'
       myst_enable_extensions = [ 'colon_fence' ]
    EOF
  4. Generate HTML with Sphinx:
    uv tool install sphinx --with furo,sphinx-design,sphinx-copybutton,myst-parser
    sphinx-build -M html markdown sphinx --conf-dir .
  5. Open the website in a browser
    open sphinx/html/index.html

Used by

safran

About

Manage your specifications with git, render them as PDF and HTML

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •