Skip to content

manni

One command line for documentation that is meant to be checked.

Every command reads manni <domain> <subcommand> [<subcommand>] [<arguments>], and the domain is the tool. manni meta validate docs/ runs the metadata tool’s validate against docs/, and manni meta schemas vendor reaches a verb one level down. Each tool has its own commands, its own section of this site, and its own key in one shared config file, manni.config.yaml. Install the package once and every tool is there.

Terminal window
npm install -D @hawkeyexl/manni
npx @hawkeyexl/manni meta validate docs/

meta checks what a page says about itself; cite checks that what a page says about the code is still true. key sets and rotates the one encryption key both of them encrypt values with. More tools are folded in as they become ready to ship. Until one lands, its subcommand does not exist, and manni --help lists exactly what does.

The metadata tool used to be the whole package. Three things changed, and nothing else did:

  • The command. docmeta validate … is now manni meta validate …. The package still installs a docmeta bin that runs the same program, so existing scripts keep working while you move them.
  • The config file. manni.config.yaml, with the metadata tool’s keys under meta:. A docmeta.config.yaml is still read, with a warning. See the configuration reference.
  • The GitHub Action. uses: hawkeyexl/manni@v2, with the same inputs.

Every built-in schema keeps its old published URL as well as its new one, so a $schema line written before the rename still resolves offline. See the built-in schema registry.