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 with pip install html5validator
and run with
html5validator --root _build/ --ignore "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
.
This package uses the validator.nu backend which is written in Java. Therefore, a Java Runtime Environment must be available on your system.
Create a circle.yml
file:
dependencies:
pre:
- sudo pip install html5validator
test:
override:
- html5validator
in your repository with static html files and get HTML5 validation on every
git push
.
Create a .travis.yml
file:
language: python
branches:
only:
- gh-pages
python:
- "2.7"
install:
- "pip install html5validator"
script: "html5validator"
Enable the repository on TravisCI.
You probably don't want TravisCI to run on the master
branch but only on
the gh-pages
branch. TravisCI has an option (off by default) to run tests
only on branches that have a .travis.yml
.
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.
- If you are using grunt already, maybe consider using the grunt-html plugin for grunt instead.
- Use
--ignore "Attribute “ng-[a-z-]+” not allowed"
with angular.js apps. - Example with multiple ignores:
html5validator --root tests/multiple_ignores/ --ignore "Attribute “ng-[a-z-]+” not allowed" "Start tag seen without seeing a doctype first"
- Be careful with the non-standard quotes in the error messages when constructing the expressions to ignore.