w3cjs

A node.js module for using the w3c validator.

w3cjs

A node.js library for testing files or url's against the w3c html validator.

npm install w3cjs
var w3cjs = require('w3cjs');
 
var results = w3cjs.validate({
    file: 'demo.html', // file can either be a local file or a remote file 
    //file: 'http://html5boilerplate.com/', 
    //input: '<html>...</html>', 
    //input: myBuffer, 
    output: 'json', // Defaults to 'json', other option includes html 
    proxy: 'http://proxy:8080', // Default to null 
    callbackfunction (res) {
        console.log(res);
        // depending on the output type, res will either be a json object or a html string 
    }
});
var w3cjs = require('w3cjs');
describe('html validation', function(){
    it('index page should have no html errors', function(done){
        w3cjs.validate({
            file: 'index.html',
            callbackfunction (res) {
                    console.log(res);
                if (res.messages.length > 0 ) {
                    throw {error: 'html errors have been found', results: res};
                };
                done();
            }
        })
    })
})
 

w3c has changed their validator API to not include some old options. It will eventually be fully deprecated and everyone is advised to update to 0.3.0 of this module.

doctype: 'HTML5', // Defaults false for autodetect 
charset: 'utf-8', // Defaults false for autodetect