From 3a9c3bba3975bc6b252e5998d38540c62037026f Mon Sep 17 00:00:00 2001 From: Matt Steitle Date: Tue, 17 Jan 2017 17:16:07 -0700 Subject: [PATCH 1/2] dontThrowParseErrorOnDoctypeDeclaration: Adding unit test for doctype tag --- test/parser/elements/input.html | 1 + test/parser/elements/output.json | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 test/parser/elements/input.html create mode 100644 test/parser/elements/output.json diff --git a/test/parser/elements/input.html b/test/parser/elements/input.html new file mode 100644 index 0000000000..c50eddd41f --- /dev/null +++ b/test/parser/elements/input.html @@ -0,0 +1 @@ + diff --git a/test/parser/elements/output.json b/test/parser/elements/output.json new file mode 100644 index 0000000000..79608f9132 --- /dev/null +++ b/test/parser/elements/output.json @@ -0,0 +1,23 @@ +{ + "html": { + "start": 0, + "end": 15, + "type": "Fragment", + "children": [{ + "attributes": [{ + "end": 14, + "name": "html", + "start": 10, + "type": "Attribute", + "value": true + }], + "children": [], + "end": 15, + "name": "!doctype", + "start": 0, + "type": "Element" + }] + }, + "css": null, + "js": null +} From 5aef9af4394c917c3af9e30407edaa36512f3983 Mon Sep 17 00:00:00 2001 From: Matt Steitle Date: Tue, 17 Jan 2017 17:19:29 -0700 Subject: [PATCH 2/2] dontThrowParseErrorOnDoctypeDeclaration: Adding additional specification for doctype tag matching --- src/parse/state/tag.js | 2 +- src/utils/voidElementNames.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parse/state/tag.js b/src/parse/state/tag.js index 2db102ab0d..72f73f0651 100644 --- a/src/parse/state/tag.js +++ b/src/parse/state/tag.js @@ -6,7 +6,7 @@ import { trimStart, trimEnd } from '../utils/trim.js'; import { decodeCharacterReferences } from '../utils/html.js'; import voidElementNames from '../../utils/voidElementNames.js'; -const validTagName = /^[a-zA-Z]{1,}:?[a-zA-Z0-9\-]*/; +const validTagName = /^\!?[a-zA-Z]{1,}:?[a-zA-Z0-9\-]*/; const invalidUnquotedAttributeCharacters = /[\s"'=<>\/`]/; const specials = { diff --git a/src/utils/voidElementNames.js b/src/utils/voidElementNames.js index 7df1d452b6..46306ac8c3 100644 --- a/src/utils/voidElementNames.js +++ b/src/utils/voidElementNames.js @@ -1 +1 @@ -export default /^(?:area|base|br|col|command|doctype|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/; +export default /^(?:area|base|br|col|command|\!doctype|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;