Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: lib/src/prism/components/prism-textile.js

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 (function(Prism) {
2 // We don't allow for pipes inside parentheses
3 // to not break table pattern |(. foo |). bar |
4 var modifierRegex = '(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+';
5 var modifierTokens = {
6 'css': {
7 pattern: /\{[^}]+\}/,
8 inside: {
9 rest: Prism.languages.css
10 }
11 },
12 'class-id': {
13 pattern: /(\()[^)]+(?=\))/,
14 lookbehind: true,
15 alias: 'attr-value'
16 },
17 'lang': {
18 pattern: /(\[)[^\]]+(?=\])/,
19 lookbehind: true,
20 alias: 'attr-value'
21 },
22 // Anything else is punctuation (the first pattern is for row/co l spans inside tables)
23 'punctuation': /[\\\/]\d+|\S/
24 };
25
26
27 Prism.languages.textile = Prism.languages.extend('markup', {
28 'phrase': {
29 pattern: /(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,
30 lookbehind: true,
31 inside: {
32
33 // h1. Header 1
34 'block-tag': {
35 pattern: RegExp('^[a-z]\\w*(?:' + modifi erRegex + '|[<>=()])*\\.'),
36 inside: {
37 'modifier': {
38 pattern: RegExp('(^[a-z] \\w*)(?:' + modifierRegex + '|[<>=()])+(?=\\.)'),
39 lookbehind: true,
40 inside: Prism.util.clone (modifierTokens)
41 },
42 'tag': /^[a-z]\w*/,
43 'punctuation': /\.$/
44 }
45 },
46
47 // # List item
48 // * List item
49 'list': {
50 pattern: RegExp('^[*#]+(?:' + modifierRe gex + ')?\\s+.+', 'm'),
51 inside: {
52 'modifier': {
53 pattern: RegExp('(^[*#]+ )' + modifierRegex),
54 lookbehind: true,
55 inside: Prism.util.clone (modifierTokens)
56 },
57 'punctuation': /^[*#]+/
58 }
59 },
60
61 // | cell | cell | cell |
62 'table': {
63 // Modifiers can be applied to the row: {color:red}.|1|2|3|
64 // or the cell: |{color:red}.1|2|3|
65 pattern: RegExp('^(?:(?:' + modifierRege x + '|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\ d+)+\\.)?[^|]*)+\\|', 'm'),
66 inside: {
67 'modifier': {
68 // Modifiers for rows af ter the first one are
69 // preceded by a pipe an d a line feed
70 pattern: RegExp('(^|\\|( ?:\\r?\\n|\\r)?)(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)'),
71 lookbehind: true,
72 inside: Prism.util.clone (modifierTokens)
73 },
74 'punctuation': /\||^\./
75 }
76 },
77
78 'inline': {
79 pattern: RegExp('(\\*\\*|__|\\?\\?|[*_%@ +\\-^~])(?:' + modifierRegex + ')?.+?\\1'),
80 inside: {
81 // Note: superscripts and subscr ipts are not handled specifically
82
83 // *bold*, **bold**
84 'bold': {
85 pattern: RegExp('((^\\*\ \*?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
86 lookbehind: true
87 },
88
89 // _italic_, __italic__
90 'italic': {
91 pattern: RegExp('((^__?) (?:' + modifierRegex + ')?).+?(?=\\2)'),
92 lookbehind: true
93 },
94
95 // ??cite??
96 'cite': {
97 pattern: RegExp('(^\\?\\ ?(?:' + modifierRegex + ')?).+?(?=\\?\\?)'),
98 lookbehind: true,
99 alias: 'string'
100 },
101
102 // @code@
103 'code': {
104 pattern: RegExp('(^@(?:' + modifierRegex + ')?).+?(?=@)'),
105 lookbehind: true,
106 alias: 'keyword'
107 },
108
109 // +inserted+
110 'inserted': {
111 pattern: RegExp('(^\\+(? :' + modifierRegex + ')?).+?(?=\\+)'),
112 lookbehind: true
113 },
114
115 // -deleted-
116 'deleted': {
117 pattern: RegExp('(^-(?:' + modifierRegex + ')?).+?(?=-)'),
118 lookbehind: true
119 },
120
121 // %span%
122 'span': {
123 pattern: RegExp('(^%(?:' + modifierRegex + ')?).+?(?=%)'),
124 lookbehind: true
125 },
126
127 'modifier': {
128 pattern: RegExp('(^\\*\\ *|__|\\?\\?|[*_%@+\\-^~])' + modifierRegex),
129 lookbehind: true,
130 inside: Prism.util.clone (modifierTokens)
131 },
132 'punctuation': /[*_%?@+\-^~]+/
133 }
134 },
135
136 // [alias]http://example.com
137 'link-ref': {
138 pattern: /^\[[^\]]+\]\S+$/m,
139 inside: {
140 'string': {
141 pattern: /(\[)[^\]]+(?=\ ])/,
142 lookbehind: true
143 },
144 'url': {
145 pattern: /(\])\S+$/,
146 lookbehind: true
147 },
148 'punctuation': /[\[\]]/
149 }
150 },
151
152 // "text":http://example.com
153 // "text":link-ref
154 'link': {
155 pattern: RegExp('"(?:' + modifierRegex + ')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),
156 inside: {
157 'text': {
158 pattern: RegExp('(^"(?:' + modifierRegex + ')?)[^"]+(?=")'),
159 lookbehind: true
160 },
161 'modifier': {
162 pattern: RegExp('(^")' + modifierRegex),
163 lookbehind: true,
164 inside: Prism.util.clone (modifierTokens)
165 },
166 'url': {
167 pattern: /(:).+/,
168 lookbehind: true
169 },
170 'punctuation': /[":]/
171 }
172 },
173
174 // !image.jpg!
175 // !image.jpg(Title)!:http://example.com
176 'image': {
177 pattern: RegExp('!(?:' + modifierRegex + '|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?'),
178 inside: {
179 'source': {
180 pattern: RegExp('(^!(?:' + modifierRegex + '|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)'),
181 lookbehind: true,
182 alias: 'url'
183 },
184 'modifier': {
185 pattern: RegExp('(^!)(?: ' + modifierRegex + '|[<>=()])+'),
186 lookbehind: true,
187 inside: Prism.util.clone (modifierTokens)
188 },
189 'url': {
190 pattern: /(:).+/,
191 lookbehind: true
192 },
193 'punctuation': /[!:]/
194 }
195 },
196
197 // Footnote[1]
198 'footnote': {
199 pattern: /\b\[\d+\]/,
200 alias: 'comment',
201 inside: {
202 'punctuation': /\[|\]/
203 }
204 },
205
206 // CSS(Cascading Style Sheet)
207 'acronym': {
208 pattern: /\b[A-Z\d]+\([^)]+\)/,
209 inside: {
210 'comment': {
211 pattern: /(\()[^)]+(?=\) )/,
212 lookbehind: true
213 },
214 'punctuation': /[()]/
215 }
216 },
217
218 // Prism(C)
219 'mark': {
220 pattern: /\b\((TM|R|C)\)/,
221 alias: 'comment',
222 inside: {
223 'punctuation':/[()]/
224 }
225 }
226 }
227 }
228 });
229
230 var nestedPatterns = {
231 'inline': Prism.util.clone(Prism.languages.textile['phrase'].ins ide['inline']),
232 'link': Prism.util.clone(Prism.languages.textile['phrase'].insid e['link']),
233 'image': Prism.util.clone(Prism.languages.textile['phrase'].insi de['image']),
234 'footnote': Prism.util.clone(Prism.languages.textile['phrase'].i nside['footnote']),
235 'acronym': Prism.util.clone(Prism.languages.textile['phrase'].in side['acronym']),
236 'mark': Prism.util.clone(Prism.languages.textile['phrase'].insid e['mark'])
237 };
238
239 // Allow some nesting
240 Prism.languages.textile['phrase'].inside['inline'].inside['bold'].inside = nestedPatterns;
241 Prism.languages.textile['phrase'].inside['inline'].inside['italic'].insi de = nestedPatterns;
242 Prism.languages.textile['phrase'].inside['inline'].inside['inserted'].in side = nestedPatterns;
243 Prism.languages.textile['phrase'].inside['inline'].inside['deleted'].ins ide = nestedPatterns;
244 Prism.languages.textile['phrase'].inside['inline'].inside['span'].inside = nestedPatterns;
245
246 // Allow some styles inside table cells
247 Prism.languages.textile['phrase'].inside['table'].inside['inline'] = nes tedPatterns['inline'];
248 Prism.languages.textile['phrase'].inside['table'].inside['link'] = neste dPatterns['link'];
249 Prism.languages.textile['phrase'].inside['table'].inside['image'] = nest edPatterns['image'];
250 Prism.languages.textile['phrase'].inside['table'].inside['footnote'] = n estedPatterns['footnote'];
251 Prism.languages.textile['phrase'].inside['table'].inside['acronym'] = ne stedPatterns['acronym'];
252 Prism.languages.textile['phrase'].inside['table'].inside['mark'] = neste dPatterns['mark'];
253
254 }(Prism));
OLDNEW
« no previous file with comments | « lib/src/prism/components/prism-tcl.min.js ('k') | lib/src/prism/components/prism-textile.min.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698