Skip to content

Commit 31ea66b

Browse files
committed
Allow for dots in Markup tag names, but not in HTML tags included in Textile. Fixes #888
1 parent 65619f7 commit 31ea66b

File tree

6 files changed

+25
-4
lines changed

6 files changed

+25
-4
lines changed

components/prism-markup.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Prism.languages.markup = {
44
'doctype': /<!DOCTYPE[\w\W]+?>/,
55
'cdata': /<!\[CDATA\[[\w\W]*?]]>/i,
66
'tag': {
7-
pattern: /<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
7+
pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
88
inside: {
99
'tag': {
1010
pattern: /^<\/?[^\s>\/]+/i,

components/prism-markup.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/prism-textile.js

+3
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@
236236
'mark': Prism.util.clone(Prism.languages.textile['phrase'].inside['mark'])
237237
};
238238

239+
// Only allow alpha-numeric HTML tags, not XML tags
240+
Prism.languages.textile.tag.pattern = /<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i;
241+
239242
// Allow some nesting
240243
Prism.languages.textile['phrase'].inside['inline'].inside['bold'].inside = nestedPatterns;
241244
Prism.languages.textile['phrase'].inside['inline'].inside['italic'].inside = nestedPatterns;

components/prism-textile.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

prism.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ Prism.languages.markup = {
525525
'doctype': /<!DOCTYPE[\w\W]+?>/,
526526
'cdata': /<!\[CDATA\[[\w\W]*?]]>/i,
527527
'tag': {
528-
pattern: /<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
528+
pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
529529
inside: {
530530
'tag': {
531531
pattern: /^<\/?[^\s>\/]+/i,

tests/languages/markup/issue888.test

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<android.support.v7.widget.CardView>
2+
3+
----------------------------------------------------
4+
5+
[
6+
["tag", [
7+
["tag", [
8+
["punctuation", "<"],
9+
"android.support.v7.widget.CardView"
10+
]],
11+
["punctuation", ">"]
12+
]]
13+
]
14+
15+
----------------------------------------------------
16+
17+
Checks for tag names containing dots.
18+
See #888 for details.

0 commit comments

Comments
 (0)