diff --git a/lib/marked.js b/lib/marked.js index 4873e9e4..78750fa3 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -38,11 +38,7 @@ block.html = (function() { html = html .replace('comment', //.source) .replace('closed', /<(\w+)[^\0]+?<\/\1>/.source) - .replace('closing', /<\w+[^>]*>/.source); - - // Better regexes: - // .replace('closed', /<(\w+)\b[^\0]*?<\/\1>/.source) - // .replace('closing', /<\w+(?!:\/|@)\b[^>]*>/.source); + .replace('closing', /<\w+(?!:\/|@)\b(?:"[^"]*"|'[^']*'|[^>])*>/.source); return new RegExp(html); })(); @@ -183,9 +179,6 @@ block.token = function(str, tokens, top) { cap = cap[0].replace(/^ *>/gm, ''); - // Better conformance: - // cap = cap[0].replace(/^ *> ?/gm, ''); - // Pass `top` to keep the current // "toplevel" state. This is exactly // how markdown.pl works. @@ -293,7 +286,7 @@ var inline = { escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, gfm_autolink: /^(\w+:\/\/[^\s]+[^.,:;"')\]\s])/, - tag: /^|^<\/?\w+[^>]*>/, + tag: /^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^>])*>/, link: /^!?\[((?:\[[^\]]*\]|[^\[\]]|\[|\](?=[^[\]]*\]))*)\]\(([^\)]*)\)/, reflink: /^!?\[((?:\[[^\]]*\]|[^\[\]]|\[|\](?=[^[\]]*\]))*)\]\s*\[([^\]]*)\]/, nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, diff --git a/test/new/escape_angles.html b/test/new/escape_angles.html index fdee9cd5..f0d4bcd7 100644 --- a/test/new/escape_angles.html +++ b/test/new/escape_angles.html @@ -1 +1 @@ -
+
diff --git a/test/new/escape_angles.text b/test/new/escape_angles.text index ac3ac3f9..f0d4bcd7 100644 --- a/test/new/escape_angles.text +++ b/test/new/escape_angles.text @@ -1 +1 @@ -
+
diff --git a/test/tests/escape_angles.html b/test/tests/escape_angles.html index fdee9cd5..f0d4bcd7 100644 --- a/test/tests/escape_angles.html +++ b/test/tests/escape_angles.html @@ -1 +1 @@ -
+
diff --git a/test/tests/escape_angles.text b/test/tests/escape_angles.text index ac3ac3f9..f0d4bcd7 100644 --- a/test/tests/escape_angles.text +++ b/test/tests/escape_angles.text @@ -1 +1 @@ -
+