Skip to content

manni term

Define your terms once, check every reference to them, and carry the set into Vale and translation.

A term is a record with an identity. It has one preferred label, a definition, the other names it goes by, and its place among other terms. Pages point at it by label through concepts:, and manni term checks that every one of those labels names an entry.

A term reaches manni in one of two shapes.

  • A page per term. The record is the page’s metadata, and the page declares type: term. That works in every format manni meta reads.
  • A file of many. The entries live in the body, in the construct the format has for a list of terms. A DITA <glossgroup>, a DocBook <glossary>, an AsciiDoc [glossary] list and a .. glossary:: directive say what they are. A Markdown definition list and an HTML <dl> are read where the file declares type: term-set.
CommandDoes
manni term list [paths...]Lists every entry the set resolves to, with its id, label and alt-labels.
manni term get <term> [paths...]Shows one entry and the line it was read from.
manni term check [paths...]Checks the set and every concepts: reference into it, against ten rules.
manni term lint [paths...]Runs Vale over each definition, abstract and scope note.
manni term write [paths...]Writes the set back in place, or renders it as pages, a glossary file, TBX, SKOS, CSV, JSON or a Vale style.
manni term formatsLists the constructs read and written, per format.

You don’t need to install anything. Two term pages define corrective lens and progressive lens, and PAL is an alt-label of the second. A guide names three concepts:

docs/guides/fitting.md
---
title: Fitting lenses
concepts: [PAL, corrective lens, progressive lens]
---
Terminal window
npx @hawkeyexl/manni term check
docs/guides/fitting.md:3
error manni:term/undefined-term concepts: "PAL" names no entry.
"progressive lens" lists it as an alt-label.
1 error in 2 terms

The exit code is 1. PAL is a name the set knows, and the finding says which entry claims it, so the fix is the preferred label. Drop PAL, which the guide already names by its label, and the check passes:

✓ 2 terms, 2 references, no findings

The reference shelf holds the detail. The CLI reference covers every flag and every usage error. The configuration reference covers the term: keys. The terminology reference covers the ten fields, and the rules reference covers the ten checks.

What manni term checks, and what it doesn’t

Section titled “What manni term checks, and what it doesn’t”

It checks

That every concepts: value names an entry by its preferred label. That ids and labels are unique, ignoring case. That broader, narrower, related-terms and see resolve, and that the hierarchy has no cycle. With Vale, it checks the prose of each definition against your house voice.

It doesn't

Read the body of a page for how a term is used. That is what the Vale style write -f vale generates is for, run by Vale over the docs. It doesn’t judge whether a definition is correct, either.

Term entries are written in the built-in manni:terminology:1.0.0 vocabulary. manni meta validate checks one page’s shape against it when the page’s schema set includes it, as -s manni:terminology:1.0.0 does. manni term check checks the set.