# posthtml-w3c **Repository Path**: mirrors_posthtml/posthtml-w3c ## Basic Information - **Project Name**: posthtml-w3c - **Description**: W3C HTML Validation for PostHTML - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2025-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # W3C HTML Validation for PostHTML Checks if HTML is valid to W3C standards using the [W3C Validation Service](https://validator.w3.org/) ## Install ```bash (sudo) npm i -D posthtml-w3c ``` ## Usage For general usage and build process integration see [PostHTML Docs](https://github.com/posthtml/posthtml#usage) ### Options You can modify the behavior by passing an options object to the method: ```js var options = { filter: [ 'An “img” element must have an “alt” attribute, except under certain conditions.', ], hideEmpty: true } var validate = require('posthtml-w3c')(options) ``` * `filter` - an array of strings to filter the messages. If you want to silence some warnings or errors, you can add a substring of the message to this collection. Any messages that contain a string from the `filter` array will be ignored. * `hideEmpty` - if `true` and no messages are found, nothing will be printed. If `false` or skipped and no messages are found, the header and summary will be printed. This option is backward-compatible. ### Example using Node API ```js const fs = require('fs') var posthtml = require('posthtml') var validate = require('posthtml-w3c')() var html = fs.readFileSync('./index.html', 'utf8') posthtml([ validate ]) .process(html) .then(result => console.log(result.html)) ``` #### Output ```bash PostHTML W3C Validation ----------------------- ⚠ info [14:5] Consider using the “h1” element as a top-level heading only (all “h1” elements are treated as top-level headings by many screen readers and other tools). ⚠ info [19:5] Consider using the “h1” element as a top-level heading only (all “h1” elements are treated as top-level headings by many screen readers and other tools). ⚠ info [18:5] Consider using the “h1” element as a top-level heading only (all “h1” elements are treated as top-level headings by many screen readers and other tools). ⚠ 3 Errors ```