annotate .cms/lib/codemirror/mode/gfm/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, "gfm");
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: "gfm", 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
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 FT("codeBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 "[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 FT("doubleBackticks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 "[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 FT("taskList",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 "[variable-2&formatting&formatting-list&formatting-list-ul - ][meta&formatting&formatting-task [ ]]][variable-2 foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 "[variable-2&formatting&formatting-list&formatting-list-ul - ][property&formatting&formatting-task [x]]][variable-2 foo]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 FT("formatting_strikethrough",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 "[strikethrough&formatting&formatting-strikethrough ~~][strikethrough foo][strikethrough&formatting&formatting-strikethrough ~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 FT("formatting_strikethrough",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 "foo [strikethrough&formatting&formatting-strikethrough ~~][strikethrough bar][strikethrough&formatting&formatting-strikethrough ~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 FT("formatting_emoji",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 "foo [builtin&formatting&formatting-emoji :smile:] foo");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 MT("emInWordAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 "foo[em *bar*]hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 MT("emInWordUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 "foo_bar_hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 MT("emStrongUnderscore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 "[em&strong ___foo___] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 MT("taskListAsterisk",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 "[variable-2 * ][link&variable-2 [[]]][variable-2 foo]", // Invalid; must have space or x between []
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 "[variable-2 * ][link&variable-2 [[ ]]][variable-2 bar]", // Invalid; must have space after ]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 "[variable-2 * ][link&variable-2 [[x]]][variable-2 hello]", // Invalid; must have space after ]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 "[variable-2 * ][meta [ ]]][variable-2 ][link&variable-2 [[world]]]", // Valid; tests reference style links
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 " [variable-3 * ][property [x]]][variable-3 foo]"); // Valid; can be nested
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 MT("taskListPlus",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 "[variable-2 + ][link&variable-2 [[]]][variable-2 foo]", // Invalid; must have space or x between []
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 "[variable-2 + ][link&variable-2 [[x]]][variable-2 hello]", // Invalid; must have space after ]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 "[variable-2 + ][meta [ ]]][variable-2 ][link&variable-2 [[world]]]", // Valid; tests reference style links
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 " [variable-3 + ][property [x]]][variable-3 foo]"); // Valid; can be nested
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 MT("taskListDash",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 "[variable-2 - ][link&variable-2 [[]]][variable-2 foo]", // Invalid; must have space or x between []
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 "[variable-2 - ][link&variable-2 [[x]]][variable-2 hello]", // Invalid; must have space after ]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 "[variable-2 - ][meta [ ]]][variable-2 world]", // Valid; tests reference style links
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 " [variable-3 - ][property [x]]][variable-3 foo]"); // Valid; can be nested
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 MT("taskListNumber",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 "[variable-2 1. ][link&variable-2 [[]]][variable-2 foo]", // Invalid; must have space or x between []
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 "[variable-2 2. ][link&variable-2 [[ ]]][variable-2 bar]", // Invalid; must have space after ]
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 "[variable-2 3. ][meta [ ]]][variable-2 world]", // Valid; tests reference style links
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 " [variable-3 1. ][property [x]]][variable-3 foo]"); // Valid; can be nested
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 MT("SHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 "foo [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 MT("SHAEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 "[em *foo ][em&link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 MT("shortSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 "foo [link be6a8cc] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 MT("tooShortSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 "foo be6a8c bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 MT("longSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd22 bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 MT("badSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cg2 bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 MT("userSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 "foo [link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 MT("userSHAEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 "[em *foo ][em&link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 MT("userProjectSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 "foo [link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 MT("userProjectSHAEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 "[em *foo ][em&link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 MT("wordSHA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 "ask for feedback")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 MT("num",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 "foo [link #1] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 MT("numEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 "[em *foo ][em&link #1][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 MT("badNum",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 "foo #1bar hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 MT("userNum",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 "foo [link bar#1] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 MT("userNumEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 "[em *foo ][em&link bar#1][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 MT("userProjectNum",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 "foo [link bar/hello#1] world");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 MT("userProjectNumEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 "[em *foo ][em&link bar/hello#1][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 MT("vanillaLink",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 "foo [link http://www.example.com/] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 MT("vanillaLinkNoScheme",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 "foo [link www.example.com] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 MT("vanillaLinkHttps",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 "foo [link https://www.example.com/] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 MT("vanillaLinkDataSchema",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 "foo [link data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 MT("vanillaLinkPunctuation",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 "foo [link http://www.example.com/]. bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 MT("vanillaLinkExtension",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 "foo [link http://www.example.com/index.html] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 MT("vanillaLinkEmphasis",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 "foo [em *][em&link http://www.example.com/index.html][em *] bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 MT("notALink",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 "foo asfd:asdf bar");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 MT("notALink",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 "[comment ``foo `bar` http://www.example.com/``] hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 MT("notALink",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 "[comment `foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 "[comment&link http://www.example.com/]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 "[comment `] foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 "[link http://www.example.com/]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 MT("strikethrough",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 "[strikethrough ~~foo~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 MT("strikethroughWithStartingSpace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 "~~ foo~~");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 MT("strikethroughUnclosedStrayTildes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 "[strikethrough ~~foo~~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 MT("strikethroughUnclosedStrayTildes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 "[strikethrough ~~foo ~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 MT("strikethroughUnclosedStrayTildes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 "[strikethrough ~~foo ~~ bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 MT("strikethroughUnclosedStrayTildes",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 "[strikethrough ~~foo ~~ bar~~]hello");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 MT("strikethroughOneLetter",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 "[strikethrough ~~a~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 MT("strikethroughWrapped",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 "[strikethrough ~~foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 "[strikethrough foo~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 MT("strikethroughParagraph",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 "[strikethrough ~~foo]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 "",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 "foo[strikethrough ~~bar]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 MT("strikethroughEm",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 "[strikethrough ~~foo][em&strikethrough *bar*][strikethrough ~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 MT("strikethroughEm",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 "[em *][em&strikethrough ~~foo~~][em *]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 MT("strikethroughStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 "[strikethrough ~~][strong&strikethrough **foo**][strikethrough ~~]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 MT("strikethroughStrong",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 "[strong **][strong&strikethrough ~~foo~~][strong **]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 MT("emoji",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 "text [builtin :blush:] text [builtin :v:] text [builtin :+1:] text",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 ":text text: [builtin :smiley_cat:]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 })();