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.
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:
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:
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.