pipeline-validate-html
v0.1.0
Published
Gulp pipeline to validate html files
Downloads
5
Maintainers
Readme
pipeline-validate-html
Information
| Package | Description | Version| | ------------- |:-------------:| -----:| | pipeline-validate-html| This pipeline validates HTML files using HTML Hint | 0.1.0 |
Overview
A pipeline for validating HTML files using HTML Hint.
Install
$ npm install pipeline-validate-html --save-dev
Usage
Options
The following options are available to customize linting. They can be passed via an object or by storing within a .htmllintrc
file and providing a path to the pipeline method.
These options are provided to gulp-htmllint
. Please refer to that project's Options for more information.
|Name | Type | Default | Description
|-----|------|---------|------------|
|rules|Object|see the included .htmllintrc
|Object containing htmllint options, which are merged with the default rules within the .htmllintrc
file.|
|config|String|path/pipeline-validate-html/.htmllintrc
|A path to a custom config file.|
|plugins|Array|[]|An array of plugins that should be utilized during linting.|
|failOnError|Boolean|false|Determine whether the pipeline exits with an error code|
Examples
Using default rules
// using default rules
var gulp = require('gulp');
var validateHtmlPipeline = require('pipeline-validate-html');
gulp.task('validate:html', function() {
return gulp
.src(['src/**/*.html'])
.pipe(validateHtmlPipeline.validateHTML());
});
Custom file path
A custom file path can be provided which points to a config file with a complete or partial list of linting rules. These rules will be merged with the default rules found in the .htmllintrc
file provied with this repo. This allows for a partial list of overrides to be provied, while retaining the default settings for those rules not provied.
NOTE: When providing a String, all additional options are kept as default
// using a custom file path
var gulp = require('gulp');
var validateHtmlPipeline = require('pipeline-validate-html');
gulp.task('validate:html', function() {
return gulp
.src(['src/**/*.html'])
.pipe(validateHtmlPipeline.validateHTML('path/to/another/.htmllintrc'));
});
Config Object
// using a config object
var gulp = require('gulp');
var validateHtmlPipeline = require('pipeline-validate-html');
var lintOpts = {
plugins: ['lint-plugin-name'],
failOnError: true,
rules: { /* rule definitions to override default */ },
/* -- OR -- */
config: 'path/to/.htmllintrc'
}
gulp.task('validate:html', function() {
return gulp
.src(['src/**/*.html'])
.pipe(validateHtmlPipeline.validateHTML(lintOpts));
});
Providing Rules and a Config
Passing both rules
and a config
path will first merge the provided rules with the config file rules, then merged with the default options. Rules will follow the following priority:
options.rules <- options.config <- default config
This priority order allows for a custom config to be utilized across projects, while providing a means of tweaking rules on a per use basis.
// using a config object with both rules and config properties
var gulp = require('gulp');
var validateHtmlPipeline = require('pipeline-validate-html');
var lintOpts = {
plugins: ['lint-plugin-name'],
failOnError: true,
rules: { /* rule definitions to override custom config */ },
config: 'path/to/.htmllintrc' // this file will override the default options
}
gulp.task('validate:html', function() {
return gulp
.src(['src/**/*.html'])
.pipe(validateHtmlPipeline.validateHTML(lintOpts));
});
Results
This pipeline returns a stream object. This object receives a stream with the HTML files to validate. You can call the validateHTML method to run the validation. The method will report if any issues were found during the process. If no issues are present, it will return the stream.
LICENSE
Copyright (c) 2017 Kenzan http://kenzan.com
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.