}
},
- validation: {
+ htmllint: {
options: {
- charset: 'utf-8',
- doctype: 'HTML5',
- failHard: true,
- reset: true,
- relaxerror: [
- 'Element img is missing required attribute src.',
- 'Attribute autocomplete not allowed on element input at this point.',
- 'Attribute autocomplete not allowed on element button at this point.'
+ ignore: [
+ 'Attribute "autocomplete" not allowed on element "button" at this point.',
+ 'Attribute "autocomplete" not allowed on element "input" at this point.',
+ 'Bad value "X-UA-Compatible" for attribute "http-equiv" on element "meta".',
+ 'Element "img" is missing required attribute "src".'
]
},
- files: {
- src: '_gh_pages/**/*.html'
- }
+ src: '_gh_pages/**/*.html'
},
watch: {
require('time-grunt')(grunt);
// Docs HTML validation task
- grunt.registerTask('validate-html', ['jekyll:docs', 'validation']);
+ grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint']);
var runSubset = function (subset) {
return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset;
"grunt-contrib-watch": "~0.6.1",
"grunt-csscomb": "~3.0.0",
"grunt-exec": "~0.4.6",
- "grunt-html-validation": "~0.1.18",
+ "grunt-html": "~2.0.0",
"grunt-jekyll": "~0.4.2",
"grunt-jscs": "~1.2.0",
"grunt-saucelabs": "~8.5.0",