at path:
ROOT
/
wp-includes
/
js
/
codemirror
/
htmlhint-kses.js
run:
R
W
Run
codemirror.min.css
16.1 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
codemirror.min.js
605.62 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
csslint.js
365.24 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
espree.min.js
248.2 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
esprima.js
276.92 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
fakejshint.js
1.25 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
htmlhint-kses.js
1.19 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
htmlhint.js
40.99 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
jsonlint.js
8.57 KB
2026-05-21 18:07:37
R
W
Run
Delete
Rename
error_log
up
📄
htmlhint-kses.js
Save
/* global HTMLHint */ /* eslint no-magic-numbers: ["error", { "ignore": [1] }] */ HTMLHint.addRule( { id: 'kses', description: 'Element or attribute cannot be used.', /** * Initialize. * * @this {import('htmlhint/types').Rule} * @param {import('htmlhint').HTMLParser} parser - Parser. * @param {import('htmlhint').Reporter} reporter - Reporter. * @param {Record<string, Record<string, boolean>>} options - KSES options. * @return {void} */ init: function ( parser, reporter, options ) { 'use strict'; parser.addListener( 'tagstart', ( event ) => { const tagName = event.tagName.toLowerCase(); if ( ! options[ tagName ] ) { reporter.error( `Tag <${ event.tagName }> is not allowed.`, event.line, event.col, this, event.raw ); return; } const allowedAttributes = options[ tagName ]; const column = event.col + event.tagName.length + 1; for ( const attribute of event.attrs ) { if ( ! allowedAttributes[ attribute.name.toLowerCase() ] ) { reporter.error( `Tag attribute [${ attribute.raw }] is not allowed.`, event.line, column + attribute.index, this, attribute.raw ); } } } ); }, } );