this repo has no description
1<!doctype html><html lang=en-QS><meta charset=utf-8>
2<title>Markup2 Tests</title>
3
4<script src=../parse.js></script>
5<script src=../langs.js></script>
6
7<script src=test.js></script>
8<script src=draw.js></script>
9<link rel=stylesheet href=common.css>
10<link rel=stylesheet href=style.css>
11
12<body>
13<script src=nav.js></script>
14
15opened: <time id=$start_time></time> | duration: <time id=$duration></time>
16<table class='data'>
17 <tr> <th> total <th> passed <th> pending <th> failed
18 <tr> <td id=$table_total> ? <td id=$table_passed> ? <td id=$table_pending> ? <td id=$table_failed> ?
19</table>
20<hr>
21<div id=$output></div>
22
23<script>'use strict'
24 Test.LANGS = new Markup_Langs([new Markup_12y2()])
25
26 let start = performance.timing.fetchStart
27 $start_time.textContent = new Date(start).toLocaleString()
28
29 function run(data) {
30 $output.textContent = ""
31
32 Test.load_text(data)
33
34 let total, pending
35 let passed = 0, failed = 0
36 total = pending = Test.all.length
37 $table_total.textContent = total
38 function draw() {
39 $table_passed.textContent = passed
40 $table_failed.textContent = failed
41 $table_pending.textContent = pending
42 }
43 draw()
44
45 for (let test of Test.all) {
46 test.run()
47 if (test.status > 0) {
48 $output.append(test.draw_result())
49 passed++
50 } else {
51 $output.prepend(test.draw_result())
52 failed++
53 }
54 pending--
55 draw()
56 }
57 let dur = Date.now() - start
58 $duration.textContent = dur+" ms"
59 }
60 document.addEventListener('DOMContentLoaded', e=>{
61 let data = $data.textContent
62 run(data)
63 })
64</script>
65
66<!-- <plaintext> goes until EOF, so the </plaintext> tag is fake -->
67<!-- (I just use it so editors won't indent the contents) -->
68<plaintext id=$data hidden></plaintext>
69🟩 wake up!
70|[2x1] /uwu/ |
71## `owo`
72🟩 {"type":"ROOT","content":[{"type":"table","args":null,"content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{"colspan":2},"content":[{"type":"italic","args":null,"content":["uwu"]}]}]}]},{"type":"heading","args":{"level":2,"id":null},"content":[{"type":"icode","args":{"text":"owo"}}]}],"prev":"block"}
73
74🟩 123
75### heading
76the `sand` can /be/ eaten
77```
78code block
79```
80🟩 {"type":"ROOT","content":[{"type":"heading","content":["heading"],"args":{"level":3,"id":null}},"the ",{"type":"icode","args":{"text":"sand"}}," can ",{"type":"italic","content":["be"]}," eaten","\n",{"type":"code","args":{"text":"code block\n"}}]}
81
82🟩 table.
83|table|
84🟩 {"type":"ROOT","content":[{"type":"table","content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","content":["table"],"args":{}}]}]}]}
85
86🟩 123
87|[red] hack|
88🟩 {"type":"ROOT","content":[{"type":"table","content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","content":["hack"],"args":{"color":"red"}}]}]}]}
89
90🟩 unclosed table cell
91|[red] hack|a
92bcdefa
93🟩 {"type":"ROOT","content":[{"type":"table","args":null,"content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{"color":"red"},"content":["hack"]},{"type":"table_cell","args":{},"content":["a"]}]}]},"bcdefa"],"prev":"text"}
94
95🟩 unclosed icode
96`eabcn
97🟩 {"type":"ROOT","content":[{"type":"icode","args":{"text":"eabcn"}}]}
98
99🟩 image embed
100!https://example.com
101🟩 {"type":"ROOT","content":[{"type":"image","args":{"url":"https://example.com"}}]}
102
103🟩 audio embed
104!https://example.com[audio]
105🟩 {"type":"ROOT","content":[{"type":"audio","args":{"url":"https://example.com"}}]}
106
107🟩 video embed
108!https://example.mp4
109🟩 {"type":"ROOT","content":[{"type":"video","args":{"url":"https://example.mp4"}}]}
110
111🟩 fake header
112##### test
113🟩 {"type":"ROOT","content":["##### test"]}
114
115🟩 h2
116## test
117🟩 {"type":"ROOT","content":[{"type":"heading","content":["test"],"args":{"level":2,"id":null}}]}
118
119🟩 table in env
120\{|table|}
121🟩 {"type":"ROOT","content":[{"type":"table","content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","content":["table"],"args":{}}]}]}]}
122
123🟩 not table
124a |table|
125🟩 {"type":"ROOT","content":["a |table|"]}
126
127🟩 single bar
128|
129a|
130🟩 {"type":"ROOT","content":["|","\n","a|"]}
131
132🟩 single backslash
133\
134🟩 {"type":"ROOT","content":["\\"]}
135
136🟩 esc newline
137\
138
139🟩 {"type":"ROOT","content":["\n"]}
140
141🟩 esc newline no table
142\
143|table|
144🟩 {"type":"ROOT","content":["\n","|table|"]}
145
146🟩 random escapes
147\\ \@ \~
148🟩 {"type":"ROOT","content":["\\"," ","@"," ","~"]}
149
150🟩 env with body
151\sub{
152abc
153\sub[a]{
154abc}
155}
156🟩 {"type":"ROOT","content":[{"type":"subscript","content":["abc","\n",{"type":"subscript","content":["abc"]}]}]}
157
158🟩 curly brackets
159}
160{}}{]{_}{}{}{}{
161🟩 {"type":"ROOT","content":["}","\n","{","}","}","{]{_","}","{","}","{","}","{","}","{"]}
162
163🟩 empty
164
165🟩 {"type":"ROOT","content":[]}
166
167🟩 newline
168
169
170🟩 {"type":"ROOT","content":["\n"]}
171
172🟩 quotes
173> hecko
174>[] uuw
175>{haa}
176🟩 {"type":"ROOT","content":[{"type":"quote","content":["hecko"],"args":{}},{"type":"quote","content":["uuw"],"args":{}},{"type":"quote","content":["haa"],"args":{}}]}
177
178🟩 not quotes
179>:(
180>abc
181heck > abc
182aa >{dwz}
183>[abc
184🟩 {"type":"ROOT","content":[">:(","\n",">abc","\n","heck > abc","\n","aa >{dwz","}","\n",">[abc"]}
185
186🟩 weird url args
187http://example.com[]
188http://example.com[
189http://example.com[a]
190http://example.com[=]
191http://example.com[;]
192http://example.com[a=1]
193🟩 {"type":"ROOT","content":[{"type":"simple_link","args":{"url":"http://example.com"}},"\n",{"type":"simple_link","args":{"url":"http://example.com"}},"[","\n",{"type":"simple_link","args":{"url":"http://example.com","text":"a"}},"\n",{"type":"simple_link","args":{"url":"http://example.com","text":""}},"\n",{"type":"simple_link","args":{"url":"http://example.com","text":""}},"\n",{"type":"simple_link","args":{"url":"http://example.com"}}]}
194
195🟩 dividers
196---
197
198--
199-------
200 ---
201---
202---\
203----
204- ---
205a
206\{---
207^ is that correct?
208🟩 {"type":"ROOT","content":[{"type":"divider"},"\n","--","\n",{"type":"divider"}," ---","\n","--- ","\n","---","\n","----","\n",{"type":"list","args":{"indent":0},"content":[{"type":"list_item","content":["--- "]}]},"a","\n",{"type":"divider"},"^ is that correct?"]}
209
210🟩 env word
211abc\sup abc
212abc\sup
213abc\sup qwe\{}rty
214🟩 {"type":"ROOT","content":["abc",{"type":"superscript","content":["abc"]},"\n","abc",{"type":"superscript","content":[]},"\n","abc",{"type":"superscript","content":["qwe"]},"rty"]}
215
216🟩 ``` code blocks
217```
218normal
219codeblock
220abc
221```
222missing start linebreak:
223```x=1
224x=x+1
225```
226``` c++ 11
227lang
228aaa
229```
230```inline```
231```js
232missing end linebreak (todo: idk about this)```
233```
234
235blank lines
236
237```
238not at start ```abc```
239```
240end not at start
241heck```abc
242```
243unclosed
244
245🟩 {"type":"ROOT","content":[{"type":"code","args":{"text":"normal\ncodeblock\nabc\n"}},"missing start linebreak:","\n",{"type":"code","args":{"text":"x=1\nx=x+1\n"}},{"type":"code","args":{"text":"lang\naaa\n","lang":"c++ 11"}},{"type":"icode","args":{"text":"`inline`"}},"\n",{"type":"code","args":{"text":"missing end linebreak (todo: idk about this)","lang":"js"}},{"type":"code","args":{"text":"\nblank lines\n\n"}},"not at start ",{"type":"icode","args":{"text":"`abc`"}},"\n",{"type":"code","args":{"text":"end not at start\nheck"}},"abc","\n",{"type":"code","args":{"text":"unclosed\n"}}],"prev":"block"}
246
247🟩 paragraphs
248paragraph1
249
250paragraph2
251🟩 {"type":"ROOT","content":["paragraph1","\n","\n","paragraph2"]}
252
253🟩 heading spacing
254some text idk
255
256# heading
257
258some more text
259## heading
260yeah
261🟩 {"type":"ROOT","content":["some text idk","\n","\n",{"type":"heading","content":["heading"],"args":{"level":1,"id":null}},"\n","some more text","\n",{"type":"heading","content":["heading"],"args":{"level":2,"id":null}},"yeah"]}
262
263🟩 keys, word parsing
264\key abc
265\key a b
266\key c\key c \key c
267🟩 {"type":"ROOT","content":[{"type":"key","content":["abc"]},"\n",{"type":"key","content":["a"]}," b","\n",{"type":"key","content":["c"]},{"type":"key","content":["c"]}," ",{"type":"key","content":["c"]}]}
268
269🟩 stuff
270
271
272|[gray] abc |[blue] abc | `test`
273!https://qcs.shsbs.xyz/api/file/raw/31760?size=30&crop=true
274the sand can be eatena
275 abc
276\spoiler abc defaaaa \spoiler a
277aaaaaa
278\align[right] heck
279\align | table |
280---
281\key{\key a\key b
282\key ctrl\abcdef[aaa]{ ha}
283\key shift
284\key ctrl+\key shift+\key M}
285\spoiler abc
286/test
287a/
288`abc
289def`
290
291🟩 {"type":"ROOT","content":["\n","\n",{"type":"table","args":null,"content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{"color":"gray"},"content":["abc"]},{"type":"table_cell","args":{"color":"blue"},"content":["abc"]},{"type":"table_cell","args":{},"content":[{"type":"icode","args":{"text":"test"}}," "]}]}]},{"type":"image","args":{"url":"https://qcs.shsbs.xyz/api/file/raw/31760?size=30&crop=true"}},"the sand can be eatena","\n","\tabc","\n",{"type":"spoiler","args":{"label":"spoiler","cw":false},"content":["abc defaaaa ",{"type":"spoiler","args":{"label":"spoiler","cw":false},"content":["a"]}]},"aaaaaa","\n",{"type":"align","args":{"align":"right"},"content":["heck"]},{"type":"align","args":{"align":"center"},"content":["| table |"]},{"type":"divider"},{"type":"key","args":null,"content":[{"type":"key","args":null,"content":["a"]},{"type":"key","args":null,"content":["b"]},"\n",{"type":"key","args":null,"content":["ctrl"]},{"type":"invalid","args":{"text":"\\abcdef[aaa]{","reason":"invalid tag"},"content":[" ha","}"]},"\n",{"type":"key","args":null,"content":["shift"]},"\n",{"type":"key","args":null,"content":["ctrl"]},"+",{"type":"key","args":null,"content":["shift"]},"+",{"type":"key","args":null,"content":["M"]}]},"\n",{"type":"spoiler","args":{"label":"spoiler","cw":false},"content":["abc"]},"/","test","\n","a/","\n",{"type":"icode","args":{"text":"abc"}},"\n","def",{"type":"icode","args":{"text":""}},"\n","\n"],"prev":"newline"}
292
293🟩 idk..env close
294>{
295\spoiler abc}heck
296🟩 {"type":"ROOT","content":[{"type":"quote","content":[{"type":"spoiler","content":["abc"],"args":{"label":"spoiler","cw":false}}],"args":{}},"heck"]}
297
298🟩 spit it out
299/abc
300}def/
301🟩 {"type":"ROOT","content":["/","abc","\n","}","def/"]}
302
303🟩 null escape
304test\b 123\.aaaaa
305test\b 123 aaaaa
306test\b 123\i aaaaa
307heck\b\.heck, heck\b \.heck, heck\b \.heck
308https://example\.com
309>{\.}
310|\.|
311| |
312🟩 {"type":"ROOT","content":["test",{"type":"bold","content":["123"]},"aaaaa","\n","test",{"type":"bold","content":["123"]}," aaaaa","\n","test",{"type":"bold","content":["123"]},{"type":"italic","content":["aaaaa"]},"\n","heck\\b","heck, heck",{"type":"bold","content":[]},"heck, heck",{"type":"bold","content":[]}," ","heck","\n",{"type":"simple_link","args":{"url":"https://example"}},"com","\n",{"type":"quote","args":{},"content":[]},{"type":"table","content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{},"content":[]}]},{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{},"content":[]}]}]}]}
313
314🟩 styles closed by table cells
315/italic | abc/
316| table /test | /italic | abc/ |
317abc /heck |
318🟩 {"type":"ROOT","content":[{"type":"italic","content":["italic | abc"]},"\n",{"type":"table","args":null,"content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{},"content":["table ","/","test"]},{"type":"table_cell","args":{},"content":["/","italic"]},{"type":"table_cell","args":{},"content":["abc/"]}]}]},"abc ","/","heck |"],"prev":"text"}
319
320🟩 list
321- abc
322lol haha
323- def
324 - j
325- ghi
326 - hhhh
327- abc
328 - ack
329 - q
330 - 9
331- a
332 - b
333anc
334🟩 {"type":"ROOT","content":[{"type":"list","args":{"indent":0},"content":[{"type":"list_item","content":["abc"]}]},"lol haha","\n",{"type":"list","args":{"indent":0},"content":[{"type":"list_item","content":["def"]},{"type":"list","args":{"indent":1},"content":[{"type":"list_item","content":["j"]}]},{"type":"list_item","content":["ghi"]},{"type":"list","args":{"indent":2},"content":[{"type":"list_item","content":["hhhh"]}]},{"type":"list_item","content":["abc"]},{"type":"list","args":{"indent":2},"content":[{"type":"list_item","content":["ack"]}]},{"type":"list","args":{"indent":1},"content":[{"type":"list_item","content":["q"]},{"type":"list_item","content":["9"]}]},{"type":"list_item","content":["a"]},{"type":"list","args":{"indent":1},"content":[{"type":"list_item","content":["b"]}]}]},"anc"]}
335
336🟩 falling list
337 - abc
338 - def
339- ghi
340 - hjk
341🟩 {"type":"ROOT","content":[{"type":"list","args":{"indent":3},"content":[{"type":"list_item","content":["abc"]}]},{"type":"list","args":{"indent":1},"content":[{"type":"list_item","content":["def"]}]},{"type":"list","args":{"indent":0},"content":[{"type":"list_item","content":["ghi "]},{"type":"list","args":{"indent":1},"content":[{"type":"list_item","content":["hjk"]}]}]}]}
342
343🟩 silly null env list
344- abc
345\{- def}
346- ghi
347🟩 {"type":"ROOT","content":[{"type":"list","args":{"indent":0},"content":[{"type":"list_item","content":["abc"]}]},{"type":"list","args":{"indent":0},"content":[{"type":"list_item","content":["def"]},{"type":"list_item","content":["ghi"]}]}]}
348
349🟩 bodyless tag reqd space
350\ruby[a] 🧚♀️,
351\ruby[a]🧚♀️=
352\ruby 🧚♀️:
353\ruby{🧚♀️a bc}
354\ruby🧚♀️ - no
355🟩 {"type":"ROOT","content":[{"type":"ruby","args":{"text":"a"},"content":["🧚♀️"]},",","\n",{"type":"ruby","args":{"text":"a"},"content":["🧚♀️"]},"=","\n",{"type":"ruby","args":{"text":"true"},"content":["🧚♀️"]},":","\n",{"type":"ruby","args":{"text":"true"},"content":["🧚♀️a bc"]},"\n","\\ruby🧚♀️ - no"]}
356
357🟩 bad args + align
358\align[right] test
359\align heck
360\align[
361\align[]
362\align[] d
363\align[] ddd
364\align[aaa
365\align[aaa{}
366🟩 {"type":"ROOT","content":[{"type":"align","args":{"align":"right"},"content":["test"]},{"type":"align","args":{"align":"center"},"content":["heck"]},"\\align[","\n",{"type":"align","args":{"align":"center"},"content":[]},{"type":"align","args":{"align":"center"},"content":["d"]},{"type":"align","args":{"align":"center"},"content":["ddd"]},"\\align[aaa","\n","\\align[aaa{","}"]}
367
368🟩 bad table
369|
370wow |
371|abc
372|abc|abc
373the sand | can be eaten |
374heck |
375🟩 {"type":"ROOT","content":["|","\n","wow |","\n",{"type":"table","args":null,"content":[{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{},"content":["abc"]}]},{"type":"table_row","args":{},"content":[{"type":"table_cell","args":{},"content":["abc"]},{"type":"table_cell","args":{},"content":["abc"]}]}]},"the sand | can be eaten |","\n","heck |"],"prev":"text"}
376
377🟩 urls
378aaahttp://example.com
379http://example.com?
380(http://example.com)
381(http://example.com/heck(123))
382http://example.com/heck(123)abc;
383
384🟩 {"type":"ROOT","content":["aaahttp://example.com","\n",{"type":"simple_link","args":{"url":"http://example.com"}},"?","\n","(",{"type":"simple_link","args":{"url":"http://example.com"}},")","\n","(",{"type":"simple_link","args":{"url":"http://example.com/heck(123)"}},")","\n",{"type":"simple_link","args":{"url":"http://example.com/heck(123)abc"}},";","\n","\n"]}
385
386🟩 anchor
387\a[heck]wow
388\a[heck] wow
389\a[heck]## wow
390\a[heck] ## wow
391\a[heck]{## wow}
392\a[heck]
393🟩 {"type":"ROOT","content":[{"type":"anchor","args":{"id":"heck"},"content":["wow"]},{"type":"anchor","args":{"id":"heck"},"content":["wow"]},{"type":"anchor","args":{"id":"heck"},"content":[{"type":"heading","args":{"level":2,"id":null},"content":["wow"]}]},{"type":"anchor","args":{"id":"heck"},"content":[{"type":"heading","args":{"level":2,"id":null},"content":["wow"]}]},{"type":"anchor","args":{"id":"heck"},"content":[{"type":"heading","args":{"level":2,"id":null},"content":["wow"]}]},{"type":"anchor","args":{"id":"heck"},"content":[]}]}
394
395🟩 heading with anchor
396##[$what] deez
397##[=what]deez
398##[wh at]deez
399##[ wh at]{deez}
400##[wh at]
401a
402🟩 {"type":"ROOT","content":[{"type":"heading","args":{"level":2,"id":"-what"},"content":["deez"]},{"type":"heading","args":{"level":2,"id":"what"},"content":["deez"]},{"type":"heading","args":{"level":2,"id":"wh-at"},"content":["deez"]},{"type":"heading","args":{"level":2,"id":"-wh-at"},"content":["deez"]},{"type":"heading","args":{"level":2,"id":"wh-at"},"content":[]},"a"]}
403
404🟩 trim space after block
405!https://qcs.shsbs.xyz/api/File/raw/dmheh?size=100&crop=true
406i..
407🟩 {"type":"ROOT","content":[{"type":"image","args":{"url":"https://qcs.shsbs.xyz/api/File/raw/dmheh?size=100&crop=true"}},"i.."],"prev":"text"}
408
409🟩 block inside inline block
410\align[right]{\key{!https://qcs.shsbs.xyz/api/File/raw/eavfb[520x318]}
411imo not the best place to put a settings button.. it reads as a header
412🟩 {"type":"ROOT","content":[{"type":"align","args":{"align":"right"},"content":[{"type":"key","args":null,"content":[{"type":"image","args":{"url":"https://qcs.shsbs.xyz/api/File/raw/eavfb","width":520,"height":318}}]},"\n","imo not the best place to put a settings button.. it reads as a header"]}],"prev":"block"}
413
414🟩 spoiler content warning
415\h[cw piss]{...}
416🟩 {"type":"ROOT","content":[{"type":"spoiler","args":{"label":"cw piss","cw":true},"content":["..."]}],"prev":"block"}