all repos — NoPaste @ 3e3c433f026c49e04d0efa0f0f39fc688ed32bb1

Resurrected - The PussTheCat.org fork of NoPaste

scripts/CodeMirror/mode/textile/test.js (view raw)

  1// CodeMirror, copyright (c) by Marijn Haverbeke and others
  2// Distributed under an MIT license: https://codemirror.net/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})();