this repo has no description
at cactus 416 lines 17 kB view raw
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"}