1 | Prism.languages.rest = {
|
2 | 'table': [
|
3 | {
|
4 | pattern: /(\s*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1(?:[+|].+)+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/,
|
5 | lookbehind: true,
|
6 | inside: {
|
7 | 'punctuation': /\||(?:\+[=-]+)+\+/
|
8 | }
|
9 | },
|
10 | {
|
11 | pattern: /(\s*)(?:=+ +)+=+(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1(?:=+ +)+=+(?=(?:\r?\n|\r){2}|\s*$)/,
|
12 | lookbehind: true,
|
13 | inside: {
|
14 | 'punctuation': /[=-]+/
|
15 | }
|
16 | }
|
17 | ],
|
18 |
|
19 |
|
20 |
|
21 | 'substitution-def': {
|
22 | pattern: /(^\s*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,
|
23 | lookbehind: true,
|
24 | inside: {
|
25 | 'substitution': {
|
26 | pattern: /^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,
|
27 | alias: 'attr-value',
|
28 | inside: {
|
29 | 'punctuation': /^\||\|$/
|
30 | }
|
31 | },
|
32 | 'directive': {
|
33 | pattern: /( +)[^:]+::/,
|
34 | lookbehind: true,
|
35 | alias: 'function',
|
36 | inside: {
|
37 | 'punctuation': /::$/
|
38 | }
|
39 | }
|
40 | }
|
41 | },
|
42 | 'link-target': [
|
43 | {
|
44 | pattern: /(^\s*\.\. )\[[^\]]+\]/m,
|
45 | lookbehind: true,
|
46 | alias: 'string',
|
47 | inside: {
|
48 | 'punctuation': /^\[|\]$/
|
49 | }
|
50 | },
|
51 | {
|
52 | pattern: /(^\s*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,
|
53 | lookbehind: true,
|
54 | alias: 'string',
|
55 | inside: {
|
56 | 'punctuation': /^_|:$/
|
57 | }
|
58 | }
|
59 | ],
|
60 | 'directive': {
|
61 | pattern: /(^\s*\.\. )[^:]+::/m,
|
62 | lookbehind: true,
|
63 | alias: 'function',
|
64 | inside: {
|
65 | 'punctuation': /::$/
|
66 | }
|
67 | },
|
68 | 'comment': {
|
69 |
|
70 | pattern: /(^\s*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,
|
71 | lookbehind: true
|
72 | },
|
73 |
|
74 | 'title': [
|
75 |
|
76 | {
|
77 | pattern: /^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,
|
78 | inside: {
|
79 | 'punctuation': /^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
|
80 | 'important': /.+/
|
81 | }
|
82 | },
|
83 |
|
84 |
|
85 | {
|
86 | pattern: /(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,
|
87 | lookbehind: true,
|
88 | inside: {
|
89 | 'punctuation': /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
|
90 | 'important': /.+/
|
91 | }
|
92 | }
|
93 | ],
|
94 | 'hr': {
|
95 | pattern: /((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,
|
96 | lookbehind: true,
|
97 | alias: 'punctuation'
|
98 | },
|
99 | 'field': {
|
100 | pattern: /(^\s*):[^:\r\n]+:(?= )/m,
|
101 | lookbehind: true,
|
102 | alias: 'attr-name'
|
103 | },
|
104 | 'command-line-option': {
|
105 | pattern: /(^\s*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,
|
106 | lookbehind: true,
|
107 | alias: 'symbol'
|
108 | },
|
109 | 'literal-block': {
|
110 | pattern: /::(?:\r?\n|\r){2}([ \t]+).+(?:(?:\r?\n|\r)\1.+)*/,
|
111 | inside: {
|
112 | 'literal-block-punctuation': {
|
113 | pattern: /^::/,
|
114 | alias: 'punctuation'
|
115 | }
|
116 | }
|
117 | },
|
118 | 'quoted-literal-block': {
|
119 | pattern: /::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,
|
120 | inside: {
|
121 | 'literal-block-punctuation': {
|
122 | pattern: /^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,
|
123 | alias: 'punctuation'
|
124 | }
|
125 | }
|
126 | },
|
127 | 'list-bullet': {
|
128 | pattern: /(^\s*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,
|
129 | lookbehind: true,
|
130 | alias: 'punctuation'
|
131 | },
|
132 | 'doctest-block': {
|
133 | pattern: /(^\s*)>>> .+(?:(?:\r?\n|\r).+)*/m,
|
134 | lookbehind: true,
|
135 | inside: {
|
136 | 'punctuation': /^>>>/
|
137 | }
|
138 | },
|
139 |
|
140 | 'inline': [
|
141 | {
|
142 | pattern: /(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s).*?[^\s]\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,
|
143 | lookbehind: true,
|
144 | inside: {
|
145 | 'bold': {
|
146 | pattern: /(^\*\*).+(?=\*\*$)/,
|
147 | lookbehind: true
|
148 | },
|
149 | 'italic': {
|
150 | pattern: /(^\*).+(?=\*$)/,
|
151 | lookbehind: true
|
152 | },
|
153 | 'inline-literal': {
|
154 | pattern: /(^``).+(?=``$)/,
|
155 | lookbehind: true,
|
156 | alias: 'symbol'
|
157 | },
|
158 | 'role': {
|
159 | pattern: /^:[^:]+:|:[^:]+:$/,
|
160 | alias: 'function',
|
161 | inside: {
|
162 | 'punctuation': /^:|:$/
|
163 | }
|
164 | },
|
165 | 'interpreted-text': {
|
166 | pattern: /(^`).+(?=`$)/,
|
167 | lookbehind: true,
|
168 | alias: 'attr-value'
|
169 | },
|
170 | 'substitution': {
|
171 | pattern: /(^\|).+(?=\|$)/,
|
172 | lookbehind: true,
|
173 | alias: 'attr-value'
|
174 | },
|
175 | 'punctuation': /\*\*?|``?|\|/
|
176 | }
|
177 | }
|
178 | ],
|
179 |
|
180 | 'link': [
|
181 | {
|
182 | pattern: /\[[^\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,
|
183 | alias: 'string',
|
184 | inside: {
|
185 | 'punctuation': /^\[|\]_$/
|
186 | }
|
187 | },
|
188 | {
|
189 | pattern: /(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,
|
190 | alias: 'string',
|
191 | inside: {
|
192 | 'punctuation': /^_?`|`$|`?_?_$/
|
193 | }
|
194 | }
|
195 | ],
|
196 |
|
197 |
|
198 |
|
199 |
|
200 |
|
201 | 'punctuation': {
|
202 | pattern: /(^\s*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,
|
203 | lookbehind: true
|
204 | }
|
205 | };
|