JSPM

html-validate

6.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 186083
  • Score
    100M100P100Q166905F
  • License MIT

Offline html5 validator

Package Exports

  • html-validate
  • 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.d.ts
  • html-validate/dist/cjs/core.js
  • html-validate/dist/cjs/core.js.map
  • html-validate/dist/cjs/html-validate.js
  • html-validate/dist/cjs/html-validate.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-lib.d.ts
  • html-validate/dist/cjs/jest-lib.js
  • html-validate/dist/cjs/jest-lib.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/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/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.d.ts
  • html-validate/dist/es/core.js
  • html-validate/dist/es/core.js.map
  • html-validate/dist/es/html-validate.js
  • html-validate/dist/es/html-validate.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-lib.d.ts
  • html-validate/dist/es/jest-lib.js
  • html-validate/dist/es/jest-lib.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/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/schema/config.json
  • html-validate/dist/schema/elements.json
  • html-validate/elements/README.md
  • html-validate/elements/entities.json
  • html-validate/elements/html5.json
  • html-validate/jest.js
  • html-validate/package.json
  • html-validate/test-utils.js

Readme

html-validate

pipeline status coverage report

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.

Bundles

The library comes in four flavours:

  • CommonJS full (dist/cjs/main.js)
  • CommonJS browser (dist/cjs/browser.js)
  • ESM full (dist/es/main.js)
  • ESM browser (dist/es/browser.js)

The browser versions contains a slimmed version without CLI dependencies. Your tooling will probably use the correct version but if needed you can import the files directly.

Do note that to run in a browser you still need to polyfill the fs nodejs library.

Browsers and bundlers are currently not 100% supported but is possible with some tricks, see running in browser for more details.

Usage

npm install -g html-validate
html-validate FILENAME..

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-order

Developing

Prerequisites

  • NodeJS 12
  • NPM 7

Test

Testing is done using jest.

npm test

or call jest directly.

Some tests are autogenerated from documentation examples, use npm run build:docs to build those before running.

Lint

Linting is done using ESLint.

npm run eslint

or call eslint directly.

Build

npm run build

To build documentation use:

npm run build:docs

The documentation can be served locally using:

npm start