ietf-tools / idnits

Library / CLI to inspect Internet-Draft documents for a variety of conditions to conform with IETF policies.
BSD 3-Clause "New" or "Revised" License
12 stars 16 forks source link
ietf internet-drafts nits
IDNITS [![npm](https://img.shields.io/npm/v/@ietf-tools/idnits)](https://www.npmjs.com/package/@ietf-tools/idnits) [![node-current](https://img.shields.io/node/v/@ietf-tools/idnits)](https://github.com/ietf-tools/idnits) [![License](https://img.shields.io/github/license/ietf-tools/idnits)](https://github.com/ietf-tools/idnits/blob/v3/LICENSE) ##### Library / CLI to inspect Internet-Draft documents for a variety of conditions to conform with IETF policies.

⚠️ This branch is for the new JS-based idnits3. For the older shell-based idnits2, view the v2 branch isntead.


Installation

  1. Install Node.js 18.x or later
  2. Install idnits:
npm install -g @ietf-tools/idnits

You can also run idnits directly without installing it globally using npx @ietf-tools/idnits <args>

Usage

As a CLI

idnits [args] <file path>
Arguments Alias Description Default
--filter -f Filter output to only certain severity types. Can be declared multiple times to filter multiple severity types.
Accepted values: errors, warnings, comments
--mode -m Validation mode, must be either normal, forgive-checklist or submission
Accepted shorthands: norm, n, f-c, fc, f, sub, s
normal
--no-progress Disable progress messages / animations in pretty output.
No effect in other output formats.
--offline Disable validations that require an internet connection.
--output -o Output format, must be either pretty, json or count pretty
--solarized Use alternate colors for a solarized light theme terminal.
Only used with the pretty output format.
--year -y Expect the given year in the boilerplate
--help -h Print the help text and exit
--version Print the version and exit

As a library

coming soon

Tests

Tests are made using the Jest library and are located under the tests directory.

You can run the suite of tests using:

# Make sure you installed dependencies first:
npm install

# Run the tests
npm test

Code coverage is expected to reach 100%. Ensure this is still the case when making edits / adding new functionality.

Development

  1. Clone the project
  2. Run npm install
  3. Run the CLI: (replacing <args> and <file path> with the desired flags + file path)
    node cli.js <args> <file path>