angelovcom.net

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

htmlhint-kses.js (984B)


      1 /* global HTMLHint */
      2 /* eslint no-magic-numbers: ["error", { "ignore": [0, 1] }] */
      3 HTMLHint.addRule({
      4 	id: 'kses',
      5 	description: 'Element or attribute cannot be used.',
      6 	init: function( parser, reporter, options ) {
      7 		'use strict';
      8 
      9 		var self = this;
     10 		parser.addListener( 'tagstart', function( event ) {
     11 			var attr, col, attrName, allowedAttributes, i, len, tagName;
     12 
     13 			tagName = event.tagName.toLowerCase();
     14 			if ( ! options[ tagName ] ) {
     15 				reporter.error( 'Tag <' + event.tagName + '> is not allowed.', event.line, event.col, self, event.raw );
     16 				return;
     17 			}
     18 
     19 			allowedAttributes = options[ tagName ];
     20 			col = event.col + event.tagName.length + 1;
     21 			for ( i = 0, len = event.attrs.length; i < len; i++ ) {
     22 				attr = event.attrs[ i ];
     23 				attrName = attr.name.toLowerCase();
     24 				if ( ! allowedAttributes[ attrName ] ) {
     25 					reporter.error( 'Tag attribute [' + attr.raw + ' ] is not allowed.', event.line, col + attr.index, self, attr.raw );
     26 				}
     27 			}
     28 		});
     29 	}
     30 });