metalsmith-html-linter
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

metalsmith-html-linter

npm: version npm: downloads

Snyk: vulnerabilities codecov: coverage 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

import Metalsmith from 'metalsmith';
import linter from '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

Package Sidebar

Install

npm i metalsmith-html-linter

Weekly Downloads

1

Version

2.0.3

License

GPL-3.0-or-later

Unpacked Size

52.9 kB

Total Files

6

Last publish

Collaborators

  • emmercm