Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ietf-tools/idnits

Library / CLI to inspect Internet-Draft documents for a variety of conditions to conform with IETF policies.
https://github.com/ietf-tools/idnits

ietf internet-drafts nits

Last synced: 21 days ago
JSON representation

Library / CLI to inspect Internet-Draft documents for a variety of conditions to conform with IETF policies.

Awesome Lists containing this project

README

        



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](https://github.com/ietf-tools/idnits/tree/v2) isntead.*

- [Installation](#installation)
- [Usage](#usage)
- [As a CLI](#as-a-cli)
- [As a library](#as-a-library)
- [Tests](#tests)
- [Development](#development)
- [Contributing](https://github.com/ietf-tools/.github/blob/main/CONTRIBUTING.md)

---

### Installation

1. Install [Node.js 18.x or later](https://nodejs.org/)
2. Install **idnits**:

```sh
npm install -g @ietf-tools/idnits
```

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

### Usage

#### As a CLI

```sh
idnits [args]
```

| 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](https://jestjs.io/) library and are located under the `tests` directory.

You can run the suite of tests using:
```sh
# 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 `` and `` with the desired flags + file path)*
```
node cli.js
```