Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/node_modules/parse5/lib/common/doctype.js')
-rw-r--r--tools/eslint/node_modules/parse5/lib/common/doctype.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/tools/eslint/node_modules/parse5/lib/common/doctype.js b/tools/eslint/node_modules/parse5/lib/common/doctype.js
new file mode 100644
index 00000000000..2c6927a873a
--- /dev/null
+++ b/tools/eslint/node_modules/parse5/lib/common/doctype.js
@@ -0,0 +1,137 @@
+'use strict';
+
+//Const
+var VALID_DOCTYPE_NAME = 'html',
+ QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd',
+ QUIRKS_MODE_PUBLIC_ID_PREFIXES = [
+ '+//silmaril//dtd html pro v0r11 19970101//en',
+ '-//advasoft ltd//dtd html 3.0 aswedit + extensions//en',
+ '-//as//dtd html 3.0 aswedit + extensions//en',
+ '-//ietf//dtd html 2.0 level 1//en',
+ '-//ietf//dtd html 2.0 level 2//en',
+ '-//ietf//dtd html 2.0 strict level 1//en',
+ '-//ietf//dtd html 2.0 strict level 2//en',
+ '-//ietf//dtd html 2.0 strict//en',
+ '-//ietf//dtd html 2.0//en',
+ '-//ietf//dtd html 2.1e//en',
+ '-//ietf//dtd html 3.0//en',
+ '-//ietf//dtd html 3.0//en//',
+ '-//ietf//dtd html 3.2 final//en',
+ '-//ietf//dtd html 3.2//en',
+ '-//ietf//dtd html 3//en',
+ '-//ietf//dtd html level 0//en',
+ '-//ietf//dtd html level 0//en//2.0',
+ '-//ietf//dtd html level 1//en',
+ '-//ietf//dtd html level 1//en//2.0',
+ '-//ietf//dtd html level 2//en',
+ '-//ietf//dtd html level 2//en//2.0',
+ '-//ietf//dtd html level 3//en',
+ '-//ietf//dtd html level 3//en//3.0',
+ '-//ietf//dtd html strict level 0//en',
+ '-//ietf//dtd html strict level 0//en//2.0',
+ '-//ietf//dtd html strict level 1//en',
+ '-//ietf//dtd html strict level 1//en//2.0',
+ '-//ietf//dtd html strict level 2//en',
+ '-//ietf//dtd html strict level 2//en//2.0',
+ '-//ietf//dtd html strict level 3//en',
+ '-//ietf//dtd html strict level 3//en//3.0',
+ '-//ietf//dtd html strict//en',
+ '-//ietf//dtd html strict//en//2.0',
+ '-//ietf//dtd html strict//en//3.0',
+ '-//ietf//dtd html//en',
+ '-//ietf//dtd html//en//2.0',
+ '-//ietf//dtd html//en//3.0',
+ '-//metrius//dtd metrius presentational//en',
+ '-//microsoft//dtd internet explorer 2.0 html strict//en',
+ '-//microsoft//dtd internet explorer 2.0 html//en',
+ '-//microsoft//dtd internet explorer 2.0 tables//en',
+ '-//microsoft//dtd internet explorer 3.0 html strict//en',
+ '-//microsoft//dtd internet explorer 3.0 html//en',
+ '-//microsoft//dtd internet explorer 3.0 tables//en',
+ '-//netscape comm. corp.//dtd html//en',
+ '-//netscape comm. corp.//dtd strict html//en',
+ '-//o\'reilly and associates//dtd html 2.0//en',
+ '-//o\'reilly and associates//dtd html extended 1.0//en',
+ '-//spyglass//dtd html 2.0 extended//en',
+ '-//sq//dtd html 2.0 hotmetal + extensions//en',
+ '-//sun microsystems corp.//dtd hotjava html//en',
+ '-//sun microsystems corp.//dtd hotjava strict html//en',
+ '-//w3c//dtd html 3 1995-03-24//en',
+ '-//w3c//dtd html 3.2 draft//en',
+ '-//w3c//dtd html 3.2 final//en',
+ '-//w3c//dtd html 3.2//en',
+ '-//w3c//dtd html 3.2s draft//en',
+ '-//w3c//dtd html 4.0 frameset//en',
+ '-//w3c//dtd html 4.0 transitional//en',
+ '-//w3c//dtd html experimental 19960712//en',
+ '-//w3c//dtd html experimental 970421//en',
+ '-//w3c//dtd w3 html//en',
+ '-//w3o//dtd w3 html 3.0//en',
+ '-//w3o//dtd w3 html 3.0//en//',
+ '-//webtechs//dtd mozilla html 2.0//en',
+ '-//webtechs//dtd mozilla html//en'
+ ],
+ QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [
+ '-//w3c//dtd html 4.01 frameset//',
+ '-//w3c//dtd html 4.01 transitional//'
+ ],
+ QUIRKS_MODE_PUBLIC_IDS = [
+ '-//w3o//dtd w3 html strict 3.0//en//',
+ '-/w3c/dtd html 4.0 transitional/en',
+ 'html'
+ ];
+
+
+//Utils
+function enquoteDoctypeId(id) {
+ var quote = id.indexOf('"') !== -1 ? '\'' : '"';
+
+ return quote + id + quote;
+}
+
+
+//API
+exports.isQuirks = function (name, publicId, systemId) {
+ if (name !== VALID_DOCTYPE_NAME)
+ return true;
+
+ if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID)
+ return true;
+
+ if (publicId !== null) {
+ publicId = publicId.toLowerCase();
+
+ if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1)
+ return true;
+
+ var prefixes = QUIRKS_MODE_PUBLIC_ID_PREFIXES;
+
+ if (systemId === null)
+ prefixes = prefixes.concat(QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES);
+
+ for (var i = 0; i < prefixes.length; i++) {
+ if (publicId.indexOf(prefixes[i]) === 0)
+ return true;
+ }
+ }
+
+ return false;
+};
+
+exports.serializeContent = function (name, publicId, systemId) {
+ var str = '!DOCTYPE ';
+
+ if (name)
+ str += name;
+
+ if (publicId !== null)
+ str += ' PUBLIC ' + enquoteDoctypeId(publicId);
+
+ else if (systemId !== null)
+ str += ' SYSTEM';
+
+ if (systemId !== null)
+ str += ' ' + enquoteDoctypeId(systemId);
+
+ return str;
+};