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