diff .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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.cms/lib/codemirror/mode/textile/test.js	Fri Oct 11 22:40:23 2024 +0000
@@ -0,0 +1,417 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/5/LICENSE
+
+(function() {
+  var mode = CodeMirror.getMode({tabSize: 4}, 'textile');
+  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
+
+  MT('simpleParagraphs',
+      'Some text.',
+      '',
+      'Some more text.');
+
+  /*
+   * Phrase Modifiers
+   */
+
+  MT('em',
+      'foo [em _bar_]');
+
+  MT('emBoogus',
+      'code_mirror');
+
+  MT('strong',
+      'foo [strong *bar*]');
+
+  MT('strongBogus',
+      '3 * 3 = 9');
+
+  MT('italic',
+      'foo [em __bar__]');
+
+  MT('italicBogus',
+      'code__mirror');
+
+  MT('bold',
+      'foo [strong **bar**]');
+
+  MT('boldBogus',
+      '3 ** 3 = 27');
+
+  MT('simpleLink',
+      '[link "CodeMirror":https://codemirror.net]');
+
+  MT('referenceLink',
+      '[link "CodeMirror":code_mirror]',
+      'Normal Text.',
+      '[link [[code_mirror]]https://codemirror.net]');
+
+  MT('footCite',
+      'foo bar[qualifier [[1]]]');
+
+  MT('footCiteBogus',
+      'foo bar[[1a2]]');
+
+  MT('special-characters',
+          'Registered [tag (r)], ' +
+          'Trademark [tag (tm)], and ' +
+          'Copyright [tag (c)] 2008');
+
+  MT('cite',
+      "A book is [keyword ??The Count of Monte Cristo??] by Dumas.");
+
+  MT('additionAndDeletion',
+      'The news networks declared [negative -Al Gore-] ' +
+        '[positive +George W. Bush+] the winner in Florida.');
+
+  MT('subAndSup',
+      'f(x, n) = log [builtin ~4~] x [builtin ^n^]');
+
+  MT('spanAndCode',
+      'A [quote %span element%] and [atom @code element@]');
+
+  MT('spanBogus',
+      'Percentage 25% is not a span.');
+
+  MT('citeBogus',
+      'Question? is not a citation.');
+
+  MT('codeBogus',
+      'user@example.com');
+
+  MT('subBogus',
+      '~username');
+
+  MT('supBogus',
+      'foo ^ bar');
+
+  MT('deletionBogus',
+      '3 - 3 = 0');
+
+  MT('additionBogus',
+      '3 + 3 = 6');
+
+  MT('image',
+      'An image: [string !http://www.example.com/image.png!]');
+
+  MT('imageWithAltText',
+      'An image: [string !http://www.example.com/image.png (Alt Text)!]');
+
+  MT('imageWithUrl',
+      'An image: [string !http://www.example.com/image.png!:http://www.example.com/]');
+
+  /*
+   * Headers
+   */
+
+  MT('h1',
+      '[header&header-1 h1. foo]');
+
+  MT('h2',
+      '[header&header-2 h2. foo]');
+
+  MT('h3',
+      '[header&header-3 h3. foo]');
+
+  MT('h4',
+      '[header&header-4 h4. foo]');
+
+  MT('h5',
+      '[header&header-5 h5. foo]');
+
+  MT('h6',
+      '[header&header-6 h6. foo]');
+
+  MT('h7Bogus',
+      'h7. foo');
+
+  MT('multipleHeaders',
+      '[header&header-1 h1. Heading 1]',
+      '',
+      'Some text.',
+      '',
+      '[header&header-2 h2. Heading 2]',
+      '',
+      'More text.');
+
+  MT('h1inline',
+      '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1  baz]');
+
+  /*
+   * Lists
+   */
+
+  MT('ul',
+      'foo',
+      'bar',
+      '',
+      '[variable-2 * foo]',
+      '[variable-2 * bar]');
+
+  MT('ulNoBlank',
+      'foo',
+      'bar',
+      '[variable-2 * foo]',
+      '[variable-2 * bar]');
+
+  MT('ol',
+      'foo',
+      'bar',
+      '',
+      '[variable-2 # foo]',
+      '[variable-2 # bar]');
+
+  MT('olNoBlank',
+      'foo',
+      'bar',
+      '[variable-2 # foo]',
+      '[variable-2 # bar]');
+
+  MT('ulFormatting',
+      '[variable-2 * ][variable-2&em _foo_][variable-2  bar]',
+      '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' +
+        '[variable-2&strong *][variable-2  bar]',
+      '[variable-2 * ][variable-2&strong *foo*][variable-2  bar]');
+
+  MT('olFormatting',
+      '[variable-2 # ][variable-2&em _foo_][variable-2  bar]',
+      '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' +
+        '[variable-2&strong *][variable-2  bar]',
+      '[variable-2 # ][variable-2&strong *foo*][variable-2  bar]');
+
+  MT('ulNested',
+      '[variable-2 * foo]',
+      '[variable-3 ** bar]',
+      '[keyword *** bar]',
+      '[variable-2 **** bar]',
+      '[variable-3 ** bar]');
+
+  MT('olNested',
+      '[variable-2 # foo]',
+      '[variable-3 ## bar]',
+      '[keyword ### bar]',
+      '[variable-2 #### bar]',
+      '[variable-3 ## bar]');
+
+  MT('ulNestedWithOl',
+      '[variable-2 * foo]',
+      '[variable-3 ## bar]',
+      '[keyword *** bar]',
+      '[variable-2 #### bar]',
+      '[variable-3 ** bar]');
+
+  MT('olNestedWithUl',
+      '[variable-2 # foo]',
+      '[variable-3 ** bar]',
+      '[keyword ### bar]',
+      '[variable-2 **** bar]',
+      '[variable-3 ## bar]');
+
+  MT('definitionList',
+      '[number - coffee := Hot ][number&em _and_][number  black]',
+      '',
+      'Normal text.');
+
+  MT('definitionListSpan',
+      '[number - coffee :=]',
+      '',
+      '[number Hot ][number&em _and_][number  black =:]',
+      '',
+      'Normal text.');
+
+  MT('boo',
+      '[number - dog := woof woof]',
+      '[number - cat := meow meow]',
+      '[number - whale :=]',
+      '[number Whale noises.]',
+      '',
+      '[number Also, ][number&em _splashing_][number . =:]');
+
+  /*
+   * Attributes
+   */
+
+  MT('divWithAttribute',
+      '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]');
+
+  MT('divWithAttributeAnd2emRightPadding',
+      '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]');
+
+  MT('divWithClassAndId',
+      '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]');
+
+  MT('paragraphWithCss',
+      'p[attribute {color:red;}]. foo bar');
+
+  MT('paragraphNestedStyles',
+      'p. [strong *foo ][strong&em _bar_][strong *]');
+
+  MT('paragraphWithLanguage',
+      'p[attribute [[fr]]]. Parlez-vous français?');
+
+  MT('paragraphLeftAlign',
+      'p[attribute <]. Left');
+
+  MT('paragraphRightAlign',
+      'p[attribute >]. Right');
+
+  MT('paragraphRightAlign',
+      'p[attribute =]. Center');
+
+  MT('paragraphJustified',
+      'p[attribute <>]. Justified');
+
+  MT('paragraphWithLeftIndent1em',
+      'p[attribute (]. Left');
+
+  MT('paragraphWithRightIndent1em',
+      'p[attribute )]. Right');
+
+  MT('paragraphWithLeftIndent2em',
+      'p[attribute ((]. Left');
+
+  MT('paragraphWithRightIndent2em',
+      'p[attribute ))]. Right');
+
+  MT('paragraphWithLeftIndent3emRightIndent2em',
+      'p[attribute ((())]. Right');
+
+  MT('divFormatting',
+      '[punctuation div. ][punctuation&strong *foo ]' +
+        '[punctuation&strong&em _bar_][punctuation&strong *]');
+
+  MT('phraseModifierAttributes',
+      'p[attribute (my-class)]. This is a paragraph that has a class and' +
+      ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' +
+      ' has an id.');
+
+  MT('linkWithClass',
+      '[link "(my-class). This is a link with class":http://redcloth.org]');
+
+  /*
+   * Layouts
+   */
+
+  MT('paragraphLayouts',
+      'p. This is one paragraph.',
+      '',
+      'p. This is another.');
+
+  MT('div',
+      '[punctuation div. foo bar]');
+
+  MT('pre',
+      '[operator pre. Text]');
+
+  MT('bq.',
+      '[bracket bq. foo bar]',
+      '',
+      'Normal text.');
+
+  MT('footnote',
+      '[variable fn123. foo ][variable&strong *bar*]');
+
+  /*
+   * Spanning Layouts
+   */
+
+  MT('bq..ThenParagraph',
+      '[bracket bq.. foo bar]',
+      '',
+      '[bracket More quote.]',
+      'p. Normal Text');
+
+  MT('bq..ThenH1',
+      '[bracket bq.. foo bar]',
+      '',
+      '[bracket More quote.]',
+      '[header&header-1 h1. Header Text]');
+
+  MT('bc..ThenParagraph',
+      '[atom bc.. # Some ruby code]',
+      '[atom obj = {foo: :bar}]',
+      '[atom puts obj]',
+      '',
+      '[atom obj[[:love]] = "*love*"]',
+      '[atom puts obj.love.upcase]',
+      '',
+      'p. Normal text.');
+
+  MT('fn1..ThenParagraph',
+      '[variable fn1.. foo bar]',
+      '',
+      '[variable More.]',
+      'p. Normal Text');
+
+  MT('pre..ThenParagraph',
+      '[operator pre.. foo bar]',
+      '',
+      '[operator More.]',
+      'p. Normal Text');
+
+  /*
+   * Tables
+   */
+
+  MT('table',
+      '[variable-3&operator |_. name |_. age|]',
+      '[variable-3 |][variable-3&strong *Walter*][variable-3 |   5  |]',
+      '[variable-3 |Florence|   6  |]',
+      '',
+      'p. Normal text.');
+
+  MT('tableWithAttributes',
+      '[variable-3&operator |_. name |_. age|]',
+      '[variable-3 |][variable-3&attribute /2.][variable-3  Jim |]',
+      '[variable-3 |][variable-3&attribute \\2{color: red}.][variable-3  Sam |]');
+
+  /*
+   * HTML
+   */
+
+  MT('html',
+      '[comment <div id="wrapper">]',
+      '[comment <section id="introduction">]',
+      '',
+      '[header&header-1 h1. Welcome]',
+      '',
+      '[variable-2 * Item one]',
+      '[variable-2 * Item two]',
+      '',
+      '[comment <a href="http://example.com">Example</a>]',
+      '',
+      '[comment </section>]',
+      '[comment </div>]');
+
+  MT('inlineHtml',
+      'I can use HTML directly in my [comment <span class="youbetcha">Textile</span>].');
+
+  /*
+   * No-Textile
+   */
+
+  MT('notextile',
+    '[string-2 notextile. *No* formatting]');
+
+  MT('notextileInline',
+      'Use [string-2 ==*asterisks*==] for [strong *strong*] text.');
+
+  MT('notextileWithPre',
+      '[operator pre. *No* formatting]');
+
+  MT('notextileWithSpanningPre',
+      '[operator pre.. *No* formatting]',
+      '',
+      '[operator *No* formatting]');
+
+  /* Only toggling phrases between non-word chars. */
+
+  MT('phrase-in-word',
+     'foo_bar_baz');
+
+  MT('phrase-non-word',
+     '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]');
+
+  MT('phrase-lone-dash',
+     'foo - bar - baz');
+})();