JSPM

html-validate

7.15.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 172474
  • Score
    100M100P100Q157892F
  • License MIT

Offline html5 validator

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.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/index.d.ts
  • html-validate/dist/cjs/index.js
  • html-validate/dist/cjs/index.js.map
  • 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/meta-helper.js
  • html-validate/dist/cjs/meta-helper.js.map
  • html-validate/dist/cjs/package.json
  • html-validate/dist/cjs/rules-helper.js
  • html-validate/dist/cjs/rules-helper.js.map
  • 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/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.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/index.d.ts
  • html-validate/dist/es/index.js
  • html-validate/dist/es/index.js.map
  • 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/meta-helper.js
  • html-validate/dist/es/meta-helper.js.map
  • html-validate/dist/es/package.json
  • html-validate/dist/es/rules-helper.js
  • html-validate/dist/es/rules-helper.js.map
  • 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/html5.d.ts
  • html-validate/elements/html5.js
  • html-validate/jest
  • html-validate/package.json
  • html-validate/test-utils

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.

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

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.

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 codegen

Test

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.

Lint

Linting is done using ESLint.

npm run eslint

or call eslint directly.

Build

npm run build

To build documentation use:

npm run docs

The documentation can be served locally using:

npm start