Validate HTML5 files.
Project description
This was written with static site generators like Jekyll and Pelican in mind that push to a static server. html5validator is a command line executable that integrates well with CircleCI and TravisCI and tests all static html files for HTML5 validity.
Install
Install with pip install html5validator and run with
html5validator --root _build/ --ignore-re 'Attribute "ng-[a-z-]+" not allowed'
to validate all html files in the _build directory and to ignore all messages that match the regular expression Attribute "ng-[a-z-]+" not allowed. Run html5validator --help to see the list of command line options.
This package uses the validator.nu backend which is written in Java. Therefore, a Java Runtime Environment must be available on your system. Since version 0.2, Java 8 is required.
Integration with CircleCI
Create a circle.yml file:
machine:
java:
version: oraclejdk8
dependencies:
pre:
- sudo pip install html5validator
test:
override:
- "html5validator --root _build/"
in your repository with static html files and get HTML5 validation on every git push.
Integration with TravisCI
Create a .travis.yml file. This is an example for a Python project:
language: python
python:
- "2.7"
branches:
only:
- gh-pages
# install Java 8 as required by vnu.jar
before_install:
- sudo apt-get update
- sudo apt-get install oracle-java8-installer
- sudo update-java-alternatives -s java-8-oracle
install:
- "pip install --user html5validator"
script: "html5validator --root _build/"
This is an example for Java project:
language: java
jdk:
- oraclejdk8 # vnu.jar requires Java 8
branches:
only:
- gh-pages
install:
- "pip install --user html5validator"
script: "html5validator --root _build/"
Fix the html5validator version by using pip install --user html5validator==<version number>.
You can also use this for user pages (repositories of the form <username>.github.io) where the html files are in the master branch. You only have to remove:
branches:
only:
- gh-pages
from .travis.yml. I am using this on my own user page.
Technical Notes
If you are using grunt already, maybe consider using the grunt-html plugin for grunt instead.
Use --ignore-re 'Attribute "ng-[a-z-]+" not allowed' with angular.js apps.
Example with multiple ignores: html5validator --root tests/multiple_ignores/ --ignore-re 'Attribute "ng-[a-z-]+" not allowed' 'Start tag seen without seeing a doctype first'
Changelog
Install a particular version, for example 0.1.12, with pip install html5validator==0.1.12.
- 0.2.0 (2016-01-21)
--ignore, --ignore-re: ignore messages containing an exact pattern or matching a regular expression (migration from version 0.1.14: replace --ignore with --ignore-re)
curly quotes and straight quotes can now be used interchangeably
change Java stack size handling (introduced the new command line options -l, -ll and -lll)
update vnu.jar to 16.1.1 (which now requires Java 8)
- 0.1.14 (2015-10-09)
change text encoding handling
adding command line arguments --log and --version
- 0.1.12 (2015-05-07)
document how to specify multiple regular expressions to be ignored
add --ignore as command line argument. Takes a regular expression for warnings and errors that should be ignored.
0.1.9 (2015-03-02)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.