mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
417 lines
9.2 KiB
417 lines
9.2 KiB
// CodeMirror, copyright (c) by Marijn Haverbeke and others |
|
// Distributed under an MIT license: http://codemirror.net/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":http://codemirror.net]'); |
|
|
|
MT('referenceLink', |
|
'[link "CodeMirror":code_mirror]', |
|
'Normal Text.', |
|
'[link [[code_mirror]]http://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'); |
|
})();
|
|
|