wp/wp-includes/js/codemirror/htmlhint-kses.js
changeset 7 cf61fcea0001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/js/codemirror/htmlhint-kses.js	Mon Oct 14 17:39:30 2019 +0200
@@ -0,0 +1,30 @@
+/* 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 );
+				}
+			}
+		});
+	}
+});