Skip to content
Grunt plugin for html validation
JavaScript HTML PHP
Latest commit c59d8bf Jun 22, 2016 @jzaefferer 8.0.0


Linux Build Status Windows Build status Code Climate Dependency Status devDependency Status

Grunt plugin for html validation, using the vnu.jar markup checker.

Getting Started

Install this grunt plugin next to your project's Gruntfile.js with:

npm install grunt-html --save-dev

Then add this line to your project's Gruntfile.js:


Then specify what files to validate in your config:

  htmllint: {
    all: ["demos/**/*.html", "tests/**/*.html"]

For fast validation, keep that in a single group, as the validator initialization takes a few seconds.



Type: Array, String, or RegExp
Default: null

Use this to specify the error message(s) to ignore. For example:

all: {
  options: {
    ignore: 'The “clear” attribute on the “br” element is obsolete. Use CSS instead.'
  src: "html4.html"

The ignore option also supports regular expressions. For example, to ignore AngularJS directive attributes:

all: {
  options: {
    ignore: /attribute “ng-[a-z-]+” not allowed/
  src: "app.html"


Type: Array
Default: 'info','warning','error'

Set errorlevels to control which error types are returned from the validator. Ignores all other returned types.


Type: Boolean
Default: false

Set force to true to report errors but not fail the grunt task.


Type: String
Default: null

Allows you to modify the output format. By default, this plugin will use a built-in Grunt reporter. Set the path to your own custom reporter or to one of the provided reporters: checkstyle, junit or json.


Type: String
Default: null

Specify a filepath to output the results of a reporter. If reporterOutput is specified then all output will be written to the given filepath rather than printed to stdout.


Type: Boolean
Default: false

Set absoluteFilePathsForReporter to true to use absolute file paths in generated reports.


Copyright Jörn Zaefferer.
Licensed under the MIT license.

Something went wrong with that request. Please try again.