Expand description
doiget lint <path> — structural validation of a BibTeX bibliography,
independent of DOI resolution (doiget verify’s job).
Read-only: lint never rewrites the file. It is also math-aware —
inline $...$ in a title is content, not a malformed field — so a
hand-edited maths title (e.g. $T\bar{T}$) survives untouched and is
never flagged.
One JSON-Lines record per finding on stdout:
{"key","entry_type","rule","severity","message"}. The summary goes to
stderr unless --quiet.
Rules and default severity:
parse_error(error) — the file is not parseable BibTeX. Thebiblatexparser also rejects duplicate / blank citation keys at this stage, so those surface as aparse_error(with a descriptive message) rather than via a dedicated rule.missing_required_field(warning) — an expected field for the entry type is absent. Advisory: real-world.bibfiles are often loose, so this is a comment, not a failure.empty_field(warning) — a present field is blank / whitespace.title_math_hazard(warning) — atitlecarries$$display math, which some downstream renderers (e.g. DocumenterCitations) cannot process; inline$...$is fine. Best-effort, advisory.
Exit code = number of error findings (capped at 255). --strict
promotes warnings so that ANY finding fails the run.
Functions§
- run
- Entry point for
doiget lint <path> [--strict].