TEXT   28
HTMLHint
Guest on 8th March 2023 12:24:53 AM


  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. });

Raw Paste

Login or Register to edit or fork this paste. It's free.