Home

Awesome

gulp-w3cjs NPM version Build Status Dependency Status

w3cjs wrapper for gulp to validate your HTML

Usage

First, install gulp-w3cjs as a development dependency:

npm install --save-dev gulp-w3cjs

Then, add it to your gulpfile.js:

var w3cjs = require('gulp-w3cjs');

gulp.task('w3cjs', function () {
	return gulp.src('src/*.html')
		.pipe(w3cjs())
		.pipe(w3cjs.reporter());
});

Custom Reporting

The results are also added onto each file object under w3cjs, containing success (Boolean) and messages (Array).

Example usage

var w3cjs = require('gulp-w3cjs');
var through2 = require('through2');

gulp.task('example', function () {
	return gulp.src('src/*.html')
		.pipe(w3cjs())
		.pipe(through2.obj(function(file, enc, cb){
			cb(null, file);
			if (!file.w3cjs.success){
				throw new Error('HTML validation error(s) found');
			}
		}));
});

Example output

HTML Error: index.html Line 5, Column 19: Element title must not be empty.
    <title></title>

.../gulpfile.js:11
                                throw new Error('HTML validation error(s) found');
                                      ^
Error: HTML validation error(s) found

API

w3cjs(options)

options.url

URL to the w3c validator. Use if you want to use a local validator. This is the same thing as w3cjs.setW3cCheckUrl().

options.proxy

Http address of the proxy server if you are running behind a firewall, e.g. http://proxy:8080

options.doctype and options.charset were dropped in 1.0.0. Use 0.3.0 if you need them.

options.showInfo

Default: false

Show info type messages in the output.

options.verifyMessage

Allows you to intercept info, warnings or errors, using options.verifyMessage methed, returning false will skip the log output. Example usage:

return gulp.src('index.html')
	.pipe(w3cjs({
		verifyMessage: function(type, message) {

			// prevent logging error message
			if(message.indexOf('Element “style” not allowed as child of element') === 0) return false;
			
			// allow message to pass through
			return true;
		}
	}))
	.pipe(w3cjs.reporter())

w3cjs.setW3cCheckUrl(url)

Same as options.url. SEt's the URL to the w3c validator.

License

MIT License