Package Exports
- html-validate
- html-validate/browser
- html-validate/dist/cjs/browser.d.ts
- html-validate/dist/cjs/browser.js
- html-validate/dist/cjs/browser.js.map
- html-validate/dist/cjs/cli.js
- html-validate/dist/cjs/cli.js.map
- html-validate/dist/cjs/core-browser.js
- html-validate/dist/cjs/core-browser.js.map
- html-validate/dist/cjs/core-nodejs.js
- html-validate/dist/cjs/core-nodejs.js.map
- html-validate/dist/cjs/core.js
- html-validate/dist/cjs/core.js.map
- html-validate/dist/cjs/elements.js
- html-validate/dist/cjs/elements.js.map
- html-validate/dist/cjs/html-validate.js
- html-validate/dist/cjs/html-validate.js.map
- html-validate/dist/cjs/html5.js
- html-validate/dist/cjs/html5.js.map
- html-validate/dist/cjs/index.d.ts
- html-validate/dist/cjs/index.js
- html-validate/dist/cjs/index.js.map
- html-validate/dist/cjs/jest-diff.js
- html-validate/dist/cjs/jest-diff.js.map
- html-validate/dist/cjs/jest.d.ts
- html-validate/dist/cjs/jest.js
- html-validate/dist/cjs/jest.js.map
- html-validate/dist/cjs/matcher-utils.js
- html-validate/dist/cjs/matcher-utils.js.map
- html-validate/dist/cjs/matchers-jestonly.js
- html-validate/dist/cjs/matchers-jestonly.js.map
- html-validate/dist/cjs/matchers.js
- html-validate/dist/cjs/matchers.js.map
- html-validate/dist/cjs/meta-helper.js
- html-validate/dist/cjs/meta-helper.js.map
- html-validate/dist/cjs/package.json
- html-validate/dist/cjs/test-utils.d.ts
- html-validate/dist/cjs/test-utils.js
- html-validate/dist/cjs/test-utils.js.map
- html-validate/dist/cjs/tsdoc-metadata.json
- html-validate/dist/cjs/utils/natural-join.js
- html-validate/dist/cjs/utils/natural-join.js.map
- html-validate/dist/cjs/vitest.js
- html-validate/dist/cjs/vitest.js.map
- html-validate/dist/es/browser.d.ts
- html-validate/dist/es/browser.js
- html-validate/dist/es/browser.js.map
- html-validate/dist/es/cli.js
- html-validate/dist/es/cli.js.map
- html-validate/dist/es/core-browser.js
- html-validate/dist/es/core-browser.js.map
- html-validate/dist/es/core-nodejs.js
- html-validate/dist/es/core-nodejs.js.map
- html-validate/dist/es/core.js
- html-validate/dist/es/core.js.map
- html-validate/dist/es/elements.js
- html-validate/dist/es/elements.js.map
- html-validate/dist/es/html-validate.js
- html-validate/dist/es/html-validate.js.map
- html-validate/dist/es/html5.js
- html-validate/dist/es/html5.js.map
- html-validate/dist/es/index.d.ts
- html-validate/dist/es/index.js
- html-validate/dist/es/index.js.map
- html-validate/dist/es/jest-diff.js
- html-validate/dist/es/jest-diff.js.map
- html-validate/dist/es/jest.d.ts
- html-validate/dist/es/jest.js
- html-validate/dist/es/jest.js.map
- html-validate/dist/es/matcher-utils.js
- html-validate/dist/es/matcher-utils.js.map
- html-validate/dist/es/matchers-jestonly.js
- html-validate/dist/es/matchers-jestonly.js.map
- html-validate/dist/es/matchers.js
- html-validate/dist/es/matchers.js.map
- html-validate/dist/es/meta-helper.js
- html-validate/dist/es/meta-helper.js.map
- html-validate/dist/es/package.json
- html-validate/dist/es/test-utils.d.ts
- html-validate/dist/es/test-utils.js
- html-validate/dist/es/test-utils.js.map
- html-validate/dist/es/utils/natural-join.js
- html-validate/dist/es/utils/natural-join.js.map
- html-validate/dist/es/vitest.js
- html-validate/dist/es/vitest.js.map
- html-validate/dist/schema/config.json
- html-validate/dist/schema/elements.json
- html-validate/elements/html5
- html-validate/jest
- html-validate/node
- html-validate/package.json
- html-validate/test-utils
- html-validate/vitest
Readme
html-validate
Offline HTML5 validator. Validates either a full document or a smaller (incomplete) template, e.g. from an AngularJS or Vue.js component.
Features
- 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.
Usage
npm install -g html-validate
html-validate [OPTIONS] [FILENAME..] [DIR..]Configuration
Create .htmlvalidate.json:
{
"extends": [
"html-validate:recommended"
],
"rules": {
"close-order": "error",
"void": ["warn", {"style": "omit"}]
}
}Example
<p>
<button>Click me!</button>
<div id="show-me">
Lorem ipsum
</div>
</p> 1:1 error Element <p> is implicitly closed by adjacent <div> no-implicit-close
2:2 error Button is missing type attribute button-type
6:4 error Unexpected close-tag, expected opening tag close-orderBundles
The library comes in four flavours:
- CommonJS full (
dist/cjs/index.js) - CommonJS browser (
dist/cjs/browser.js) - ESM full (
dist/es/index.js) - ESM browser (
dist/es/browser.js)
The browser bundle contains a slimmed version without CLI and NodeJS dependencies.
/* 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
Prerequisites
- NodeJS 12
- NPM 7
Generated files
Some files are automatically generated by the toolchain but are required by many other steps such as testing and linting.
This normally happens during npm run build and npm install.
If you need to manually regenerate the files use:
npm run codegenTest
Testing is done using jest.
npm testor call jest directly.
Some tests are autogenerated from documentation examples, use npm run docs to build those before running.
Lint
Linting is done using ESLint.
npm run eslintor call eslint directly.
Build
npm run buildTo build documentation use:
npm run docsThe documentation can be served locally using:
npm start