Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

center-key/gulp-w3c-html-validator

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚫  Gulp is no longer maintained.
The same functionality of this gulp plugin is available as a regular CLI build task without gulp.
See: w3c-html-validator

gulp-w3c-html-validator

logo

Gulp plugin to validate HTML using the W3C Markup Validation Service

License:MIT npm Build

This Gulp plugin is a wrapper for w3c-html-validator ("A package for testing HTML files or URLs against the W3C validator").  Note that it's usually simpler and cleaner to use the underlying library directly from your package.json file than using this plugin.

screenshot

A) Setup

Install module into your project:

$ npm install --save-dev gulp-w3c-html-validator

B) Define Task

Create a task in your gulpfile.js:

// Imports
import gulp from 'gulp';
import { htmlValidator } from 'gulp-w3c-html-validator';

// Tasks
const task = {
   validateHtml() {
      return gulp.src('target/**/*.html')
         .pipe(htmlValidator.analyzer())
         .pipe(htmlValidator.reporter());
      },
   };

// Gulp
gulp.task('validate-html', task.validateHtml);

C) Options

1. analyzer()

Name (key) Type Default Description
checkUrl string 'https://validator.w3.org/nu/' W3C validation API endpoint.
ignoreLevel 'info' or 'warning' null Skip unwanted messages.*
ignoreMessages string or regex null Skip messages containing a string or matching a regular expression.*

*The ignoreMessages and ignoreLevel options only work for 'json' output.  Option value 'warning' also skips 'info'.

Example usage of ignoreMessages option:

// Tasks
const task = {
   validateHtml() {
      return gulp.src('target/**/*.html')
         .pipe(htmlValidator.analyzer({ ignoreMessages: /^Duplicate ID/ }))
         .pipe(htmlValidator.reporter());
      },
   };

2. reporter()

Name (key) Type Default Description
maxMessageLen number null Trim validation messages to not exceed a maximum length.
throwErrors boolean false Throw an error for HTTP validation failure.

D) Custom Reporting

The analyzer() adds the validation results onto each file object in the w3cHtmlValidator field, which contains a validates (boolean) field and a messages (array) field.

Example usage

// Import
import { htmlValidator } from 'gulp-w3c-html-validator';
import through2 from 'through2';

// Tasks
const task = {
   validateHtml() {
      const handleFile = (file, encoding, callback) => {
         callback(null, file);
         if (!file.w3cHtmlValidator.validates)
            throw Error('HTML failed validation');
         };
      return gulp.src('target/**/*.html')
         .pipe(htmlValidator.analyzer())
         .pipe(through2.obj(handleFile));  //custom reporter
      },
   };

// Gulp
gulp.task('validate-html', task.validateHtml);


MIT License

About

🚦 Gulp plugin to validate HTML using the W3C Markup Validation Service

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • JavaScript 58.8%
  • Shell 20.4%
  • TypeScript 17.4%
  • HTML 3.4%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.