posthtml-lint 

posthtml-lint is a PostHTML plugin to lint static markup.
Currently supported rules include no-duplicate-ids, no-duplicate-tags, no-empty-tags and no-missing-attributes.
Before:
<head>
<title>Title</title>
<title>Title</title>
</head>
<body>
<a>Link</a>
</body>
After:
There are ...
Install
yarn add -D posthtml-lint
npm i posthtml-lint
Usage
const fs = require('fs');
const posthtml = require('posthtml');
const { lint } = require('posthtml-lint');
const html = fs.readFileSync('./index.html');
posthtml()
.use(lint())
.process(html)
.then(result => fs.writeFileSync('./after.html', result.html));
Options
noDuplicateIds | boolean (default true) | Disallow duplicate ids |
noDuplicateTags | boolean (default true) | Disallow duplicate occurrences of the html, head, title and body tags |
noEmptyTags | boolean (default true) | Disallow empty tags for tags that are not self-closing |
noMissingAttributes | boolean (default true) | Disallow tags with missing required attributes. |
Contributing
See PostHTML Guidelines and contribution guide.
License
MIT