Spaces:
Sleeping
Sleeping
/* global HTMLHint */ | |
/* eslint no-magic-numbers: ["error", { "ignore": [0, 1] }] */ | |
HTMLHint.addRule({ | |
id: 'kses', | |
description: 'Element or attribute cannot be used.', | |
init: function( parser, reporter, options ) { | |
'use strict'; | |
var self = this; | |
parser.addListener( 'tagstart', function( event ) { | |
var attr, col, attrName, allowedAttributes, i, len, tagName; | |
tagName = event.tagName.toLowerCase(); | |
if ( ! options[ tagName ] ) { | |
reporter.error( 'Tag <' + event.tagName + '> is not allowed.', event.line, event.col, self, event.raw ); | |
return; | |
} | |
allowedAttributes = options[ tagName ]; | |
col = event.col + event.tagName.length + 1; | |
for ( i = 0, len = event.attrs.length; i < len; i++ ) { | |
attr = event.attrs[ i ]; | |
attrName = attr.name.toLowerCase(); | |
if ( ! allowedAttributes[ attrName ] ) { | |
reporter.error( 'Tag attribute [' + attr.raw + ' ] is not allowed.', event.line, col + attr.index, self, attr.raw ); | |
} | |
} | |
}); | |
} | |
}); | |