Mercurial
comparison .cms/lib/codemirror/mode/textile/test.js @ 0:78edf6b517a0 draft
24.10
author | Coffee CMS <info@coffee-cms.ru> |
---|---|
date | Fri, 11 Oct 2024 22:40:23 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:78edf6b517a0 |
---|---|
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others | |
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE | |
3 | |
4 (function() { | |
5 var mode = CodeMirror.getMode({tabSize: 4}, 'textile'); | |
6 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } | |
7 | |
8 MT('simpleParagraphs', | |
9 'Some text.', | |
10 '', | |
11 'Some more text.'); | |
12 | |
13 /* | |
14 * Phrase Modifiers | |
15 */ | |
16 | |
17 MT('em', | |
18 'foo [em _bar_]'); | |
19 | |
20 MT('emBoogus', | |
21 'code_mirror'); | |
22 | |
23 MT('strong', | |
24 'foo [strong *bar*]'); | |
25 | |
26 MT('strongBogus', | |
27 '3 * 3 = 9'); | |
28 | |
29 MT('italic', | |
30 'foo [em __bar__]'); | |
31 | |
32 MT('italicBogus', | |
33 'code__mirror'); | |
34 | |
35 MT('bold', | |
36 'foo [strong **bar**]'); | |
37 | |
38 MT('boldBogus', | |
39 '3 ** 3 = 27'); | |
40 | |
41 MT('simpleLink', | |
42 '[link "CodeMirror":https://codemirror.net]'); | |
43 | |
44 MT('referenceLink', | |
45 '[link "CodeMirror":code_mirror]', | |
46 'Normal Text.', | |
47 '[link [[code_mirror]]https://codemirror.net]'); | |
48 | |
49 MT('footCite', | |
50 'foo bar[qualifier [[1]]]'); | |
51 | |
52 MT('footCiteBogus', | |
53 'foo bar[[1a2]]'); | |
54 | |
55 MT('special-characters', | |
56 'Registered [tag (r)], ' + | |
57 'Trademark [tag (tm)], and ' + | |
58 'Copyright [tag (c)] 2008'); | |
59 | |
60 MT('cite', | |
61 "A book is [keyword ??The Count of Monte Cristo??] by Dumas."); | |
62 | |
63 MT('additionAndDeletion', | |
64 'The news networks declared [negative -Al Gore-] ' + | |
65 '[positive +George W. Bush+] the winner in Florida.'); | |
66 | |
67 MT('subAndSup', | |
68 'f(x, n) = log [builtin ~4~] x [builtin ^n^]'); | |
69 | |
70 MT('spanAndCode', | |
71 'A [quote %span element%] and [atom @code element@]'); | |
72 | |
73 MT('spanBogus', | |
74 'Percentage 25% is not a span.'); | |
75 | |
76 MT('citeBogus', | |
77 'Question? is not a citation.'); | |
78 | |
79 MT('codeBogus', | |
80 'user@example.com'); | |
81 | |
82 MT('subBogus', | |
83 '~username'); | |
84 | |
85 MT('supBogus', | |
86 'foo ^ bar'); | |
87 | |
88 MT('deletionBogus', | |
89 '3 - 3 = 0'); | |
90 | |
91 MT('additionBogus', | |
92 '3 + 3 = 6'); | |
93 | |
94 MT('image', | |
95 'An image: [string !http://www.example.com/image.png!]'); | |
96 | |
97 MT('imageWithAltText', | |
98 'An image: [string !http://www.example.com/image.png (Alt Text)!]'); | |
99 | |
100 MT('imageWithUrl', | |
101 'An image: [string !http://www.example.com/image.png!:http://www.example.com/]'); | |
102 | |
103 /* | |
104 * Headers | |
105 */ | |
106 | |
107 MT('h1', | |
108 '[header&header-1 h1. foo]'); | |
109 | |
110 MT('h2', | |
111 '[header&header-2 h2. foo]'); | |
112 | |
113 MT('h3', | |
114 '[header&header-3 h3. foo]'); | |
115 | |
116 MT('h4', | |
117 '[header&header-4 h4. foo]'); | |
118 | |
119 MT('h5', | |
120 '[header&header-5 h5. foo]'); | |
121 | |
122 MT('h6', | |
123 '[header&header-6 h6. foo]'); | |
124 | |
125 MT('h7Bogus', | |
126 'h7. foo'); | |
127 | |
128 MT('multipleHeaders', | |
129 '[header&header-1 h1. Heading 1]', | |
130 '', | |
131 'Some text.', | |
132 '', | |
133 '[header&header-2 h2. Heading 2]', | |
134 '', | |
135 'More text.'); | |
136 | |
137 MT('h1inline', | |
138 '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1 baz]'); | |
139 | |
140 /* | |
141 * Lists | |
142 */ | |
143 | |
144 MT('ul', | |
145 'foo', | |
146 'bar', | |
147 '', | |
148 '[variable-2 * foo]', | |
149 '[variable-2 * bar]'); | |
150 | |
151 MT('ulNoBlank', | |
152 'foo', | |
153 'bar', | |
154 '[variable-2 * foo]', | |
155 '[variable-2 * bar]'); | |
156 | |
157 MT('ol', | |
158 'foo', | |
159 'bar', | |
160 '', | |
161 '[variable-2 # foo]', | |
162 '[variable-2 # bar]'); | |
163 | |
164 MT('olNoBlank', | |
165 'foo', | |
166 'bar', | |
167 '[variable-2 # foo]', | |
168 '[variable-2 # bar]'); | |
169 | |
170 MT('ulFormatting', | |
171 '[variable-2 * ][variable-2&em _foo_][variable-2 bar]', | |
172 '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' + | |
173 '[variable-2&strong *][variable-2 bar]', | |
174 '[variable-2 * ][variable-2&strong *foo*][variable-2 bar]'); | |
175 | |
176 MT('olFormatting', | |
177 '[variable-2 # ][variable-2&em _foo_][variable-2 bar]', | |
178 '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' + | |
179 '[variable-2&strong *][variable-2 bar]', | |
180 '[variable-2 # ][variable-2&strong *foo*][variable-2 bar]'); | |
181 | |
182 MT('ulNested', | |
183 '[variable-2 * foo]', | |
184 '[variable-3 ** bar]', | |
185 '[keyword *** bar]', | |
186 '[variable-2 **** bar]', | |
187 '[variable-3 ** bar]'); | |
188 | |
189 MT('olNested', | |
190 '[variable-2 # foo]', | |
191 '[variable-3 ## bar]', | |
192 '[keyword ### bar]', | |
193 '[variable-2 #### bar]', | |
194 '[variable-3 ## bar]'); | |
195 | |
196 MT('ulNestedWithOl', | |
197 '[variable-2 * foo]', | |
198 '[variable-3 ## bar]', | |
199 '[keyword *** bar]', | |
200 '[variable-2 #### bar]', | |
201 '[variable-3 ** bar]'); | |
202 | |
203 MT('olNestedWithUl', | |
204 '[variable-2 # foo]', | |
205 '[variable-3 ** bar]', | |
206 '[keyword ### bar]', | |
207 '[variable-2 **** bar]', | |
208 '[variable-3 ## bar]'); | |
209 | |
210 MT('definitionList', | |
211 '[number - coffee := Hot ][number&em _and_][number black]', | |
212 '', | |
213 'Normal text.'); | |
214 | |
215 MT('definitionListSpan', | |
216 '[number - coffee :=]', | |
217 '', | |
218 '[number Hot ][number&em _and_][number black =:]', | |
219 '', | |
220 'Normal text.'); | |
221 | |
222 MT('boo', | |
223 '[number - dog := woof woof]', | |
224 '[number - cat := meow meow]', | |
225 '[number - whale :=]', | |
226 '[number Whale noises.]', | |
227 '', | |
228 '[number Also, ][number&em _splashing_][number . =:]'); | |
229 | |
230 /* | |
231 * Attributes | |
232 */ | |
233 | |
234 MT('divWithAttribute', | |
235 '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]'); | |
236 | |
237 MT('divWithAttributeAnd2emRightPadding', | |
238 '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]'); | |
239 | |
240 MT('divWithClassAndId', | |
241 '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]'); | |
242 | |
243 MT('paragraphWithCss', | |
244 'p[attribute {color:red;}]. foo bar'); | |
245 | |
246 MT('paragraphNestedStyles', | |
247 'p. [strong *foo ][strong&em _bar_][strong *]'); | |
248 | |
249 MT('paragraphWithLanguage', | |
250 'p[attribute [[fr]]]. Parlez-vous français?'); | |
251 | |
252 MT('paragraphLeftAlign', | |
253 'p[attribute <]. Left'); | |
254 | |
255 MT('paragraphRightAlign', | |
256 'p[attribute >]. Right'); | |
257 | |
258 MT('paragraphRightAlign', | |
259 'p[attribute =]. Center'); | |
260 | |
261 MT('paragraphJustified', | |
262 'p[attribute <>]. Justified'); | |
263 | |
264 MT('paragraphWithLeftIndent1em', | |
265 'p[attribute (]. Left'); | |
266 | |
267 MT('paragraphWithRightIndent1em', | |
268 'p[attribute )]. Right'); | |
269 | |
270 MT('paragraphWithLeftIndent2em', | |
271 'p[attribute ((]. Left'); | |
272 | |
273 MT('paragraphWithRightIndent2em', | |
274 'p[attribute ))]. Right'); | |
275 | |
276 MT('paragraphWithLeftIndent3emRightIndent2em', | |
277 'p[attribute ((())]. Right'); | |
278 | |
279 MT('divFormatting', | |
280 '[punctuation div. ][punctuation&strong *foo ]' + | |
281 '[punctuation&strong&em _bar_][punctuation&strong *]'); | |
282 | |
283 MT('phraseModifierAttributes', | |
284 'p[attribute (my-class)]. This is a paragraph that has a class and' + | |
285 ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' + | |
286 ' has an id.'); | |
287 | |
288 MT('linkWithClass', | |
289 '[link "(my-class). This is a link with class":http://redcloth.org]'); | |
290 | |
291 /* | |
292 * Layouts | |
293 */ | |
294 | |
295 MT('paragraphLayouts', | |
296 'p. This is one paragraph.', | |
297 '', | |
298 'p. This is another.'); | |
299 | |
300 MT('div', | |
301 '[punctuation div. foo bar]'); | |
302 | |
303 MT('pre', | |
304 '[operator pre. Text]'); | |
305 | |
306 MT('bq.', | |
307 '[bracket bq. foo bar]', | |
308 '', | |
309 'Normal text.'); | |
310 | |
311 MT('footnote', | |
312 '[variable fn123. foo ][variable&strong *bar*]'); | |
313 | |
314 /* | |
315 * Spanning Layouts | |
316 */ | |
317 | |
318 MT('bq..ThenParagraph', | |
319 '[bracket bq.. foo bar]', | |
320 '', | |
321 '[bracket More quote.]', | |
322 'p. Normal Text'); | |
323 | |
324 MT('bq..ThenH1', | |
325 '[bracket bq.. foo bar]', | |
326 '', | |
327 '[bracket More quote.]', | |
328 '[header&header-1 h1. Header Text]'); | |
329 | |
330 MT('bc..ThenParagraph', | |
331 '[atom bc.. # Some ruby code]', | |
332 '[atom obj = {foo: :bar}]', | |
333 '[atom puts obj]', | |
334 '', | |
335 '[atom obj[[:love]] = "*love*"]', | |
336 '[atom puts obj.love.upcase]', | |
337 '', | |
338 'p. Normal text.'); | |
339 | |
340 MT('fn1..ThenParagraph', | |
341 '[variable fn1.. foo bar]', | |
342 '', | |
343 '[variable More.]', | |
344 'p. Normal Text'); | |
345 | |
346 MT('pre..ThenParagraph', | |
347 '[operator pre.. foo bar]', | |
348 '', | |
349 '[operator More.]', | |
350 'p. Normal Text'); | |
351 | |
352 /* | |
353 * Tables | |
354 */ | |
355 | |
356 MT('table', | |
357 '[variable-3&operator |_. name |_. age|]', | |
358 '[variable-3 |][variable-3&strong *Walter*][variable-3 | 5 |]', | |
359 '[variable-3 |Florence| 6 |]', | |
360 '', | |
361 'p. Normal text.'); | |
362 | |
363 MT('tableWithAttributes', | |
364 '[variable-3&operator |_. name |_. age|]', | |
365 '[variable-3 |][variable-3&attribute /2.][variable-3 Jim |]', | |
366 '[variable-3 |][variable-3&attribute \\2{color: red}.][variable-3 Sam |]'); | |
367 | |
368 /* | |
369 * HTML | |
370 */ | |
371 | |
372 MT('html', | |
373 '[comment <div id="wrapper">]', | |
374 '[comment <section id="introduction">]', | |
375 '', | |
376 '[header&header-1 h1. Welcome]', | |
377 '', | |
378 '[variable-2 * Item one]', | |
379 '[variable-2 * Item two]', | |
380 '', | |
381 '[comment <a href="http://example.com">Example</a>]', | |
382 '', | |
383 '[comment </section>]', | |
384 '[comment </div>]'); | |
385 | |
386 MT('inlineHtml', | |
387 'I can use HTML directly in my [comment <span class="youbetcha">Textile</span>].'); | |
388 | |
389 /* | |
390 * No-Textile | |
391 */ | |
392 | |
393 MT('notextile', | |
394 '[string-2 notextile. *No* formatting]'); | |
395 | |
396 MT('notextileInline', | |
397 'Use [string-2 ==*asterisks*==] for [strong *strong*] text.'); | |
398 | |
399 MT('notextileWithPre', | |
400 '[operator pre. *No* formatting]'); | |
401 | |
402 MT('notextileWithSpanningPre', | |
403 '[operator pre.. *No* formatting]', | |
404 '', | |
405 '[operator *No* formatting]'); | |
406 | |
407 /* Only toggling phrases between non-word chars. */ | |
408 | |
409 MT('phrase-in-word', | |
410 'foo_bar_baz'); | |
411 | |
412 MT('phrase-non-word', | |
413 '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]'); | |
414 | |
415 MT('phrase-lone-dash', | |
416 'foo - bar - baz'); | |
417 })(); |