Skip to content
This repository was archived by the owner on Feb 21, 2023. It is now read-only.

emmercm/metalsmith-html-linter

Repository files navigation

metalsmith-html-linter

⚠️ This repistory has been moved to metalsmith-plugins. ⚠️

npm Version npm Weekly Downloads

Known Vulnerabilities Test Coverage Maintainability

GitHub License

A Metalsmith plugin to lint HTML for syntax and semantics.

This plugin will raise an exception and stop the build if any HTML files are found to be violating any configured linthtml rules. The goal is to catch any problems before they appear as errors in a browser.

Installation

npm install --save metalsmith-html-linter

JavaScript Usage

const Metalsmith = require('metalsmith');
const linter     = require('metalsmith-html-linter');

Metalsmith(__dirname)
    .use(linter({
        // options here
    }))
    .build((err) => {
        if (err) {
            throw err;
        }
    });

Options

html (optional)

Type: string Default: **/*.html

A micromatch glob pattern to find HTML files.

linthtmnl (optional)

Type: string Default:

{
    "attr-bans": [
        "align", "alink", "background", "bgcolor", "border", "cellpadding", "cellspacing", "char", "charoff", "clear", "compact", "frame", "frameborder", "height", "hspace", "link", "marginheight", "marginwidth", "noshade", "nowrap", "rules", "scrolling", "size", "text", "valign", "vlink", "vspace", "width"
    ],
    "attr-req-value": false,
    "doctype-first": true,
    "id-class-style": false,
    "indent-style": false,
    "indent-width": false,
    "line-end-style": false,
    "line-no-trailing-whitespace": false,
    "tag-bans": [
        "acronym", "applet", "basefont", "big", "center", "dir", "font", "frame", "frameset", "isindex", "noframes", "strike", "tt"
    ],
    "tag-name-lowercase": false,
    "title-max-len": false
}

An object of linthtml options. These will be merged with the default linthtml options.

Note: linthtml has an opinionated set of default options inherited from htmllint that are inconsistent with the HTML5 specification, hence the complicated default.

htmllint (deprecated)

Type: object Default: undefined

An object of htmllint options. These options may break in the future if linthtml stops supporting them, so the linthtml option above is preferred.

ignoreTags (optional)

Type: string[] Default: ["code", "pre", "svg", "textarea"]

An array of cheerio selectors of elements to remove before linting. These elements will not show up in any error output.

parallelism (optional)

Type: number Default: the number of logical CPU cores available

The maximum number of async operations at a time.

Changelog

Changelog

About

A Metalsmith plugin to lint HTML for syntax and semantics.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors