Index: lib/src/prism/components/prism-markdown.js |
diff --git a/lib/src/prism/components/prism-markdown.js b/lib/src/prism/components/prism-markdown.js |
index 94a71546a1a5bb553f45da97ca8db1863d73d0d1..f089f1516702da469fb0e9f9791fc791c12830a2 100644 |
--- a/lib/src/prism/components/prism-markdown.js |
+++ b/lib/src/prism/components/prism-markdown.js |
@@ -2,15 +2,13 @@ Prism.languages.markdown = Prism.languages.extend('markup', {}); |
Prism.languages.insertBefore('markdown', 'prolog', { |
'blockquote': { |
// > ... |
- pattern: /(^|\n)>(?:[\t ]*>)*/, |
- lookbehind: true, |
+ pattern: /^>(?:[\t ]*>)*/m, |
alias: 'punctuation' |
}, |
'code': [ |
{ |
// Prefixed by 4 spaces or 1 tab |
- pattern: /(^|\n)(?: {4}|\t).+/, |
- lookbehind: true, |
+ pattern: /^(?: {4}|\t).+/m, |
alias: 'keyword' |
}, |
{ |
@@ -27,7 +25,7 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
// title 2 |
// ------- |
- pattern: /\w+.*\n(?:==+|--+)/, |
+ pattern: /\w+.*(?:\r?\n|\r)(?:==+|--+)/, |
alias: 'important', |
inside: { |
punctuation: /==+$|--+$/ |
@@ -36,7 +34,7 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
{ |
// # title 1 |
// ###### title 6 |
- pattern: /((?:^|\n)\s*)#+.+/, |
+ pattern: /(^\s*)#+.+/m, |
lookbehind: true, |
alias: 'important', |
inside: { |
@@ -49,7 +47,7 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
// --- |
// * * * |
// ----------- |
- pattern: /((?:^|\n)\s*)([*-])([\t ]*\2){2,}(?=\s*(?:\n|$))/, |
+ pattern: /(^\s*)([*-])([\t ]*\2){2,}(?=\s*$)/m, |
lookbehind: true, |
alias: 'punctuation' |
}, |
@@ -58,7 +56,7 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
// + item |
// - item |
// 1. item |
- pattern: /((?:^|\n)\s*)(?:[*+-]|\d+\.)(?=[\t ].)/, |
+ pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m, |
lookbehind: true, |
alias: 'punctuation' |
}, |
@@ -67,14 +65,14 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
// [id]: http://example.com 'Optional title' |
// [id]: http://example.com (Optional title) |
// [id]: <http://example.com> "Optional title" |
- pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:[^>]|\\>)+>)(?:[\t ]+(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\)))?/, |
+ pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/, |
inside: { |
'variable': { |
pattern: /^(!?\[)[^\]]+/, |
lookbehind: true |
}, |
- 'string': /(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\))$/, |
- 'punctuation': /[[\]\(\)<>:]/ |
+ 'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/, |
+ 'punctuation': /^[\[\]!:]|[<>]/ |
}, |
alias: 'url' |
}, |
@@ -83,10 +81,10 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
// __strong__ |
// Allow only one line break |
- pattern: /(^|[^\\])(\*\*|__)(?:\n(?!\n)|.)+?\2/, |
+ pattern: /(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/, |
lookbehind: true, |
inside: { |
- 'punctuation': /^\*\*|^__|\*\*\s*$|__\s*$/ |
+ 'punctuation': /^\*\*|^__|\*\*$|__$/ |
} |
}, |
'italic': { |
@@ -94,7 +92,7 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
// _em_ |
// Allow only one line break |
- pattern: /(^|[^\\])(?:\*(?:\n(?!\n)|.)+?\*|_(?:\n(?!\n)|.)+?_)/, |
+ pattern: /(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/, |
lookbehind: true, |
inside: { |
'punctuation': /^[*_]|[*_]$/ |
@@ -103,14 +101,14 @@ Prism.languages.insertBefore('markdown', 'prolog', { |
'url': { |
// [example](http://example.com "Optional title") |
// [example] [id] |
- pattern: /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:[^"]|\\")*")?\)| ?\[[^\]\n]*\])/, |
+ pattern: /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/, |
inside: { |
'variable': { |
pattern: /(!?\[)[^\]]+(?=\]$)/, |
lookbehind: true |
}, |
'string': { |
- pattern: /"(?:[^"]|\\")*"(?=\)$)/ |
+ pattern: /"(?:\\.|[^"\\])*"(?=\)$)/ |
} |
} |
} |