Offline HTML5 validator and linter


Offline HTML5 validator. Validates either a full document or a smaller
(incomplete) template, e.g. from an AngularJS or Vue.js component.
Read the full documentation at https://html-validate.org/
- Can test fragments of HTML, for instance a component template.
- Does not upload any data to a remote server, all testing is done locally.
- Strict and non-forgiving parsing. It will not try to correct any incorrect
markup or guess what it should do.
npm install -g html-validate
html-validate [OPTIONS] [FILENAME..] [DIR..]
Create .htmlvalidate.json:
``js
{
"extends": [
"html-validate:recommended"
],
"rules": {
"close-order": "error",
"void": ["warn", {"style": "omit"}]
}
}
`
`html
Lorem ipsum
`text
1:1 error Element is implicitly closed by adjacent
no-implicit-close
2:2 error Button is missing type attribute button-type
6:4 error Unexpected close-tag, expected opening tag close-order
`Bundles
The library comes in four flavours:
- CommonJS full (
dist/cjs/index.js)
- CommonJS browser (dist/cjs/browser.js)
- ESM full (dist/esm/index.js)
- ESM browser (dist/esm/browser.js)The browser bundle contains a slimmed version without CLI and NodeJS dependencies.
`ts
/ automatically determine build based on browser export condition /
import { ... } from "html-validate";/ explicitly use nodejs bundle /
import { ... } from "html-validate/node";
/ explicitly use browser bundle /
import { ... } from "html-validate/browser";
`See running in browser for details about getting HTML-Validate running in a browser environment.
Developing
$3
- Node.js 20
- NPM 10
$3
Testing is done using jest.
npm test
or call
jest directly.Some tests are autogenerated from documentation examples, use
npm run docs to build those before running.$3
Linting is done using ESLint.
npm run eslint
or call
eslint` directly.$3
npm run build
To build documentation use:
npm run docs
The documentation can be served locally using:
npm start