Configuration reference
The terminology tool reads three parts of the family’s one config file,
manni.config.yaml. The top-level collections: list says which files
exist. The top-level tools: key says where Vale’s configuration is. The
term: section holds the tool’s own settings. Every term: key has a
default, so most repositories need no term: section at all. collections:
has none. A run with no paths, no collection and no manifest stops with No files to read.
collections: - name: site paths: - "docs/**/*.md"
tools: vale: config: .vale.ini
term: manifests: - terms.yaml abstractMaxLength: 80 severity: unused-term: offDocument sets
Section titled “Document sets”A bare manni term check reads every file the top-level collections: list
declares, and --collection narrows a run to one of them. A term is a page
declaring type: term, so no key says where the terms are. They are found
among the documents. The keys of a collection are on the metadata tool’s
configuration reference.
A family file that declares collections: and no term: section is still
this tool’s config. Every term: key takes its default.
Vale’s configuration
Section titled “Vale’s configuration”manni term lint and manni term write -f vale run Vale. The path to Vale’s
configuration is a family setting, tools.vale.config, and it sits beside
collections: rather than under term:. It is documented with the other
family keys on the metadata tool’s
configuration reference.
Without it, Vale finds its own configuration, as it does when a person runs
it.
| Key | Type | Default | Mirrors | Description |
|---|---|---|---|---|
manifests | list of paths | [] | none | YAML or JSON files holding entries outside any document, relative to the config file. Read on every run that loads the config. |
abstractMaxLength | non-negative integer | 60 | none | The length, in UTF-16 code units, past which abstract-too-long fires. |
baseline | path | none | --baseline | A baseline file, relative to the config file. Setting it compares every check run against the file, without the flag. With --baseline and no key, the file is .manni-term-baseline.json. |
severity | mapping | the defaults | none | Per-rule level: error, warning, notice or off. Only the rules named change. |
allowEmpty | boolean | false | --allow-empty | Treat a missing path, no matched files or no terms as success. The flag wins. |
respectGitignore | boolean | true | --no-gitignore | Skip files .gitignore covers when expanding directories and globs. The flag wins for one run. |
A manifest
Section titled “A manifest”A manifest holds entries that live in no document. The top-level key is the
entry’s id, and each entry carries the
terminology fields by name:
corrective-lens: label: corrective lens narrower: [bifocal, progressive lens] definition: A lens worn to correct a refractive error of the eye.bifocal: label: bifocal abstract: Lenses with two distinct optical powers, divided by a visible line.A finding about an entry names the manifest and the entry’s own line. When a
manifest and a page use one id, both get a duplicate-id finding, and neither
value wins.
Severity
Section titled “Severity”severity: moves any of the ten rules to another level, or turns it off. The
defaults and each rule’s message are on the
rules reference.
term: severity: unused-term: off # a termbase written ahead of the docs asymmetric-hierarchy: error # hold both halves of every hierarchyThe levels are the family’s three, notice, warning and error, plus
off. Only an error moves the exit code. See severity across the
family.
term lint takes no level from this map. Its levels come from Vale’s
configuration.
Refusals
Section titled “Refusals”A config the tool cannot use stops the run with exit 2. A malformed config
stops it before any file is read. A key that belongs to the family is refused
by name, with where it went:
manni: manni.config.yaml: term does not carry "paths". Name a collection under collections:.manni: manni.config.yaml: term does not carry "vale". Vale's settings live under tools.vale.term.exclude is refused with the same message as term.paths. Every other
refusal names the key and what it expected:
manni: Unknown key "maxLength" under term: in manni.config.yaml. Supported keys: manifests, abstractMaxLength, baseline, severity, allowEmpty, respectGitignore.manni: manni.config.yaml: term.severity.undefined-term "fatal" is not a level. Expected notice | warning | error | off.manni: term.abstractMaxLength in manni.config.yaml must be a non-negative integer.A type error names the key and the type it wanted, and never repeats the
value. Two refusals come after the documents load. A tools.vale.config that
names a missing file stops lint and write -f vale without -o, the two
forms that run Vale:
manni: manni.config.yaml: tools.vale.config "nowhere.ini" does not exist.A term.manifests file that is not there stops every verb once the other
files are read, named as the config spells it:
manni: manni.config.yaml: term.manifests "terms/missing.yaml" does not exist.The other tools: refusals are on the metadata tool’s
configuration reference.