makestatic-validate-html
Version:
Validates HTML documents
140 lines (97 loc) • 4.31 kB
Markdown
# Validate HTML
> Validate HTML documents
For each HTML file validate the file using the [nu validator][validator] jar, requires java 1.8.
Configure this plugin for the `audit` phase by default otherwise set the `stdin` option and use during the `validate` phase before files are written to disc.
---
- [Install](#install)
- [API](#api)
- [ValidateHtml](#validatehtml)
- [See Also](#see-also)
- [ValidateHtml](#validatehtml-1)
- [Options](#options)
- [.sources](#sources)
- [.after](#after)
- [License](#license)
---
## Install
```
yarn add makestatic-validate-html
```
## API
### ValidateHtml
Validate HTML documents using the nu HTML validator jar file.
Requires that java 1.8 is installed.
This implementation can run in one of two modes either it will write the
file content to `stdin` of the java process as files are processed
which is compatible with the `validate` phase that executes before files
are written to disc. Or it can pass all the files as arguments to the
validator jar when `stdin` is `false` this implies the files have been
written to disc and is compatible with the `audit` phase.
Writing to `stdin` is very slow as a new JVM is launched for each file
whilst passing all the files as arguments runs the risk of the dreaded
*argument list too long* shell error for very large sites.
The default behaviour is to use the argument list as it is much faster.
Generally it is recommended that `stdin` is disabled and this plugin is
used during the `audit` phase.
#### See Also
* [HTML Validator](https://github.com/validator/validator "HTML Validator")
#### ValidateHtml
```javascript
new ValidateHtml(context, options)
```
Create a ValidateHtml plugin.
If the `jar` option is given it overrides the `vnu-jar` module.
When no `format` or a bad format is given the `json` format is used.
Pretty printing only applies when the output format is `json`.
When the `warn` option is disabled it is equivalent to the `--errors-only`
jar option so warnings are not displayed.
* `context` Object the processing context.
* `options` Object plugin options.
##### Options
* `format=json` String validator output format.
* `stdin` Boolean=false write each file to stdin.
* `pretty=true` Boolean=true pretty print result.
* `bail=true` Boolean=false throw error on validation failure.
* `warn=true` Boolean=false control validation warnings.
* `detect=false` Boolean=false control language detection.
* `jar` String path to the validator jar file.
#### .sources
```javascript
ValidateHtml.prototype.sources(file, context)
```
Run validation on an individual HTML file when `stdin` is set otherwise
collect the list of files to be processed afterwards.
* `file` File the current file.
* `context` Object the processing context.
#### .after
```javascript
ValidateHtml.prototype.after(context)
```
Run validation on collected files when `stdin` is `false`.
* `context` Object the processing context.
## License
MIT
---
Created by [mkdoc](https://github.com/mkdoc/mkdoc) on March 12, 2017
[docs]: https://makestatic.ws/docs/ "Documentation"
[standalone manual]: https://github.com/makestatic/website/blob/master/MANUAL.md "Standalone Manual"
[yarn]: https://yarnpkg.com "Yarn"
[webpack]: https://webpack.js.org "Webpack"
[babel]: https://babeljs.io "Babel"
[postcss]: http://postcss.org "Postcss"
[sugarss]: https://github.com/postcss/sugarss "Sugarss"
[reshape]: https://github.com/reshape/reshape "Reshape Source Code"
[reshapeml]: https://reshape.ml "Reshape"
[clean-css]: https://github.com/jakubpawlowicz/clean-css "Clean CSS"
[html-minifier]: https://github.com/kangax/html-minifier "Html Minifier"
[uglify-js]: https://github.com/mishoo/UglifyJS2 "Uglify JS"
[imagemin]: https://github.com/imagemin/imagemin "Imagemin"
[mkdoc]: https://github.com/mkdoc/mkdoc "Mkdoc"
[browsersync]: https://www.browsersync.io "Browsersync"
[yeoman]: http://yeoman.io "Yeoman"
[spike]: https://www.spike.cf "Spike"
[validator]: https://github.com/validator/validator "HTML Validator"
[github pages]: https://pages.github.com "Github Pages"
[amazon s3]: https://aws.amazon.com/s3/ "Amazon S3"
[google sitemaps]: https://support.google.com/webmasters/answer/183668?hl=en&ref_topic=4581190 "Google Sitemaps"
[sitemaps]: https://www.sitemaps.org/ "Sitemaps"