summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/parse5/lib/common/doctype.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/parse5/lib/common/doctype.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/parse5/lib/common/doctype.js156
1 files changed, 156 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/parse5/lib/common/doctype.js b/bin/wiki/ImportarDesdeURL/node_modules/parse5/lib/common/doctype.js
new file mode 100644
index 00000000..ca4a86a9
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/parse5/lib/common/doctype.js
@@ -0,0 +1,156 @@
+'use strict';
+
+var DOCUMENT_MODE = require('./html').DOCUMENT_MODE;
+
+//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 = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([
+ '-//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'
+ ],
+ LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = [
+ '-//W3C//DTD XHTML 1.0 Frameset//',
+ '-//W3C//DTD XHTML 1.0 Transitional//'
+ ],
+ LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([
+ '-//W3C//DTD HTML 4.01 Frameset//',
+ '-//W3C//DTD HTML 4.01 Transitional//'
+ ]);
+
+
+//Utils
+function enquoteDoctypeId(id) {
+ var quote = id.indexOf('"') !== -1 ? '\'' : '"';
+
+ return quote + id + quote;
+}
+
+function hasPrefix(publicId, prefixes) {
+ for (var i = 0; i < prefixes.length; i++) {
+ if (publicId.indexOf(prefixes[i]) === 0)
+ return true;
+ }
+
+ return false;
+}
+
+
+//API
+exports.getDocumentMode = function (name, publicId, systemId) {
+ if (name !== VALID_DOCTYPE_NAME)
+ return DOCUMENT_MODE.QUIRKS;
+
+ if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID)
+ return DOCUMENT_MODE.QUIRKS;
+
+ if (publicId !== null) {
+ publicId = publicId.toLowerCase();
+
+ if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1)
+ return DOCUMENT_MODE.QUIRKS;
+
+ var prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;
+
+ if (hasPrefix(publicId, prefixes))
+ return DOCUMENT_MODE.QUIRKS;
+
+ prefixes = systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;
+
+ if (hasPrefix(publicId, prefixes))
+ return DOCUMENT_MODE.LIMITED_QUIRKS;
+ }
+
+ return DOCUMENT_MODE.NO_QUIRKS;
+};
+
+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;
+};