| OLD | NEW |
| 1 Prism.languages.markdown = Prism.languages.extend('markup', {}); | 1 Prism.languages.markdown = Prism.languages.extend('markup', {}); |
| 2 Prism.languages.insertBefore('markdown', 'prolog', { | 2 Prism.languages.insertBefore('markdown', 'prolog', { |
| 3 'blockquote': { | 3 'blockquote': { |
| 4 // > ... | 4 // > ... |
| 5 » » pattern: /(^|\n)>(?:[\t ]*>)*/, | 5 » » pattern: /^>(?:[\t ]*>)*/m, |
| 6 » » lookbehind: true, | |
| 7 alias: 'punctuation' | 6 alias: 'punctuation' |
| 8 }, | 7 }, |
| 9 'code': [ | 8 'code': [ |
| 10 { | 9 { |
| 11 // Prefixed by 4 spaces or 1 tab | 10 // Prefixed by 4 spaces or 1 tab |
| 12 » » » pattern: /(^|\n)(?: {4}|\t).+/, | 11 » » » pattern: /^(?: {4}|\t).+/m, |
| 13 » » » lookbehind: true, | |
| 14 alias: 'keyword' | 12 alias: 'keyword' |
| 15 }, | 13 }, |
| 16 { | 14 { |
| 17 // `code` | 15 // `code` |
| 18 // ``code`` | 16 // ``code`` |
| 19 pattern: /``.+?``|`[^`\n]+`/, | 17 pattern: /``.+?``|`[^`\n]+`/, |
| 20 alias: 'keyword' | 18 alias: 'keyword' |
| 21 } | 19 } |
| 22 ], | 20 ], |
| 23 'title': [ | 21 'title': [ |
| 24 { | 22 { |
| 25 // title 1 | 23 // title 1 |
| 26 // ======= | 24 // ======= |
| 27 | 25 |
| 28 // title 2 | 26 // title 2 |
| 29 // ------- | 27 // ------- |
| 30 » » » pattern: /\w+.*\n(?:==+|--+)/, | 28 » » » pattern: /\w+.*(?:\r?\n|\r)(?:==+|--+)/, |
| 31 alias: 'important', | 29 alias: 'important', |
| 32 inside: { | 30 inside: { |
| 33 punctuation: /==+$|--+$/ | 31 punctuation: /==+$|--+$/ |
| 34 } | 32 } |
| 35 }, | 33 }, |
| 36 { | 34 { |
| 37 // # title 1 | 35 // # title 1 |
| 38 // ###### title 6 | 36 // ###### title 6 |
| 39 » » » pattern: /((?:^|\n)\s*)#+.+/, | 37 » » » pattern: /(^\s*)#+.+/m, |
| 40 lookbehind: true, | 38 lookbehind: true, |
| 41 alias: 'important', | 39 alias: 'important', |
| 42 inside: { | 40 inside: { |
| 43 punctuation: /^#+|#+$/ | 41 punctuation: /^#+|#+$/ |
| 44 } | 42 } |
| 45 } | 43 } |
| 46 ], | 44 ], |
| 47 'hr': { | 45 'hr': { |
| 48 // *** | 46 // *** |
| 49 // --- | 47 // --- |
| 50 // * * * | 48 // * * * |
| 51 // ----------- | 49 // ----------- |
| 52 » » pattern: /((?:^|\n)\s*)([*-])([\t ]*\2){2,}(?=\s*(?:\n|$))/, | 50 » » pattern: /(^\s*)([*-])([\t ]*\2){2,}(?=\s*$)/m, |
| 53 lookbehind: true, | 51 lookbehind: true, |
| 54 alias: 'punctuation' | 52 alias: 'punctuation' |
| 55 }, | 53 }, |
| 56 'list': { | 54 'list': { |
| 57 // * item | 55 // * item |
| 58 // + item | 56 // + item |
| 59 // - item | 57 // - item |
| 60 // 1. item | 58 // 1. item |
| 61 » » pattern: /((?:^|\n)\s*)(?:[*+-]|\d+\.)(?=[\t ].)/, | 59 » » pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m, |
| 62 lookbehind: true, | 60 lookbehind: true, |
| 63 alias: 'punctuation' | 61 alias: 'punctuation' |
| 64 }, | 62 }, |
| 65 'url-reference': { | 63 'url-reference': { |
| 66 // [id]: http://example.com "Optional title" | 64 // [id]: http://example.com "Optional title" |
| 67 // [id]: http://example.com 'Optional title' | 65 // [id]: http://example.com 'Optional title' |
| 68 // [id]: http://example.com (Optional title) | 66 // [id]: http://example.com (Optional title) |
| 69 // [id]: <http://example.com> "Optional title" | 67 // [id]: <http://example.com> "Optional title" |
| 70 » » pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:[^>]|\\>)+>)(?:[\t ]+(?:
"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\)))?/, | 68 » » pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(
?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/, |
| 71 inside: { | 69 inside: { |
| 72 'variable': { | 70 'variable': { |
| 73 pattern: /^(!?\[)[^\]]+/, | 71 pattern: /^(!?\[)[^\]]+/, |
| 74 lookbehind: true | 72 lookbehind: true |
| 75 }, | 73 }, |
| 76 » » » 'string': /(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|
\\\))*\))$/, | 74 » » » 'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\
\.|[^)\\])*\))$/, |
| 77 » » » 'punctuation': /[[\]\(\)<>:]/ | 75 » » » 'punctuation': /^[\[\]!:]|[<>]/ |
| 78 }, | 76 }, |
| 79 alias: 'url' | 77 alias: 'url' |
| 80 }, | 78 }, |
| 81 'bold': { | 79 'bold': { |
| 82 // **strong** | 80 // **strong** |
| 83 // __strong__ | 81 // __strong__ |
| 84 | 82 |
| 85 // Allow only one line break | 83 // Allow only one line break |
| 86 » » pattern: /(^|[^\\])(\*\*|__)(?:\n(?!\n)|.)+?\2/, | 84 » » pattern: /(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/, |
| 87 lookbehind: true, | 85 lookbehind: true, |
| 88 inside: { | 86 inside: { |
| 89 » » » 'punctuation': /^\*\*|^__|\*\*\s*$|__\s*$/ | 87 » » » 'punctuation': /^\*\*|^__|\*\*$|__$/ |
| 90 } | 88 } |
| 91 }, | 89 }, |
| 92 'italic': { | 90 'italic': { |
| 93 // *em* | 91 // *em* |
| 94 // _em_ | 92 // _em_ |
| 95 | 93 |
| 96 // Allow only one line break | 94 // Allow only one line break |
| 97 » » pattern: /(^|[^\\])(?:\*(?:\n(?!\n)|.)+?\*|_(?:\n(?!\n)|.)+?_)/, | 95 » » pattern: /(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/, |
| 98 lookbehind: true, | 96 lookbehind: true, |
| 99 inside: { | 97 inside: { |
| 100 'punctuation': /^[*_]|[*_]$/ | 98 'punctuation': /^[*_]|[*_]$/ |
| 101 } | 99 } |
| 102 }, | 100 }, |
| 103 'url': { | 101 'url': { |
| 104 // [example](http://example.com "Optional title") | 102 // [example](http://example.com "Optional title") |
| 105 // [example] [id] | 103 // [example] [id] |
| 106 » » pattern: /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:[^"]|\\")*")?\)|
?\[[^\]\n]*\])/, | 104 » » pattern: /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)
| ?\[[^\]\n]*\])/, |
| 107 inside: { | 105 inside: { |
| 108 'variable': { | 106 'variable': { |
| 109 pattern: /(!?\[)[^\]]+(?=\]$)/, | 107 pattern: /(!?\[)[^\]]+(?=\]$)/, |
| 110 lookbehind: true | 108 lookbehind: true |
| 111 }, | 109 }, |
| 112 'string': { | 110 'string': { |
| 113 » » » » pattern: /"(?:[^"]|\\")*"(?=\)$)/ | 111 » » » » pattern: /"(?:\\.|[^"\\])*"(?=\)$)/ |
| 114 } | 112 } |
| 115 } | 113 } |
| 116 } | 114 } |
| 117 }); | 115 }); |
| 118 | 116 |
| 119 Prism.languages.markdown['bold'].inside['url'] = Prism.util.clone(Prism.language
s.markdown['url']); | 117 Prism.languages.markdown['bold'].inside['url'] = Prism.util.clone(Prism.language
s.markdown['url']); |
| 120 Prism.languages.markdown['italic'].inside['url'] = Prism.util.clone(Prism.langua
ges.markdown['url']); | 118 Prism.languages.markdown['italic'].inside['url'] = Prism.util.clone(Prism.langua
ges.markdown['url']); |
| 121 Prism.languages.markdown['bold'].inside['italic'] = Prism.util.clone(Prism.langu
ages.markdown['italic']); | 119 Prism.languages.markdown['bold'].inside['italic'] = Prism.util.clone(Prism.langu
ages.markdown['italic']); |
| 122 Prism.languages.markdown['italic'].inside['bold'] = Prism.util.clone(Prism.langu
ages.markdown['bold']); | 120 Prism.languages.markdown['italic'].inside['bold'] = Prism.util.clone(Prism.langu
ages.markdown['bold']); |
| OLD | NEW |