annotate .cms/lib/codemirror/mode/markdown/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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 (function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 var config = {tabSize: 4, indentUnit: 2}
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 var mode = CodeMirror.getMode(config, "markdown");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 var modeHighlightFormatting = CodeMirror.getMode(config, {name: "markdown", highlightFormatting: true});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 var modeMT_noXml = CodeMirror.getMode(config, {name: "markdown", xml: false});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 function MT_noXml(name) { test.mode(name, modeMT_noXml, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 var modeMT_noFencedHighlight = CodeMirror.getMode(config, {name: "markdown", fencedCodeBlockHighlighting: false});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 function MT_noFencedHighlight(name) { test.mode(name, modeMT_noFencedHighlight, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 var modeAtxNoSpace = CodeMirror.getMode(config, {name: "markdown", allowAtxHeaderWithoutSpace: true});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 function AtxNoSpaceTest(name) { test.mode(name, modeAtxNoSpace, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 var modeOverrideClasses = CodeMirror.getMode(config, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 name: "markdown",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 strikethrough: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 emoji: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 tokenTypeOverrides: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 "header" : "override-header",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 "code" : "override-code",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 "quote" : "override-quote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 "list1" : "override-list1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 "list2" : "override-list2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 "list3" : "override-list3",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 "hr" : "override-hr",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 "image" : "override-image",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 "imageAltText": "override-image-alt-text",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 "imageMarker": "override-image-marker",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 "linkInline" : "override-link-inline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 "linkEmail" : "override-link-email",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 "linkText" : "override-link-text",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 "linkHref" : "override-link-href",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 "em" : "override-em",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 "strong" : "override-strong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 "strikethrough" : "override-strikethrough",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 "emoji" : "override-emoji"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 }});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 function TokenTypeOverrideTest(name) { test.mode(name, modeOverrideClasses, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 var modeFormattingOverride = CodeMirror.getMode(config, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 name: "markdown",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 highlightFormatting: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 tokenTypeOverrides: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 "formatting" : "override-formatting"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 }});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 function FormatTokenTypeOverrideTest(name) { test.mode(name, modeFormattingOverride, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 var modeET = CodeMirror.getMode(config, {name: "markdown", emoji: true});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 function ET(name) { test.mode(name, modeET, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 FT("formatting_emAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 "[em&formatting&formatting-em *][em foo][em&formatting&formatting-em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 FT("formatting_emUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 "[em&formatting&formatting-em _][em foo][em&formatting&formatting-em _]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 FT("formatting_strongAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 "[strong&formatting&formatting-strong **][strong foo][strong&formatting&formatting-strong **]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 FT("formatting_strongUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 "[strong&formatting&formatting-strong __][strong foo][strong&formatting&formatting-strong __]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 FT("formatting_codeBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 "[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 FT("formatting_doubleBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 "[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 FT("formatting_atxHeader",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 "[header&header-1&formatting&formatting-header&formatting-header-1 # ][header&header-1 foo # bar ][header&header-1&formatting&formatting-header&formatting-header-1 #]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 FT("formatting_setextHeader",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 "[header&header-1 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 "[header&header-1&formatting&formatting-header&formatting-header-1 =]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 FT("formatting_blockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 "[quote&quote-1&formatting&formatting-quote&formatting-quote-1 > ][quote&quote-1 foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 FT("formatting_list",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 "[variable-2&formatting&formatting-list&formatting-list-ul - ][variable-2 foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 FT("formatting_list",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 "[variable-2&formatting&formatting-list&formatting-list-ol 1. ][variable-2 foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 FT("formatting_link",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 "[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string&url (][string&url http://example.com/][string&formatting&formatting-link-string&url )]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 FT("formatting_linkReference",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 "[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string&url [][string&url bar][string&formatting&formatting-link-string&url ]]]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 "[link&formatting&formatting-link [][link bar][link&formatting&formatting-link ]]:] [string&url http://example.com/]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 FT("formatting_linkWeb",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 "[link&formatting&formatting-link <][link http://example.com/][link&formatting&formatting-link >]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 FT("formatting_linkEmail",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 "[link&formatting&formatting-link <][link user@example.com][link&formatting&formatting-link >]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 FT("formatting_escape",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 "[formatting-escape \\*]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 FT("formatting_image",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 "[formatting&formatting-image&image&image-marker !][formatting&formatting-image&image&image-alt-text&link [[][image&image-alt-text&link alt text][formatting&formatting-image&image&image-alt-text&link ]]][formatting&formatting-link-string&string&url (][url&string http://link.to/image.jpg][formatting&formatting-link-string&string&url )]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 FT("codeBlock",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 "[comment&formatting&formatting-code-block ```css]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 "[tag foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 "[comment&formatting&formatting-code-block ```]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 MT("plainText",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 "foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 // Don't style single trailing space
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 MT("trailingSpace1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 "foo ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 // Two or more trailing spaces should be styled with line break character
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 MT("trailingSpace2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 "foo[trailing-space-a ][trailing-space-new-line ]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 MT("trailingSpace3",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 "foo[trailing-space-a ][trailing-space-b ][trailing-space-new-line ]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 MT("trailingSpace4",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 "foo[trailing-space-a ][trailing-space-b ][trailing-space-a ][trailing-space-new-line ]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 // Code blocks using 4 spaces (regardless of CodeMirror.tabSize value)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 MT("codeBlocksUsing4Spaces",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 " [comment foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 // Code blocks using 4 spaces with internal indentation
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 MT("codeBlocksUsing4SpacesIndentation",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 " [comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 " [comment hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 " [comment world]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 " [comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 // Code blocks should end even after extra indented lines
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 MT("codeBlocksWithTrailingIndentedLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 " [comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 " [comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 " [comment baz]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 " ",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 "hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 // Code blocks using 1 tab (regardless of CodeMirror.indentWithTabs value)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 MT("codeBlocksUsing1Tab",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 "\t[comment foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 // No code blocks directly after paragraph
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 // http://spec.commonmark.org/0.19/#example-65
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 MT("noCodeBlocksAfterParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 "Foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 " Bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 MT("codeBlocksAfterATX",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 "[header&header-1 # foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 " [comment code]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 MT("codeBlocksAfterSetext",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 "[header&header-2 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 "[header&header-2 ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 " [comment code]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 MT("codeBlocksAfterFencedCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169 " [comment code]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 // Inline code using backticks
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 MT("inlineCodeUsingBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 "foo [comment `bar`]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 // Block code using single backtick (shouldn't work)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176 MT("blockCodeSingleBacktick",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 "[comment `]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 "[comment `]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 // Unclosed backticks
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 // Instead of simply marking as CODE, it would be nice to have an
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 // incomplete flag for CODE, that is styled slightly different.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 MT("unclosedBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 "foo [comment `bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 // Per documentation: "To include a literal backtick character within a
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 // code span, you can use multiple backticks as the opening and closing
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 // delimiters"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 MT("doubleBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 "[comment ``foo ` bar``]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193 // Tests based on Dingus
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 // http://daringfireball.net/projects/markdown/dingus
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 //
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 // Multiple backticks within an inline code block
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197 MT("consecutiveBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 "[comment `foo```bar`]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 // Multiple backticks within an inline code block with a second code block
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 MT("consecutiveBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 "[comment `foo```bar`] hello [comment `world`]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 // Unclosed with several different groups of backticks
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 MT("unclosedBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 "[comment ``foo ``` bar` hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 // Closed with several different groups of backticks
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 MT("closedBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 "[comment ``foo ``` bar` hello``] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212 // info string cannot contain backtick, thus should result in inline code
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 MT("closingFencedMarksOnSameLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 "[comment ``` code ```] foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216 // atx headers
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 // http://daringfireball.net/projects/markdown/syntax#header
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 MT("atxH1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 "[header&header-1 # foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 MT("atxH2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 "[header&header-2 ## foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 MT("atxH3",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226 "[header&header-3 ### foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 MT("atxH4",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229 "[header&header-4 #### foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231 MT("atxH5",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 "[header&header-5 ##### foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234 MT("atxH6",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 "[header&header-6 ###### foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 // http://spec.commonmark.org/0.19/#example-24
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238 MT("noAtxH7",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 "####### foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241 // http://spec.commonmark.org/0.19/#example-25
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 MT("noAtxH1WithoutSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 "#5 bolt");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245 // CommonMark requires a space after # but most parsers don't
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
246 AtxNoSpaceTest("atxNoSpaceAllowed_H1NoSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
247 "[header&header-1 #foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
248
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
249 AtxNoSpaceTest("atxNoSpaceAllowed_H4NoSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
250 "[header&header-4 ####foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
251
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
252 AtxNoSpaceTest("atxNoSpaceAllowed_H1Space",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
253 "[header&header-1 # foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
254
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
255 // Inline styles should be parsed inside headers
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
256 MT("atxH1inline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
257 "[header&header-1 # foo ][header&header-1&em *bar*]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
258
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
259 MT("atxIndentedTooMuch",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
260 "[header&header-1 # foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
261 " [comment # bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
262
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
263 // disable atx inside blockquote until we implement proper blockquote inner mode
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
264 // TODO: fix to be CommonMark-compliant
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
265 MT("atxNestedInsideBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
266 "[quote&quote-1 > # foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
267
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
268 MT("atxAfterBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
269 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
270 "[header&header-1 # bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
271
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
272 // Setext headers - H1, H2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
273 // Per documentation, "Any number of underlining =’s or -’s will work."
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
274 // http://daringfireball.net/projects/markdown/syntax#header
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
275 // Ideally, the text would be marked as `header` as well, but this is
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
276 // not really feasible at the moment. So, instead, we're testing against
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
277 // what works today, to avoid any regressions.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
278 //
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
279 // Check if single underlining = works
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
280 MT("setextH1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
281 "[header&header-1 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
282 "[header&header-1 =]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
283
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
284 // Check if 3+ ='s work
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
285 MT("setextH1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
286 "[header&header-1 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
287 "[header&header-1 ===]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
288
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
289 // Check if single underlining - should not be interpreted
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
290 // as it might lead to an empty list:
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
291 // https://spec.commonmark.org/0.28/#setext-heading-underline
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
292 MT("setextH2Single",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
293 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
294 "-");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
295
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
296 // Check if 3+ -'s work
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
297 MT("setextH2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
298 "[header&header-2 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
299 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
300
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
301 // http://spec.commonmark.org/0.19/#example-45
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
302 MT("setextH2AllowSpaces",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
303 "[header&header-2 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
304 " [header&header-2 ---- ]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
305
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
306 // http://spec.commonmark.org/0.19/#example-44
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
307 MT("noSetextAfterIndentedCodeBlock",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
308 " [comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
309 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
310
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
311 MT("setextAfterFencedCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
312 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
313 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
314 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
315 "[header&header-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
316 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
317
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
318 MT("setextAfterATX",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
319 "[header&header-1 # foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
320 "[header&header-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
321 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
322
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
323 // http://spec.commonmark.org/0.19/#example-51
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
324 MT("noSetextAfterQuote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
325 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
326 "[hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
327 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
328 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
329 "[quote&quote-1 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
330 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
331
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
332 MT("noSetextAfterList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
333 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
334 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
335
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
336 MT("noSetextAfterList_listContinuation",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
337 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
338 "bar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
339 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
340
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
341 MT("setextAfterList_afterIndentedCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
342 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
343 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
344 " [comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
345 "[header&header-2 baz]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
346 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
347
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
348 MT("setextAfterList_afterFencedCodeBlocks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
349 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
350 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
351 " [comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
352 " [comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
353 " [comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
354 "[header&header-2 baz]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
355 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
356
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
357 MT("setextAfterList_afterHeader",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
358 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
359 " [variable-2&header&header-1 # bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
360 "[header&header-2 baz]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
361 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
362
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
363 MT("setextAfterList_afterHr",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
364 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
365 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
366 " [hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
367 "[header&header-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
368 "[header&header-2 ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
369
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
370 MT("setext_nestedInlineMarkup",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
371 "[header&header-1 foo ][em&header&header-1 *bar*]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
372 "[header&header-1 =]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
373
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
374 MT("setext_linkDef",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
375 "[link [[aaa]]:] [string&url http://google.com 'title']",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
376 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
377
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
378 // currently, looks max one line ahead, thus won't catch valid CommonMark
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
379 // markup
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
380 MT("setext_oneLineLookahead",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
381 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
382 "[header&header-1 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
383 "[header&header-1 =]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
384
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
385 // ensure we regard space after a single dash as a list
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
386 MT("setext_emptyList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
387 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
388 "[variable-2 - ]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
389 "foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
390
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
391 // Single-line blockquote with trailing space
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
392 MT("blockquoteSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
393 "[quote&quote-1 > foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
394
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
395 // Single-line blockquote
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
396 MT("blockquoteNoSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
397 "[quote&quote-1 >foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
398
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
399 // No blank line before blockquote
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
400 MT("blockquoteNoBlankLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
401 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
402 "[quote&quote-1 > bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
403
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
404 MT("blockquoteNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
405 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
406 "[quote&quote-1 >][quote&quote-2 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
407 "[quote&quote-1 >][quote&quote-2 >][quote&quote-3 > foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
408
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
409 // ensure quote-level is inferred correctly even if indented
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
410 MT("blockquoteNestedIndented",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
411 " [quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
412 " [quote&quote-1 >][quote&quote-2 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
413 " [quote&quote-1 >][quote&quote-2 >][quote&quote-3 > foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
414
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
415 // ensure quote-level is inferred correctly even if indented
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
416 MT("blockquoteIndentedTooMuch",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
417 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
418 " > bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
419
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
420 // Single-line blockquote followed by normal paragraph
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
421 MT("blockquoteThenParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
422 "[quote&quote-1 >foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
423 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
424 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
425
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
426 // Multi-line blockquote (lazy mode)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
427 MT("multiBlockquoteLazy",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
428 "[quote&quote-1 >foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
429 "[quote&quote-1 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
430
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
431 // Multi-line blockquote followed by normal paragraph (lazy mode)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
432 MT("multiBlockquoteLazyThenParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
433 "[quote&quote-1 >foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
434 "[quote&quote-1 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
435 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
436 "hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
437
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
438 // Multi-line blockquote (non-lazy mode)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
439 MT("multiBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
440 "[quote&quote-1 >foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
441 "[quote&quote-1 >bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
442
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
443 // Multi-line blockquote followed by normal paragraph (non-lazy mode)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
444 MT("multiBlockquoteThenParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
445 "[quote&quote-1 >foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
446 "[quote&quote-1 >bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
447 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
448 "hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
449
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
450 // disallow lists inside blockquote for now because it causes problems outside blockquote
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
451 // TODO: fix to be CommonMark-compliant
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
452 MT("listNestedInBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
453 "[quote&quote-1 > - foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
454
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
455 // disallow fenced blocks inside blockquote because it causes problems outside blockquote
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
456 // TODO: fix to be CommonMark-compliant
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
457 MT("fencedBlockNestedInBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
458 "[quote&quote-1 > ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
459 "[quote&quote-1 > code]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
460 "[quote&quote-1 > ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
461 // ensure we still allow inline code
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
462 "[quote&quote-1 > ][quote&quote-1&comment `code`]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
463
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
464 // Header with leading space after continued blockquote (#3287, negative indentation)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
465 MT("headerAfterContinuedBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
466 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
467 "[quote&quote-1 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
468 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
469 " [header&header-1 # hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
470
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
471 // Check list types
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
472
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
473 MT("listAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
474 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
475 "bar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
476 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
477 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
478 "[variable-2 * bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
479
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
480 MT("listPlus",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
481 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
482 "bar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
483 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
484 "[variable-2 + foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
485 "[variable-2 + bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
486
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
487 MT("listDash",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
488 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
489 "bar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
490 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
491 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
492 "[variable-2 - bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
493
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
494 MT("listNumber",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
495 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
496 "bar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
497 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
498 "[variable-2 1. foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
499 "[variable-2 2. bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
500
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
501 MT("listFromParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
502 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
503 "[variable-2 1. bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
504 "[variable-2 2. hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
505
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
506 // List after hr
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
507 MT("listAfterHr",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
508 "[hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
509 "[variable-2 - bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
510
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
511 // List after header
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
512 MT("listAfterHeader",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
513 "[header&header-1 # foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
514 "[variable-2 - bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
515
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
516 // hr after list
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
517 MT("hrAfterList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
518 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
519 "[hr -----]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
520
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
521 MT("hrAfterFencedCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
522 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
523 "[comment code]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
524 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
525 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
526
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
527 // allow hr inside lists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
528 // (require prev line to be empty or hr, TODO: non-CommonMark-compliant)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
529 MT("hrInsideList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
530 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
531 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
532 " [hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
533 " [hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
534 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
535 " [comment ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
536
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
537 MT("consecutiveHr",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
538 "[hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
539 "[hr ---]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
540 "[hr ---]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
541
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
542 // Formatting in lists (*)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
543 MT("listAsteriskFormatting",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
544 "[variable-2 * ][variable-2&em *foo*][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
545 "[variable-2 * ][variable-2&strong **foo**][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
546 "[variable-2 * ][variable-2&em&strong ***foo***][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
547 "[variable-2 * ][variable-2&comment `foo`][variable-2 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
548
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
549 // Formatting in lists (+)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
550 MT("listPlusFormatting",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
551 "[variable-2 + ][variable-2&em *foo*][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
552 "[variable-2 + ][variable-2&strong **foo**][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
553 "[variable-2 + ][variable-2&em&strong ***foo***][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
554 "[variable-2 + ][variable-2&comment `foo`][variable-2 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
555
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
556 // Formatting in lists (-)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
557 MT("listDashFormatting",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
558 "[variable-2 - ][variable-2&em *foo*][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
559 "[variable-2 - ][variable-2&strong **foo**][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
560 "[variable-2 - ][variable-2&em&strong ***foo***][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
561 "[variable-2 - ][variable-2&comment `foo`][variable-2 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
562
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
563 // Formatting in lists (1.)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
564 MT("listNumberFormatting",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
565 "[variable-2 1. ][variable-2&em *foo*][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
566 "[variable-2 2. ][variable-2&strong **foo**][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
567 "[variable-2 3. ][variable-2&em&strong ***foo***][variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
568 "[variable-2 4. ][variable-2&comment `foo`][variable-2 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
569
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
570 // Paragraph lists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
571 MT("listParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
572 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
573 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
574 "[variable-2 * bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
575
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
576 // Multi-paragraph lists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
577 //
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
578 // 4 spaces
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
579 MT("listMultiParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
580 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
581 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
582 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
583 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
584 " [variable-2 hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
585
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
586 // 4 spaces, extra blank lines (should still be list, per Dingus)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
587 MT("listMultiParagraphExtra",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
588 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
589 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
590 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
591 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
592 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
593 " [variable-2 hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
594
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
595 // 4 spaces, plus 1 space (should still be list, per Dingus)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
596 MT("listMultiParagraphExtraSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
597 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
598 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
599 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
600 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
601 " [variable-2 hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
602 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
603 " [variable-2 world]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
604
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
605 // 1 tab
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
606 MT("listTab",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
607 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
608 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
609 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
610 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
611 "\t[variable-2 hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
612
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
613 // No indent
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
614 MT("listNoIndent",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
615 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
616 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
617 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
618 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
619 "hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
620
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
621 MT("listCommonMarkIndentationCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
622 "[variable-2 * Code blocks also affect]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
623 " [variable-3 * The next level starts where the contents start.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
624 " [variable-3 * Anything less than that will keep the item on the same level.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
625 " [variable-3 * Each list item can indent the first level further and further.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
626 " [variable-3 * For the most part, this makes sense while writing a list.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
627 " [keyword * This means two items with same indentation can be different levels.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
628 " [keyword * Each level has an indent requirement that can change between items.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
629 " [keyword * A list item that meets this will be part of the next level.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
630 " [variable-3 * Otherwise, it will be part of the level where it does meet this.]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
631 " [variable-2 * World]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
632
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
633 // should handle nested and un-nested lists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
634 MT("listCommonMark_MixedIndents",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
635 "[variable-2 * list1]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
636 " [variable-2 list1]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
637 " [variable-2&header&header-1 # heading still part of list1]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
638 " [variable-2 text after heading still part of list1]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
639 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
640 " [comment indented codeblock]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
641 " [variable-2 list1 after code block]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
642 " [variable-3 * list2]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
643 // amount of spaces on empty lines between lists doesn't matter
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
644 " ",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
645 // extra empty lines irrelevant
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
646 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
647 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
648 " [variable-3 indented text part of list2]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
649 " [keyword * list3]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
650 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
651 " [variable-3 text at level of list2]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
652 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
653 " [variable-2 de-indented text part of list1 again]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
654 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
655 " [variable-2&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
656 " [comment code]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
657 " [variable-2&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
658 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
659 " [variable-2 text after fenced code]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
660
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
661 // should correctly parse numbered list content indentation
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
662 MT("listCommonMark_NumberedListIndent",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
663 "[variable-2 1000. list with base indent of 6]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
664 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
665 " [variable-2 text must be indented 6 spaces at minimum]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
666 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
667 " [variable-2 9-spaces indented text still part of list]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
668 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
669 " [comment indented codeblock starts at 10 spaces]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
670 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
671 " [comment text indented by 5 spaces no longer belong to list]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
672
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
673 // should consider tab as 4 spaces
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
674 MT("listCommonMark_TabIndented",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
675 "[variable-2 * list]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
676 "\t[variable-3 * list2]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
677 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
678 "\t\t[variable-3 part of list2]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
679
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
680 MT("listAfterBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
681 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
682 "[variable-2 - bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
683
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
684 // shouldn't create sublist if it's indented more than allowed
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
685 MT("nestedListIndentedTooMuch",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
686 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
687 " [variable-2 - bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
688
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
689 MT("listIndentedTooMuchAfterParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
690 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
691 " - bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
692
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
693 // Blockquote
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
694 MT("blockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
695 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
696 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
697 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
698 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
699 " [variable-2&quote&quote-1 > hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
700
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
701 // Code block
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
702 MT("blockquoteCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
703 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
704 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
705 "[variable-2 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
706 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
707 " [comment > hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
708 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
709 " [variable-2 world]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
710
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
711 // Code block followed by text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
712 MT("blockquoteCodeText",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
713 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
714 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
715 " [variable-2 bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
716 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
717 " [comment hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
718 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
719 " [variable-2 world]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
720
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
721 // Nested list
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
722
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
723 MT("listAsteriskNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
724 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
725 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
726 " [variable-3 * bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
727
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
728 MT("listPlusNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
729 "[variable-2 + foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
730 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
731 " [variable-3 + bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
732
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
733 MT("listDashNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
734 "[variable-2 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
735 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
736 " [variable-3 - bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
737
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
738 MT("listNumberNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
739 "[variable-2 1. foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
740 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
741 " [variable-3 2. bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
742
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
743 MT("listMixed",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
744 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
745 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
746 " [variable-3 + bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
747 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
748 " [keyword - hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
749 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
750 " [variable-2 1. world]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
751
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
752 MT("listBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
753 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
754 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
755 " [variable-3 + bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
756 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
757 " [quote&quote-1&variable-3 > hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
758
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
759 MT("listCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
760 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
761 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
762 " [variable-3 + bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
763 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
764 " [comment hello]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
765
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
766 // Code with internal indentation
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
767 MT("listCodeIndentation",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
768 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
769 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
770 " [comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
771 " [comment hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
772 " [comment world]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
773 " [comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
774 " [variable-2 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
775
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
776 // List nesting edge cases
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
777 MT("listNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
778 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
779 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
780 " [variable-3 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
781 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
782 " [variable-3 hello]"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
783 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
784 MT("listNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
785 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
786 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
787 " [variable-3 * bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
788 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
789 " [keyword * foo]"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
790 );
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
791
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
792 // Code followed by text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
793 MT("listCodeText",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
794 "[variable-2 * foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
795 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
796 " [comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
797 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
798 "hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
799
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
800 // Following tests directly from official Markdown documentation
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
801 // http://daringfireball.net/projects/markdown/syntax#hr
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
802
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
803 MT("hrSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
804 "[hr * * *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
805
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
806 MT("hr",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
807 "[hr ***]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
808
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
809 MT("hrLong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
810 "[hr *****]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
811
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
812 MT("hrSpaceDash",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
813 "[hr - - -]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
814
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
815 MT("hrDashLong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
816 "[hr ---------------------------------------]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
817
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
818 //Images
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
819 MT("Images",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
820 "[image&image-marker !][image&image-alt-text&link [[alt text]]][string&url (http://link.to/image.jpg)]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
821
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
822 //Images with highlight alt text
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
823 MT("imageEm",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
824 "[image&image-marker !][image&image-alt-text&link [[][image-alt-text&em&image&link *alt text*][image&image-alt-text&link ]]][string&url (http://link.to/image.jpg)]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
825
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
826 MT("imageStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
827 "[image&image-marker !][image&image-alt-text&link [[][image-alt-text&strong&image&link **alt text**][image&image-alt-text&link ]]][string&url (http://link.to/image.jpg)]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
828
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
829 MT("imageEmStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
830 "[image&image-marker !][image&image-alt-text&link [[][image&image-alt-text&em&strong&link ***alt text***][image&image-alt-text&link ]]][string&url (http://link.to/image.jpg)]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
831
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
832 // Inline link with title
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
833 MT("linkTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
834 "[link [[foo]]][string&url (http://example.com/ \"bar\")] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
835
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
836 // Inline link without title
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
837 MT("linkNoTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
838 "[link [[foo]]][string&url (http://example.com/)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
839
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
840 // Inline link with image
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
841 MT("linkImage",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
842 "[link [[][link&image&image-marker !][link&image&image-alt-text&link [[alt text]]][string&url (http://link.to/image.jpg)][link ]]][string&url (http://example.com/)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
843
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
844 // Inline link with Em
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
845 MT("linkEm",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
846 "[link [[][link&em *foo*][link ]]][string&url (http://example.com/)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
847
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
848 // Inline link with Strong
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
849 MT("linkStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
850 "[link [[][link&strong **foo**][link ]]][string&url (http://example.com/)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
851
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
852 // Inline link with EmStrong
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
853 MT("linkEmStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
854 "[link [[][link&em&strong ***foo***][link ]]][string&url (http://example.com/)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
855
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
856 MT("multilineLink",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
857 "[link [[foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
858 "[link bar]]][string&url (https://foo#_a)]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
859 "should not be italics")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
860
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
861 // Image with title
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
862 MT("imageTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
863 "[image&image-marker !][image&image-alt-text&link [[alt text]]][string&url (http://example.com/ \"bar\")] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
864
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
865 // Image without title
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
866 MT("imageNoTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
867 "[image&image-marker !][image&image-alt-text&link [[alt text]]][string&url (http://example.com/)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
868
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
869 // Image with asterisks
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
870 MT("imageAsterisks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
871 "[image&image-marker !][image&image-alt-text&link [[ ][image&image-alt-text&em&link *alt text*][image&image-alt-text&link ]]][string&url (http://link.to/image.jpg)] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
872
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
873 // Not a link. Should be normal text due to square brackets being used
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
874 // regularly in text, especially in quoted material, and no space is allowed
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
875 // between square brackets and parentheses (per Dingus).
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
876 MT("notALink",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
877 "[link [[foo]]] (bar)");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
878
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
879 // Reference-style links
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
880 MT("linkReference",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
881 "[link [[foo]]][string&url [[bar]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
882
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
883 // Reference-style links with Em
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
884 MT("linkReferenceEm",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
885 "[link [[][link&em *foo*][link ]]][string&url [[bar]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
886
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
887 // Reference-style links with Strong
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
888 MT("linkReferenceStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
889 "[link [[][link&strong **foo**][link ]]][string&url [[bar]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
890
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
891 // Reference-style links with EmStrong
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
892 MT("linkReferenceEmStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
893 "[link [[][link&em&strong ***foo***][link ]]][string&url [[bar]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
894
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
895 // Reference-style links with optional space separator (per documentation)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
896 // "You can optionally use a space to separate the sets of brackets"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
897 MT("linkReferenceSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
898 "[link [[foo]]] [string&url [[bar]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
899
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
900 // Should only allow a single space ("...use *a* space...")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
901 MT("linkReferenceDoubleSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
902 "[link [[foo]]] [link [[bar]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
903
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
904 // Reference-style links with implicit link name
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
905 MT("linkImplicit",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
906 "[link [[foo]]][string&url [[]]] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
907
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
908 // @todo It would be nice if, at some point, the document was actually
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
909 // checked to see if the referenced link exists
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
910
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
911 // Link label, for reference-style links (taken from documentation)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
912
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
913 MT("labelNoTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
914 "[link [[foo]]:] [string&url http://example.com/]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
915
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
916 MT("labelIndented",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
917 " [link [[foo]]:] [string&url http://example.com/]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
918
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
919 MT("labelSpaceTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
920 "[link [[foo bar]]:] [string&url http://example.com/ \"hello\"]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
921
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
922 MT("labelDoubleTitle",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
923 "[link [[foo bar]]:] [string&url http://example.com/ \"hello\"] \"world\"");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
924
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
925 MT("labelTitleDoubleQuotes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
926 "[link [[foo]]:] [string&url http://example.com/ \"bar\"]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
927
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
928 MT("labelTitleSingleQuotes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
929 "[link [[foo]]:] [string&url http://example.com/ 'bar']");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
930
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
931 MT("labelTitleParentheses",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
932 "[link [[foo]]:] [string&url http://example.com/ (bar)]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
933
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
934 MT("labelTitleInvalid",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
935 "[link [[foo]]:] [string&url http://example.com/] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
936
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
937 MT("labelLinkAngleBrackets",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
938 "[link [[foo]]:] [string&url <http://example.com/> \"bar\"]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
939
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
940 MT("labelTitleNextDoubleQuotes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
941 "[link [[foo]]:] [string&url http://example.com/]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
942 "[string \"bar\"] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
943
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
944 MT("labelTitleNextSingleQuotes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
945 "[link [[foo]]:] [string&url http://example.com/]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
946 "[string 'bar'] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
947
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
948 MT("labelTitleNextParentheses",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
949 "[link [[foo]]:] [string&url http://example.com/]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
950 "[string (bar)] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
951
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
952 MT("labelTitleNextMixed",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
953 "[link [[foo]]:] [string&url http://example.com/]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
954 "(bar\" hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
955
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
956 MT("labelEscape",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
957 "[link [[foo \\]] ]]:] [string&url http://example.com/]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
958
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
959 MT("labelEscapeColon",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
960 "[link [[foo \\]]: bar]]:] [string&url http://example.com/]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
961
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
962 MT("labelEscapeEnd",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
963 "\\[[foo\\]]: http://example.com/");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
964
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
965 MT("linkWeb",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
966 "[link <http://example.com/>] foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
967
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
968 MT("linkWebDouble",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
969 "[link <http://example.com/>] foo [link <http://example.com/>]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
970
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
971 MT("linkEmail",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
972 "[link <user@example.com>] foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
973
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
974 MT("linkEmailDouble",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
975 "[link <user@example.com>] foo [link <user@example.com>]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
976
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
977 MT("emAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
978 "[em *foo*] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
979
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
980 MT("emUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
981 "[em _foo_] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
982
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
983 MT("emInWordAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
984 "foo[em *bar*]hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
985
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
986 MT("emInWordUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
987 "foo_bar_hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
988
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
989 // Per documentation: "...surround an * or _ with spaces, it’ll be
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
990 // treated as a literal asterisk or underscore."
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
991
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
992 MT("emEscapedBySpaceIn",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
993 "foo [em _bar _ hello_] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
994
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
995 MT("emEscapedBySpaceOut",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
996 "foo _ bar [em _hello_] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
997
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
998 MT("emEscapedByNewline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
999 "foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1000 "_ bar [em _hello_] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1001
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1002 // Unclosed emphasis characters
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1003 // Instead of simply marking as EM / STRONG, it would be nice to have an
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1004 // incomplete flag for EM and STRONG, that is styled slightly different.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1005 MT("emIncompleteAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1006 "foo [em *bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1007
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1008 MT("emIncompleteUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1009 "foo [em _bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1010
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1011 MT("strongAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1012 "[strong **foo**] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1013
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1014 MT("strongUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1015 "[strong __foo__] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1016
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1017 MT("emStrongAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1018 "[em *foo][em&strong **bar*][strong hello**] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1019
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1020 MT("emStrongUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1021 "[em _foo ][em&strong __bar_][strong hello__] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1022
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1023 // "...same character must be used to open and close an emphasis span.""
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1024 MT("emStrongMixed",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1025 "[em _foo][em&strong **bar*hello__ world]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1026
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1027 MT("emStrongMixed",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1028 "[em *foo ][em&strong __bar_hello** world]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1029
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1030 MT("linkWithNestedParens",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1031 "[link [[foo]]][string&url (bar(baz))]")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1032
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1033 // These characters should be escaped:
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1034 // \ backslash
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1035 // ` backtick
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1036 // * asterisk
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1037 // _ underscore
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1038 // {} curly braces
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1039 // [] square brackets
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1040 // () parentheses
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1041 // # hash mark
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1042 // + plus sign
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1043 // - minus sign (hyphen)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1044 // . dot
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1045 // ! exclamation mark
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1046
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1047 MT("escapeBacktick",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1048 "foo \\`bar\\`");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1049
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1050 MT("doubleEscapeBacktick",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1051 "foo \\\\[comment `bar\\\\`]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1052
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1053 MT("escapeAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1054 "foo \\*bar\\*");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1055
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1056 MT("doubleEscapeAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1057 "foo \\\\[em *bar\\\\*]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1058
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1059 MT("escapeUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1060 "foo \\_bar\\_");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1061
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1062 MT("doubleEscapeUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1063 "foo \\\\[em _bar\\\\_]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1064
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1065 MT("escapeHash",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1066 "\\# foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1067
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1068 MT("doubleEscapeHash",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1069 "\\\\# foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1070
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1071 MT("escapeNewline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1072 "\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1073 "[em *foo*]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1074
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1075 // Class override tests
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1076 TokenTypeOverrideTest("overrideHeader1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1077 "[override-header&override-header-1 # Foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1078
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1079 TokenTypeOverrideTest("overrideHeader2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1080 "[override-header&override-header-2 ## Foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1081
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1082 TokenTypeOverrideTest("overrideHeader3",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1083 "[override-header&override-header-3 ### Foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1084
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1085 TokenTypeOverrideTest("overrideHeader4",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1086 "[override-header&override-header-4 #### Foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1087
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1088 TokenTypeOverrideTest("overrideHeader5",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1089 "[override-header&override-header-5 ##### Foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1090
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1091 TokenTypeOverrideTest("overrideHeader6",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1092 "[override-header&override-header-6 ###### Foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1093
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1094 TokenTypeOverrideTest("overrideCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1095 "[override-code `foo`]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1096
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1097 TokenTypeOverrideTest("overrideCodeBlock",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1098 "[override-code ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1099 "[override-code foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1100 "[override-code ```]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1101
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1102 TokenTypeOverrideTest("overrideQuote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1103 "[override-quote&override-quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1104 "[override-quote&override-quote-1 > bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1105
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1106 TokenTypeOverrideTest("overrideQuoteNested",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1107 "[override-quote&override-quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1108 "[override-quote&override-quote-1 >][override-quote&override-quote-2 > bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1109 "[override-quote&override-quote-1 >][override-quote&override-quote-2 >][override-quote&override-quote-3 > baz]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1110
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1111 TokenTypeOverrideTest("overrideLists",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1112 "[override-list1 - foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1113 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1114 " [override-list2 + bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1115 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1116 " [override-list3 * baz]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1117 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1118 " [override-list1 1. qux]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1119 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1120 " [override-list2 - quux]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1121
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1122 TokenTypeOverrideTest("overrideHr",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1123 "[override-hr * * *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1124
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1125 TokenTypeOverrideTest("overrideImage",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1126 "[override-image&override-image-marker !][override-image&override-image-alt-text&link [[alt text]]][override-link-href&url (http://link.to/image.jpg)]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1127
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1128 TokenTypeOverrideTest("overrideLinkText",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1129 "[override-link-text [[foo]]][override-link-href&url (http://example.com)]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1130
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1131 TokenTypeOverrideTest("overrideLinkEmailAndInline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1132 "[override-link-email <][override-link-inline foo@example.com>]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1133
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1134 TokenTypeOverrideTest("overrideEm",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1135 "[override-em *foo*]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1136
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1137 TokenTypeOverrideTest("overrideStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1138 "[override-strong **foo**]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1139
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1140 TokenTypeOverrideTest("overrideStrikethrough",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1141 "[override-strikethrough ~~foo~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1142
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1143 TokenTypeOverrideTest("overrideEmoji",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1144 "[override-emoji :foo:]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1145
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1146 FormatTokenTypeOverrideTest("overrideFormatting",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1147 "[override-formatting-escape \\*]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1148
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1149 // Tests to make sure GFM-specific things aren't getting through
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1150
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1151 MT("taskList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1152 "[variable-2 * ][link&variable-2 [[ ]]][variable-2 bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1153
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1154 MT("fencedCodeBlocks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1155 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1156 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1157 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1158 "[comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1159 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1160 "baz");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1161
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1162 MT("fencedCodeBlocks_invalidClosingFence_trailingText",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1163 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1164 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1165 "[comment ``` must not have trailing text]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1166 "[comment baz]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1167
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1168 MT("fencedCodeBlocks_invalidClosingFence_trailingTabs",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1169 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1170 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1171 "[comment ```\t]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1172 "[comment baz]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1173
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1174 MT("fencedCodeBlocks_validClosingFence",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1175 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1176 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1177 // may have trailing spaces
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1178 "[comment ``` ]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1179 "baz");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1180
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1181 MT("fencedCodeBlocksInList_closingFenceIndented",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1182 "[variable-2 - list]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1183 " [variable-2&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1184 " [comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1185 " [variable-2&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1186 " [variable-2 baz]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1187
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1188 MT("fencedCodeBlocksInList_closingFenceIndentedTooMuch",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1189 "[variable-2 - list]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1190 " [variable-2&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1191 " [comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1192 " [comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1193 " [comment baz]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1194
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1195 MT("fencedCodeBlockModeSwitching",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1196 "[comment ```javascript]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1197 "[variable foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1198 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1199 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1200 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1201
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1202 MT_noFencedHighlight("fencedCodeBlock_noHighlight",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1203 "[comment ```javascript]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1204 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1205 "[comment ```]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1206
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1207 MT("fencedCodeBlockModeSwitchingObjc",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1208 "[comment ```objective-c]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1209 "[keyword @property] [variable NSString] [operator *] [variable foo];",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1210 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1211 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1212
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1213 MT("fencedCodeBlocksMultipleChars",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1214 "[comment `````]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1215 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1216 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1217 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1218 "[comment `````]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1219 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1220
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1221 MT("fencedCodeBlocksTildes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1222 "[comment ~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1223 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1224 "[comment ~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1225 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1226
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1227 MT("fencedCodeBlocksTildesMultipleChars",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1228 "[comment ~~~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1229 "[comment ~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1230 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1231 "[comment ~~~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1232 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1233
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1234 MT("fencedCodeBlocksMultipleChars",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1235 "[comment `````]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1236 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1237 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1238 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1239 "[comment `````]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1240 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1241
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1242 MT("fencedCodeBlocksMixed",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1243 "[comment ~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1244 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1245 "[comment foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1246 "[comment ~~~]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1247 "bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1248
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1249 MT("fencedCodeBlocksAfterBlockquote",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1250 "[quote&quote-1 > foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1251 "[comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1252 "[comment bar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1253 "[comment ```]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1254
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1255 // fencedCode indented too much should act as simple indentedCode
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1256 // (hence has no highlight formatting)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1257 FT("tooMuchIndentedFencedCode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1258 " [comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1259 " [comment code]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1260 " [comment ```]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1261
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1262 MT("autoTerminateFencedCodeWhenLeavingList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1263 "[variable-2 - list1]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1264 " [variable-3 - list2]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1265 " [variable-3&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1266 " [comment code]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1267 " [variable-3 - list2]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1268 " [variable-2&comment ```]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1269 " [comment code]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1270 "[quote&quote-1 > foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1271
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1272 // Tests that require XML mode
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1273
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1274 MT("xmlMode",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1275 "[tag&bracket <][tag div][tag&bracket >]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1276 " *foo*",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1277 " [tag&bracket <][tag http://github.com][tag&bracket />]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1278 "[tag&bracket </][tag div][tag&bracket >]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1279 "[link <http://github.com/>]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1280
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1281 MT("xmlModeWithMarkdownInside",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1282 "[tag&bracket <][tag div] [attribute markdown]=[string 1][tag&bracket >]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1283 "[em *foo*]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1284 "[link <http://github.com/>]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1285 "[tag </div>]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1286 "[link <http://github.com/>]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1287 "[tag&bracket <][tag div][tag&bracket >]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1288 "[tag&bracket </][tag div][tag&bracket >]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1289
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1290 MT("xmlModeLineBreakInTags",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1291 "[tag&bracket <][tag div] [attribute id]=[string \"1\"]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1292 " [attribute class]=[string \"sth\"][tag&bracket >]xxx",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1293 "[tag&bracket </][tag div][tag&bracket >]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1294
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1295 MT("xmlModeCommentWithBlankLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1296 "[comment <!-- Hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1297 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1298 "[comment World -->]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1299
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1300 MT("xmlModeCDATA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1301 "[atom <![CDATA[ Hello]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1302 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1303 "[atom FooBar]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1304 "[atom Test ]]]]>]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1305
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1306 MT("xmlModePreprocessor",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1307 "[meta <?php] [meta echo '1234'; ?>]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1308
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1309 MT_noXml("xmlHighlightDisabled",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1310 "<div>foo</div>");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1311
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1312 // Tests Emojis
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1313
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1314 ET("emojiDefault",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1315 "[builtin :foobar:]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1316
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1317 ET("emojiTable",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1318 " :--:");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1319 })();