-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeck.json
More file actions
732 lines (732 loc) · 107 KB
/
Copy pathdeck.json
File metadata and controls
732 lines (732 loc) · 107 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
{
"__type__": "Deck",
"children": [],
"crowdanki_uuid": "08043ed8-f015-11ee-a9e1-e509620133f6",
"deck_config_uuid": "4c2b5650-17c2-11ed-be8f-b5744a14df47",
"deck_configurations": [
{
"__type__": "DeckConfig",
"answerAction": 2,
"autoAgain": 0,
"autoAlert": 0,
"autoAnswer": 0,
"autoplay": false,
"buryInterdayLearning": false,
"crowdanki_uuid": "4c2b5650-17c2-11ed-be8f-b5744a14df47",
"desiredRetention": 0.9,
"dyn": false,
"easyDaysPercentages": [
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0
],
"fsrsEnabled": false,
"fsrsParams5": [
0.40255,
1.18385,
3.173,
15.69105,
7.1949,
0.5345,
1.4604,
0.0046,
1.54575,
0.1192,
1.01925,
1.9395,
0.11,
0.29605,
2.2698,
0.2315,
2.9898,
0.51655,
0.6621
],
"fsrsWeights": [
6.0339,
17.3426,
46.0038,
100.0,
4.882,
1.2298,
0.9127,
0.0132,
1.9297,
0.0,
1.3283,
2.32,
0.01,
0.5962,
1.6319,
0.2033,
3.1631
],
"ignoreRevlogsBeforeDate": "2023-09-01",
"interdayLearningMix": 2,
"lapse": {
"delays": [
120.0
],
"leechAction": 1,
"leechFails": 1,
"minInt": 1,
"mult": 0.0
},
"maxTaken": 600,
"name": "Default (template)",
"new": {
"bury": false,
"delays": [
1.0,
120.0,
240.0
],
"initialFactor": 2300,
"ints": [
2,
5,
0
],
"order": 1,
"perDay": 0,
"separate": true
},
"newGatherPriority": 1,
"newMix": 1,
"newPerDayMinimum": 0,
"newSortOrder": 1,
"questionAction": 0,
"replayq": true,
"rev": {
"bury": false,
"ease4": 2.1,
"fuzz": 0.05,
"hardFactor": 1.2,
"ivlFct": 1.0,
"maxIvl": 36500,
"minSpace": 1,
"perDay": 9999
},
"reviewOrder": 10,
"secondsToShowAnswer": 0.0,
"secondsToShowQuestion": 0.0,
"sm2Retention": 0.8,
"stopTimerOnAnswer": false,
"timer": 0,
"waitForAudio": true,
"weightSearch": ""
}
],
"desc": "",
"dyn": 0,
"extendNew": 3,
"extendRev": 0,
"media_files": [
"HTML5_Logo.svg",
"_InclusiveSans-Regular.ttf",
"_InterVariable.woff2",
"_diff_match_patch.js",
"_line_number_styling.css",
"_prism-abap.min.js",
"_prism-abnf.min.js",
"_prism-actionscript.min.js",
"_prism-ada.min.js",
"_prism-agda.min.js",
"_prism-al.min.js",
"_prism-antlr4.min.js",
"_prism-apacheconf.min.js",
"_prism-apex.min.js",
"_prism-apl.min.js",
"_prism-applescript.min.js",
"_prism-aql.min.js",
"_prism-arduino.min.js",
"_prism-arff.min.js",
"_prism-armasm.min.js",
"_prism-arturo.min.js",
"_prism-asciidoc.min.js",
"_prism-asm6502.min.js",
"_prism-asmatmel.min.js",
"_prism-aspnet.min.js",
"_prism-autohotkey.min.js",
"_prism-autoit.min.js",
"_prism-avisynth.min.js",
"_prism-avro-idl.min.js",
"_prism-awk.min.js",
"_prism-bash.min.js",
"_prism-basic.min.js",
"_prism-batch.min.js",
"_prism-bbcode.min.js",
"_prism-bbj.min.js",
"_prism-bicep.min.js",
"_prism-birb.min.js",
"_prism-bison.min.js",
"_prism-bnf.min.js",
"_prism-bqn.min.js",
"_prism-brainfuck.min.js",
"_prism-brightscript.min.js",
"_prism-bro.min.js",
"_prism-bsl.min.js",
"_prism-c.min.js",
"_prism-cfscript.min.js",
"_prism-chaiscript.min.js",
"_prism-cil.min.js",
"_prism-cilkc.min.js",
"_prism-cilkcpp.min.js",
"_prism-clike.min.js",
"_prism-clojure.min.js",
"_prism-cmake.min.js",
"_prism-cobol.min.js",
"_prism-coffeescript.min.js",
"_prism-concurnas.min.js",
"_prism-cooklang.min.js",
"_prism-coq.min.js",
"_prism-cpp.min.js",
"_prism-crystal.min.js",
"_prism-csharp.min.js",
"_prism-cshtml.min.js",
"_prism-csp.min.js",
"_prism-css-extras.min.js",
"_prism-css.min.js",
"_prism-csv.min.js",
"_prism-cue.min.js",
"_prism-cypher.min.js",
"_prism-d.min.js",
"_prism-dart.min.js",
"_prism-dataweave.min.js",
"_prism-dax.min.js",
"_prism-dhall.min.js",
"_prism-diff.min.js",
"_prism-django.min.js",
"_prism-dns-zone-file.min.js",
"_prism-docker.min.js",
"_prism-dot.min.js",
"_prism-ebnf.min.js",
"_prism-editorconfig.min.js",
"_prism-eiffel.min.js",
"_prism-ejs.min.js",
"_prism-elixir.min.js",
"_prism-elm.min.js",
"_prism-erb.min.js",
"_prism-erlang.min.js",
"_prism-etlua.min.js",
"_prism-excel-formula.min.js",
"_prism-factor.min.js",
"_prism-false.min.js",
"_prism-firestore-security-rules.min.js",
"_prism-flow.min.js",
"_prism-fortran.min.js",
"_prism-fsharp.min.js",
"_prism-ftl.min.js",
"_prism-gap.min.js",
"_prism-gcode.min.js",
"_prism-gdscript.min.js",
"_prism-gedcom.min.js",
"_prism-gettext.min.js",
"_prism-gherkin.min.js",
"_prism-git.min.js",
"_prism-glsl.min.js",
"_prism-gml.min.js",
"_prism-gn.min.js",
"_prism-go-module.min.js",
"_prism-go.min.js",
"_prism-gradle.min.js",
"_prism-graphql.min.js",
"_prism-groovy.min.js",
"_prism-gruvbox-dark.css",
"_prism-haml.min.js",
"_prism-handlebars.min.js",
"_prism-haskell.min.js",
"_prism-haxe.min.js",
"_prism-hcl.min.js",
"_prism-hlsl.min.js",
"_prism-hoon.min.js",
"_prism-hpkp.min.js",
"_prism-hsts.min.js",
"_prism-http.min.js",
"_prism-ichigojam.min.js",
"_prism-icon.min.js",
"_prism-icu-message-format.min.js",
"_prism-idris.min.js",
"_prism-iecst.min.js",
"_prism-ignore.min.js",
"_prism-inform7.min.js",
"_prism-ini.min.js",
"_prism-io.min.js",
"_prism-j.min.js",
"_prism-java.min.js",
"_prism-javadoc.min.js",
"_prism-javadoclike.min.js",
"_prism-javascript.min.js",
"_prism-javastacktrace.min.js",
"_prism-jexl.min.js",
"_prism-jolie.min.js",
"_prism-jq.min.js",
"_prism-js-extras.min.js",
"_prism-js-templates.min.js",
"_prism-jsdoc.min.js",
"_prism-json.min.js",
"_prism-json5.min.js",
"_prism-jsonp.min.js",
"_prism-jsstacktrace.min.js",
"_prism-jsx.min.js",
"_prism-julia.min.js",
"_prism-keepalived.min.js",
"_prism-keyman.min.js",
"_prism-kotlin.min.js",
"_prism-kumir.min.js",
"_prism-kusto.min.js",
"_prism-latex.min.js",
"_prism-latte.min.js",
"_prism-less.min.js",
"_prism-lilypond.min.js",
"_prism-linker-script.min.js",
"_prism-liquid.min.js",
"_prism-lisp.min.js",
"_prism-livescript.min.js",
"_prism-llvm.min.js",
"_prism-log.min.js",
"_prism-lolcode.min.js",
"_prism-lua.min.js",
"_prism-magma.min.js",
"_prism-makefile.min.js",
"_prism-markdown.min.js",
"_prism-markup-templating.min.js",
"_prism-markup.min.js",
"_prism-mata.min.js",
"_prism-matlab.min.js",
"_prism-maxscript.min.js",
"_prism-mel.min.js",
"_prism-mermaid.min.js",
"_prism-metafont.min.js",
"_prism-mizar.min.js",
"_prism-mongodb.min.js",
"_prism-monkey.min.js",
"_prism-moonscript.min.js",
"_prism-n1ql.min.js",
"_prism-n4js.min.js",
"_prism-nand2tetris-hdl.min.js",
"_prism-naniscript.min.js",
"_prism-nasm.min.js",
"_prism-neon.min.js",
"_prism-nevod.min.js",
"_prism-nginx.min.js",
"_prism-nim.min.js",
"_prism-nix.min.js",
"_prism-nsis.min.js",
"_prism-objectivec.min.js",
"_prism-ocaml.min.js",
"_prism-odin.min.js",
"_prism-opencl.min.js",
"_prism-openqasm.min.js",
"_prism-oz.min.js",
"_prism-parigp.min.js",
"_prism-parser.min.js",
"_prism-pascal.min.js",
"_prism-pascaligo.min.js",
"_prism-pcaxis.min.js",
"_prism-peoplecode.min.js",
"_prism-perl.min.js",
"_prism-php-extras.min.js",
"_prism-php.min.js",
"_prism-phpdoc.min.js",
"_prism-plant-uml.min.js",
"_prism-plsql.min.js",
"_prism-powerquery.min.js",
"_prism-powershell.min.js",
"_prism-processing.min.js",
"_prism-prolog.min.js",
"_prism-promql.min.js",
"_prism-properties.min.js",
"_prism-protobuf.min.js",
"_prism-psl.min.js",
"_prism-pug.min.js",
"_prism-puppet.min.js",
"_prism-pure.min.js",
"_prism-purebasic.min.js",
"_prism-purescript.min.js",
"_prism-python.min.js",
"_prism-q.min.js",
"_prism-qml.min.js",
"_prism-qore.min.js",
"_prism-qsharp.min.js",
"_prism-r.min.js",
"_prism-racket.min.js",
"_prism-reason.min.js",
"_prism-regex.min.js",
"_prism-rego.min.js",
"_prism-renpy.min.js",
"_prism-rescript.min.js",
"_prism-rest.min.js",
"_prism-rip.min.js",
"_prism-roboconf.min.js",
"_prism-robotframework.min.js",
"_prism-ruby.min.js",
"_prism-rust.min.js",
"_prism-sas.min.js",
"_prism-sass.min.js",
"_prism-scala.min.js",
"_prism-scheme.min.js",
"_prism-scss.min.js",
"_prism-shell-session.min.js",
"_prism-smali.min.js",
"_prism-smalltalk.min.js",
"_prism-smarty.min.js",
"_prism-sml.min.js",
"_prism-solidity.min.js",
"_prism-solution-file.min.js",
"_prism-soy.min.js",
"_prism-sparql.min.js",
"_prism-splunk-spl.min.js",
"_prism-sqf.min.js",
"_prism-sql.min.js",
"_prism-squirrel.min.js",
"_prism-stan.min.js",
"_prism-stata.min.js",
"_prism-stylus.min.js",
"_prism-supercollider.min.js",
"_prism-swift.min.js",
"_prism-systemd.min.js",
"_prism-t4-cs.min.js",
"_prism-t4-templating.min.js",
"_prism-t4-vb.min.js",
"_prism-tap.min.js",
"_prism-tcl.min.js",
"_prism-textile.min.js",
"_prism-toml.min.js",
"_prism-tremor.min.js",
"_prism-tsx.min.js",
"_prism-tt2.min.js",
"_prism-turtle.min.js",
"_prism-twig.min.js",
"_prism-typescript.min.js",
"_prism-typoscript.min.js",
"_prism-unrealscript.min.js",
"_prism-uorazor.min.js",
"_prism-uri.min.js",
"_prism-v.min.js",
"_prism-vala.min.js",
"_prism-vbnet.min.js",
"_prism-velocity.min.js",
"_prism-verilog.min.js",
"_prism-vhdl.min.js",
"_prism-vim.min.js",
"_prism-visual-basic.min.js",
"_prism-warpscript.min.js",
"_prism-wasm.min.js",
"_prism-web-idl.min.js",
"_prism-wgsl.min.js",
"_prism-wiki.min.js",
"_prism-wolfram.min.js",
"_prism-wren.min.js",
"_prism-xeora.min.js",
"_prism-xml-doc.min.js",
"_prism-xojo.min.js",
"_prism-xquery.min.js",
"_prism-yaml.min.js",
"_prism-yang.min.js",
"_prism-zig.min.js",
"_prism.min.css",
"_prism.min.js",
"_prism.min_with_line_numbers_addon.js",
"c_logo.svg"
],
"name": "Multi-Line-Typing-Anki-Template",
"newLimit": null,
"newLimitToday": null,
"note_models": [
{
"__type__": "NoteModel",
"crowdanki_uuid": "08059594-f015-11ee-a9e1-e509620133f6",
"css": "/*TODO: split this up for the different card types*/\n/*base values*/\n:root {\n\n\t--letter_spacing: 0px;\n\n\t@property --correct_insertion_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: hsl(106, 100%, 25%);\n\t}\n\n\t@property --incorrect_omission_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: hsl(211, 100%, 40%);\n\t}\n\n\t@property --incorrect_omission_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: hsl(3, 100%, 30%);\n\t}\n\n\t@property --text_shadow_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: grey;\n\t}\n\n\t@property --selection_background_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: hsl(52, 100%, 44%);\n\t}\n\n\t@property --code_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: #850a47;\n\t}\n\n\t@property --safe_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: green;\n\t}\n\n\t@property --link_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: blue;\n\t}\n\n\t@property --textfield_background_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: inherit;\n\t}\n\n\t@property --textfield_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: black;\n\t}\n\n\t@property --hint_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: brown;\n\t}\n\n\t@property --hr_border_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: black;\n\t}\n\n\t@property --hr_opacity {\n\t\tsyntax: \"<number>\";\n\t\tinherits: true;\n\t\tinitial-value: 1;\n\t}\n\n\t@property --border_width_thin {\n\t\tsyntax: \"<length>\";\n\t\tinherits: true;\n\t\tinitial-value: 0.01rem;\n\t}\n\n\t@property --border_width_mid {\n\t\tsyntax: \"<length>\";\n\t\tinherits: true;\n\t\tinitial-value: 0.1rem;\n\t}\n\n\t@property --border_width_thick {\n\t\tsyntax: \"<length>\";\n\t\tinherits: true;\n\t\tinitial-value: 0.5rem;\n\t}\n\n\t@property --border_radius_large {\n\t\tsyntax: \"<length>\";\n\t\tinherits: true;\n\t\tinitial-value: 0.5rem;\n\t}\n\n\t@property --summary_height {\n\t\tsyntax: \"<length>\";\n\t\tinherits: true;\n\t\tinitial-value: 2.5rem;\n\t}\n\n\t/*\n\t@property --font_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: 2.5rem;\n\t}\n\n\t@property --background_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: 2.5rem;\n\t}*/\n\n\t@property --controls_background_color {\n\t\tsyntax: \"<color>\";\n\t\tinherits: true;\n\t\tinitial-value: grey;\n\t}\n\t\n\t--font_color: black;\n\t--background_color: white;\n\t--correct_insertion_color: hsl(120, 75%, 75%);\n\t--incorrect_omission_color: hsl(211, 75%, 65%);\n\t--incorrect_insertion_color: hsl(3, 75%, 64%);\n\t--text_shadow_color: grey;\n\t--selection_background_color: hsl(52, 100%, 46%);\n\t--code_color: #850a47;\n\t--safe_color: green;\n\t--link_color: blue;\n\t--textfield_color: black;\n\t--textfield_background_color: inherit; \n\t--hint_color: brown;\n\t--hr_border-color: black;\n\t--hr_opacity: 1;\n\n\t--border_width_thin: 0.01rem;\n\t--border_width_mid: 0.1rem;\n\t--border_width_thick: 0.5rem;\n\t--border_radius_large: 0.5rem;\n\t--summary_height: 2.5rem;\n\t--controls_background_color: rgb(252, 252, 252);\n\t--tab_size: 4;\n\n\t/*my old value*/\n\t/*--font-size-code: 1.3rem;*/\n\t--font_size_code: 1em;\n\n\t/*old*/\n\t--line_height_code: 1.1;\n\t/*addon: --line_height_code: 1.5 !important;*/\n}\n\n:root:has(img.svelte-uhvvkf){\n\t& .logo img {\n\tinset-block-start: 0ex;\n\tinset-inline-start: 0ex;\n\t/*top: 0.4ex;\n\tleft: 0.2ex;*/\n}\n}\n\n:root.night-mode, :root[data-bs-theme=\"dark\"], :root[data-darkreader-scheme=\"dark\"]{\n\t--correct_insertion_color: hsl(106, 100%, 25%);\n\t--incorrect_omission_color: hsl(211, 100%, 40%);\n\t--incorrect_insertion_color: hsl(3, 100%, 30%);\n\t--text_shadow_color: black;\n\t--selection_background_color: hsl(52, 100%, 38%);\n\t--code_color: lightgreen;\n\t--safe_color: lightgreen;\n\t--link_color: #00ccff;\n\t--textfield_color: white;\n\t--textfield_background_color: #0d1117;\n\t--font_color: white;\n\t--background_color: black;\n\t--hint_color: orange;\n\t--hr_border-color: lightgray;\n\t--hr_opacity: 0.5;\n\t--controls_background_color: rgb(73, 73, 73);\n\n}\n\n/*color scheme*/\n/*follow preference for darkmode set in system settings*/\n@media (prefers-color-scheme: dark){\n\t/*but not, if lightmode is specifically set in Anki interface*/\n\t:root:not([data-bs-theme=\"light\"]){\n\t\t--correct_insertion_color: hsl(106, 100%, 25%);\n\t\t--incorrect_omission_color: hsl(211, 100%, 40%);\n\t\t--incorrect_insertion_color: hsl(3, 100%, 30%);\n\t\t--text_shadow_color: black;\n\t\t--selection_background_color: hsl(52, 100%, 38%);\n\t\t--code_color: lightgreen;\n\t\t--safe_color: lightgreen;\n\t\t--link_color: #00ccff;\n\t\t--textfield_color: white;\n\t\t--textfield_background_color: #0d1117;\n\t\t--font_color: white;\n\t\t--background_color: black;\n\t\t--hint_color: orange;\n\t\t--hr_border-color: lightgray;\n\t\t--hr_opacity: 0.5;\n\t\t--controls_background_color: rgb(73, 73, 73);\n\n\t}\n\n\thtml {\n\t\tbackground: var(--background_color) !important;\n\t}\n\n\t.count {\n\t\t&.new {\n\t\t\tcolor: rgb(51, 125, 255);;\n\t\t}\n\t\n\t\t&.learn {\n\t\t\tcolor: rgb(255, 97, 97);\n\t\t}\n\t\n\t\t&.review {\n\t\t\tcolor: rgb(97, 255, 97);\n\t\t}\n\t}\n\n\tnav.navbar .navbar-nav .nav-item a.nav-link {\n\t\tcolor: lightgray;\n\n\t\t&:hover {\n\t\t\tcolor: grey;\n\t\t}\n\t}\n\t\n\tbody {\n\t\t/*overriden later, potentially remove*/\n\t\tcolor: lightgray;\n\n\n\t\t& .navbar-brand {\n\t\t\tcolor: #e8e6e3;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: grey;\n\t\t\t}\n\t\t}\n\t}\n\n\tbody{\n\t\tcolor: var(--font_color);\n\t\tbackground-color: var(--background_color);\n\t}\n\n\tdiv#ansarea.svelte-192a69y{\n\t\t/*background-color: hsla(215, 55%, 34%, 0.715) !important;*/\n\t\tbackground-color: transparent !important;\n\t}\n\tnav {\n\t\tbackground-color: transparent !important;\n\t\t/*background-color: hsla(215, 55%, 34%, 0.715) !important;*/\n\t\t/*sizing adjustments, potentially problematic!*/\n\t\t/*padding: 0 !important;*/\n\t}\n\t/*.navbar {\n\n\t}*/\n}\n\n#qa.svelte-192a69y {\n\tmargin-top: 1rem;\n}\n\n/*increase contrast*/\n\n@media (prefers-contrast: less){\n\t.card{\n\t\tfont-weight: 200;\n\t}\n}\n\n@media (prefers-contrast: more) {\n\t.card{\n\t\tfont-weight: 700;\n\t}\n\t\n\t.correct, .deleted, .inserted {\n\t\ttext-shadow: 1px 1px var(--text_shadow_color);\n\t}\n\n\t.back #field1 {\n\t\ttext-shadow: 1px 1px var(--text_shadow_color);\n\t\ttext-align: left;\n\t}\n }\n\n/*reduce motion*/\n\n@media (prefers-reduced-motion: no-preference) {\n\t:root {\n\t\t--animation_duration: 0.7s;\n\t\t--font_size_start: 0%;\n\t\t--font_size_end: var(--font_size_code);\n\t}\n}\n\n/*Needs to be improved!!*/\n@media (prefers-reduced-motion: reduce) {\n\t:root {\n\t\t--animation_duration: 0.7s;\n\t\t--font_size_start: 0%;\n\t\t--font_size_end: var(--font_size_code);\n\t}\n}\n\n/*screen width*/\n\n/*@font-face {\n\tfont-family: InterVariable;\n\tfont-style: normal;\n\tfont-weight: 100 900;\n\tfont-display: swap;\n\tsrc: url(\"_InterVariable.woff2\") format(\"woff2\");\n}*/\n/*\n@font-face {\n\tfont-family: InclusiveSans-Regular;\n\tsrc: url(\"_InclusiveSans-Regular.ttf\");\n }\n*/\n\na {\n\tcolor: var(--link_color);\n}\n\nbody .btn {\n\tborder-width: 0.1rem;\n}\n\n.buttons {\n\tfont-size: 1.3rem;\n\tbackground-color: inherit;\n\t/*Should be working anyways, but there seems to be a bug in anki desktop*/\n\tcursor: pointer;\n\tborder: var(--border_width_mid) solid grey !important;\n\tborder-radius: var(--border_radius_large) !important;\n}\n\n/*textarea, .back #field1*/\ncode, .field {\n\tfont-family: \"Ubuntu Mono\", SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ndel, ins {\n\ttext-decoration: none;\n}\n\n/*details > summary{\n\topacity: 1 !important;\n}*/\n\ndetails {\n\tfont-size: 90%;\n\ttext-align: left;\n\tmargin: auto;\n\n\t& p {\n\t\tmargin-top: 0px;\n\t\tpadding-top: 0.2rem;\n\t\tpadding-bottom: 0.2rem;\n\t}\n}\n\n/*div {\n\tTODO: reapply, but not for ankiweb.net\n\tpadding: 0.1rem 0.2rem;\n}*/\n\n/*TODO remove*/\n/*header {\n\tposition: relative;\n}*/\n\nh1 {\n\tfont-size: 110%;\n\tmargin: 0px;\n}\n\n/*makes no sense, that this is smaller than h3*/\nh2 {\n\tfont-size: 100%;\n\tmargin-top: 0.4rem;\n\tmargin-bottom: 0.3rem;\n\tpadding-top: 0rem;\n}\n\nh2#heading0{\n\tmargin-bottom: 0.02rem;\n}\n\nh3 {\n\tfont-size: 100%;\n\tmargin: 0.1rem;\n}\n\n/*TODO: style kbd symbols*/\nkbd.key {\n\t/*desktop overrides*/\n\tfont-weight: bold;\n\tbox-shadow: none;\n\tbackground: none;\n\tbackground-color: none;\n /*box-shadow: inset 0 1px 0 0 white;\n background: gradient(linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9));\n background-color: #f9f9f9;*/\n\ttext-shadow: none;\n /*text-shadow: 1px 1px 0 white;*/\n\n\t/*ankiweb overrides*/\n\tcolor: var(--font_color);\n\n /*\n border-radius: 4px;\n border: 1px solid gainsboro;\n display: inline-block;\n font-size: 15px;\n height: 15px;\n line-height: 15px;\n padding: 4px 4px;\n margin: 5px;\n text-align: center;\t\n cursor: pointer;\n cursor: hand;*/\n}\n\np {\n\tpadding: 0.1rem;\n\tborder: 0.1rem;\n\tmargin: auto;\n}\n\nsummary {\n\ttext-align: center;\n\tmargin-left: 0.2rem;\n\twidth: 5rem;\n\theight: var(-summary_height);\n}\n\nsummary span {\n\tline-height: var(--summary_height);\n}\n\ntextarea::placeholder {\n\t/*Increases contrast of placeholder text*/\n\tcolor: inherit;\n}\n\n.back #field1 {\n\t& ::selection {\n\t\tbackground-color: var(--selection_background_color);\n\t}\n}\n\n.card {\n\t/*font-family: InterVariable, InclusiveSans-Regular, arial;*/\n\tfont-family: arial;\n\tfont-size: 1.5rem;\n\tcolor: var(--font_color);\n\tbackground-color: var(--background_color);\n\ttext-align: center;\n\tmax-width: 1024px;\n\tmargin: auto;\n\tpadding: 0.01rem 0.5rem;\t\n\tscrollbar-width: none;\n\t-moz-tab-size: var(--tab_size);\n -o-tab-size: var(--tab_size);\n tab-size: var(--tab_size);\n}\n\n.deck {\n\tfont-size: 65%;\n}\n\n.description {\n\ttext-align: left;\n\tdisplay: inline-block;\n}\n\npre, code {\n\twhite-space: pre !important;\n}\n\n/*\n@container (max-width: 300px){\n\t.field{\n\t\tpadding: 0.5rem !important;\n\t}\n}\n*/\n\n.field.single_field{\n\tcontainer-type: unset;\n}\n\n.field {\n\t/*experiment 1: container query*/\n\tcontainer-type: size;\n\t\n\ttext-align: left;\n\tcolor: var(--field_color);\n\tbackground-color: var(--field_background_color); /*override background of code styling; TODO: use css scope instead of important*/\n\t/*background-color: var(--field_background_color) !important; override background of code styling; TODO: use css scope instead of important*/\n\t\n\t/*font-size: 1.3rem;*/\n\tfont-size: var(--font_size_code);\n\tborder-width: 0.2rem;\n\tborder-color: grey;\n\tborder-style: solid;\n\tborder-radius: 0.2rem;\n\t\n\tpadding: 1.5vh 1vw !important;\n\n\tmargin: 0px !important;\n\n\t/*changed*/\n\tline-height: var(--line_height_code);\n\n\t/*P-RM4 START*/\n/*unsure, if whitespace needs to be preserved with textarea, or if this is automatically done*/\n\nwhite-space: pre !important;\n\n/*P-RM4 END*/\n\n\t&::-webkit-scrollbar {\n\t\tdisplay: block;\n\t\tbackground-color: transparent !important;\n\t}\n\n\t&::-webkit-scrollbar-thumb{\n\t\tbackground-color: hsla(0, 0%, 50%, 0.4) !important;\n\t\tborder-radius: 0.1rem !important;\n\t\twidth: 1rem !important;\n\t\theight: 1rem !important;\n\t\t/*transition: all 5s;*/\n\t}\n\t\n\t&::-webkit-scrollbar-thumb:active{\n\t\tbackground-color: grey !important;\n\t}\n\n\t&::-webkit-scrollbar-corner {\n\t\tbackground-color: var(--background_color);\n\t}\n\n\t/*Purpose: scrollbar-track is transparent and code can be viewed 'through it'; not possible with opacity: 0 etc.*/\n\toverflow: overlay;\n}\n\n/*TODO: remove for prefers-reduced-motion?*/\ntextarea {\n\ttransition: border-color 1s;\n}\n\n.helper {\n\t/*text-transform: uppercase;*/\n\tpadding: 0.5 rem;\n\tmargin: 0.5 rem;\n}\n\n#lang_string{\n\ttext-transform: uppercase;\n}\n\n.hint {\n\tfont-size: 85%;\n\tcolor: var(--hint_color);\n}\n\n/*.logo img {\n \t/*max-height: 1em;\n\tmax-width: auto;\n margin: 0px;\n\tmargin-left: 0.5ex;\n padding: 0px;\n\tposition: absolute;\n\ttop: 50%;\n\ttransform: translate(0, -50%);\n}*/\n\n.logo img {\n\tmax-height: 1em;\n\tposition: relative;\n\tinset-block-start: 0.4ex;\n\tinset-inline-start: 0.2ex;\n\t/*top: 0.4ex;\n\tleft: 0.2ex;*/\n}\n\n\n\n.single_field{\n\tmax-width: 600px;\n\tmin-height: 30vh;\n\tmax-height: 50vh;\n\theight: auto;\n\tmargin: 1rem auto !important;\n}\n\n/* TODO: refine button style\n\t- shadow + colors\n\t- center button symbol vertically\n*/\n.stylized_button {\n\twhite-space: nowrap;\n\tfont-size: 70%;\n\tborder: 0px solid grey;\n\tborder-radius: 0.6em;\n\tmargin-top: -10px;\n\tpadding-top: 0.1em;\n\tpadding-bottom: 0.1em;\n\tpadding-left: 0.4em;\n\tpadding-right: 0.4em;\n\tbackground-color: var(--controls_background_color);\n\tbox-shadow: 0em 0em 0.05em 0.03em rgba(124, 124, 124, 0.853);\n}\n\n.subdeck {\n\tfont-size: 70%;\n\twidth: 50vw;\n\tmargin: auto;\n}\n\n::-webkit-scrollbar {\n\tdisplay: none;\n}\n\n::-webkit-scrollbar-thumb:hover {\n\tcursor: grab;\n}\n\n.mobile::-webkit-resizer{\n\tdisplay: none;\n}\n\n/*P-RM8 START*/\n/*\nins, del, .correct {\n\ttext-decoration-thickness: 0.15rem;\n\ttext-decoration-line: underline;\n}\n\n.correct {\n\ttext-decoration-style: solid;\n}\n\nins {\n\ttext-decoration-style: wavy;\n}\n\ndel {\n\ttext-decoration-style: dotted;\n}\n*/\n/*P-RM8 END*/\n\n/*P-RM9 START*/\n/*\nins, del, .correct {\n\toutline: 2px transparent;\n\ttransition: outline var(--animation_duration);\n\tmargin: 2px;\n\t\n\tletter-spacing: var(--letter_spacing);\n\n\tbox-decoration-break: clone;\n\t-webkit-box-decoration-break: clone;\n}\n\ntextarea, .back #field1{\n\tline-height: calc(100% + 4px);\n\tletter-spacing: var(--letter_spacing);\n}\n\nins {\n\toutline-style: dashed;\n}\n\ndel {\n\toutline-style: dotted;\n}\n\n.correct {\n\toutline-style: solid;\n}\n\n.correct:hover, ins:hover, del:hover{\n\toutline-color: inherit;\n}\n\n.outline .correct, .outline ins, .outline del{\n\toutline-color: inherit;\n}\n*/\n/*P-RM9 END*/\n\n/*P-RM10 START*/\n/*\ndel, ins {\n\tborder: 5px dotted transparent;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n*/\n/*P-RM10 END*/\n\n.correct, .inserted {\n\tanimation: markup_diff;\n\tanimation-duration: var(--animation_duration);\n\tanimation-fill-mode: forwards;\n\tanimation-timing-function: ease-in-out;\n}\n\n.deleted {\n\tanimation: markup_diff, omission_incorrect;\n\tanimation-duration: var(--animation_duration);\n\tanimation-fill-mode: forwards;\n\tanimation-timing-function: ease-in-out;\n}\n\n.correct {\n\t--animation-color: var(--correct_insertion_color);\n}\n\n.deleted {\n\t--animation-color: var(--incorrect_omission_color);\n}\n\n.inserted {\n\t--animation-color: var(--incorrect_insertion_color);\n}\n\n#footer1 {\n\ttext-align: right;\n\tfont-size: 65%;\n\tpadding-right: 1vw;\n\tmargin-top: 0.3em;\n}\n\n.mobile #footer1 {\n\tfont-size: 75%;\n\tmargin-top: 0.4em;\n}\n\n#tooltip {\n\t& .correct, & .inserted, & .deleted {\n\t\tanimation-duration: 0s;\n\t}\n\tpadding-top: 1rem;\n}\n\n/*animation*/\n@keyframes markup_diff {\n\tfrom {background-color: transparent;}\n\tto {background-color: var(--animation-color);}\n}\n\n@keyframes omission_incorrect {\n\tfrom {\n\t\tfont-size: var(--font_size_start);\n\t}\n\tto {\n\t\tfont-size: var(--font_size_end);\n\t}\n}\n\n/*grid*/\n/* TODO: fix Bug at transition from 599 px to 600,5 px to 601px screen width*/\n.grid_container {\n\tdisplay: grid;\n\tgrid-column-gap: 2vw;\n\tmin-height: 70vh;\n\t/*con \"height\": text box switches size when keyboard appears or dissapears on mobile*/\n}\n\nhtml:has(link[href=\"https://ankiuser.net/logo.png\"]){\n\t& .grid_container{\n\t\tmin-height: 45vh;\n\t}\n}\n\n.grid_item_1, .grid_item_2 {\n\tdisplay: contents;\n\t/*TODO rework!*/\n\tmax-height: 800px;\n}\n\n@media only screen and (min-width: 600.01px){\n\t\n\t.grid_container {\n\t\t/*grid-template-columns: repeat(2, minmax(0, 1fr));*/\n\n\t/*\tgrid-template-rows: 0.05fr 0.95fr 0.01fr;*/\n\tgrid-template-rows: 0.05fr 1fr 0.01fr;\n\tgrid-template-columns: 1fr 1fr;\n\t}\n\n\t#heading1 {\n\t\tgrid-column: 1;\n\t\tgrid-row: 1;\n\t}\n\n\t#field1 {\n\t\tgrid-column: 1;\n\t\tgrid-row: 2;\n\t}\n\n\t#footer1 {\n\t\tgrid-column: 1;\n\t\tgrid-row: 3;\n\t}\n\n\t#heading2 {\n\t\tgrid-column: 2;\n\t\tgrid-row: 1;\n\t}\n\n\t#field2 {\n\t\tgrid-column: 2;\n\t\tgrid-row: 2;\n\t}\n\n\t#footer2 {\n\t\tgrid-column: 2;\n\t\tgrid-row: 3;\n\t}\n}\n\n@media only screen and (min-width: 600.01px){\n\t.grid_container_2 {\n\t\tgrid-template-rows: 1fr;\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n\n\t.grid_item_a {\n\t\tgrid-column: 1;\n\t\tgrid-row: 1;\n\t}\n\n\t.grid_item_b {\n\t\tgrid-column: 2;\n\t\tgrid-row: 1;\n\t}\n}\n\n/*TODO: consider moving this back to a separate file,\nor at least make it FrontSide / BackSide specific\nmaybe make some performance tests, if it actually matters*/\n\n@media only screen and (max-width: 600px) {\n\t.grid_container {\n\t /*grid-template-rows: repeat(6, minmax(0, 1fr));*/\n\t grid-template-rows: 0.1fr 3fr 0.1fr 0.1fr 3fr 0.1fr;\n\t}\n \n\t#heading1 {\n\t grid-column: 1;\n\t grid-row: 1;\n\t}\n \n\t#field1 {\n\t grid-column: 1;\n\t grid-row: 2;\n\t}\n \n\t#footer1 {\n\t grid-column: 1;\n\t grid-row: 3;\n\t}\n \n\t#heading2 {\n\t grid-column: 1;\n\t grid-row: 4;\n\t margin-top: 0.01rem; /*override default heading margin*/\n\t}\n \n\t#field2 {\n\t grid-column: 1;\n\t grid-row: 5;\n\t}\n \n\t#footer2 {\n\t grid-column: 1;\n\t grid-row: 6;\n\t}\n }\n \n @media only screen and (max-width: 600px) {\n\t.grid_container_2 {\n\t grid-template-rows: 1fr 1fr;\n\t grid-template-columns: 1fr;\n\t}\n \n\t.grid_item_a {\n\t grid-column: 1;\n\t grid-row: 1;\n\t}\n \n\t.grid_item_b {\n\t grid-column: 1;\n\t grid-row: 2;\n\t}\n }\n\n/*TODO: extend to browser*/\n:not(.mobile).card.night_mode{\n\tbackground-color: black;\n}\n\n/*mobile*/\n.mobile {\t\n\t& div {\n\t\tpadding: 0.02rem;\n\t}\n\t\n\t& h2 {\n\t\tmargin: 0.5rem;\n\t\tpadding-top: 0.5rem;\n\t}\n\n\t& h2#heading0 {\n\t\tpadding-top: 0rem;\n\t}\n\n\t& summary{\n\t\twidth: 4.5rem;\n\t}\n\t\n\t& .field {\n\t\tborder: 0.15rem solid grey;\n\t\tborder-radius: 0.15rem;\n\n\t\tpadding: 0.5rem !important;\n\t\tline-height: var(--line_height_code);\n\t}\n\t\n\t& .card {\n\t\tpadding: 0rem;\n\t\tfont-size: 1.1rem;\n\t}\n\n\t& .helper {\n\t\tpadding-top: 1rem;\n\t}\n\n\t/*markup*/\n\t& .correct, & .inserted, & .deleted {\n\t\tanimation: markup_diff;\n\t\tanimation-duration: var(--animation_duration);\n\t\tanimation-fill-mode: forwards;\n\t\tanimation-timing-function: ease-in-out;\n\t}\n}\n\n.token.tab:not(:empty),\n.token.cr,\n.token.lf,\n.token.space {\n\tposition: relative;\n}\n\n.token.tab:not(:empty)::before,\n.token.cr::before,\n.token.lf::before,\n.token.space::before {\n\tcolor: #808080;\n\topacity: 0.6;\n\tposition: absolute;\n}\n\n.token.tab:not(:empty)::before {\n\tcursor: text;\n\tcontent: '\\2192'; /*→*/\n\t/*content: '\\21A6'; /*↦*/\n\t/*content: '\\21E5'; /*⇥*/\n\t/*content: '\\27F6'; /*⟶*/\n\t/*content: '\\27FC'; /*⟼*/ /*needs tab-size > 2 to not overlap*/\n\t\n\t/*Supplemental Arrows-C*/\n\t/*content: '\\1F802'; /*🠂*/\n\t/*content: '\\🡒';\n\t/*content: '\\1F806'; /*🠆*/\n\t\n\t/*vertically center unicode arrow on line box\n\tcon: This will make ::selection of the code look bad*/\n\t/*position: relative;\n\tbottom: 0.16em;\n\tleft: 0ex;*/\n}\n\n.token.cr::before {\n\tcontent: '\\240D';\n}\n\n.token.crlf::before {\n\tcontent: '\\240D\\240A';\n}\n.token.lf::before {\n\tcontent: '\\240A';\n}\n\n.token.space::before {\n\tcontent: '\\00B7';\n\tcursor: text;\n}\n\n.token.punctuation.brace-hover,\n.token.punctuation.brace-selected {\n\toutline: solid 1px;\n}\n\n/*Override light theme shadows*/\n.token {\n\t/*text-shadow: none !important; /*override light theme text shadow*/\n\t/*background: none !important; /*override light theme background*/\n}\n\nbody code[class*=language-], body pre[class*=language-] {\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\n\ttext-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n \n\t-moz-tab-size: var(--tab_size);\n -o-tab-size: var(--tab_size);\n tab-size: var(--tab_size);\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n\n\t/*line-height: 1.5;*/\n\tline-height: var(--line_height_code);\n\n\t/*font-size: 1em;*/\n\tfont-size: var(--font_size_code);\n}\n\n/* TODO: improve for different themes*/\n.rainbow-braces .token.punctuation.brace-level-1,\n.rainbow-braces .token.punctuation.brace-level-5,\n.rainbow-braces .token.punctuation.brace-level-9 {\n\tcolor: #E50;\n\t/*color: rgb(223, 78, 0);*/\n\topacity: 1;\n}\n.rainbow-braces .token.punctuation.brace-level-2,\n.rainbow-braces .token.punctuation.brace-level-6,\n.rainbow-braces .token.punctuation.brace-level-10 {\n\tcolor: #0B3;\n\t/*color: rgb(0, 159, 42);*/\n\topacity: 1;\n}\n.rainbow-braces .token.punctuation.brace-level-3,\n.rainbow-braces .token.punctuation.brace-level-7,\n.rainbow-braces .token.punctuation.brace-level-11 {\n\tcolor: #26F;\n\t/*color: rgb(30, 89, 226);*/\n\topacity: 1;\n}\n.rainbow-braces .token.punctuation.brace-level-4,\n.rainbow-braces .token.punctuation.brace-level-8,\n.rainbow-braces .token.punctuation.brace-level-12 {\n\tcolor: #E0E;\n\t/*color: rgb(203, 0, 203);*/\n\topacity: 1;\n}\n\n/*theme specific overrides*/\nbody pre[class*=language-] {\n padding: .4em .8em;\n /*original value: margin: .5em 0;*/\n\tmargin: 0;\n}\nbody code[class*=language-] {\n\tbox-shadow: none;\n}\n\n.highlighted code{\n\topacity: 1 !important;\n}",
"flds": [
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arimo",
"id": null,
"name": "Code",
"ord": 0,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"single line": false,
"size": 20,
"sticky": true,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arial",
"id": null,
"name": "Hint",
"ord": 1,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"size": 20,
"sticky": false,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arimo",
"id": null,
"name": "Description",
"ord": 2,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"single line": false,
"size": 20,
"sticky": true,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arial",
"id": null,
"name": "Further Description",
"ord": 3,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"size": 20,
"sticky": false,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arimo",
"id": null,
"name": "Language",
"ord": 4,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"single line": false,
"size": 20,
"sticky": true,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arial",
"id": null,
"name": "Logo",
"ord": 5,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"size": 20,
"sticky": false,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arial",
"id": null,
"name": "Programming-Idioms-Number",
"ord": 6,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"size": 20,
"sticky": false,
"tag": null
},
{
"collapsed": false,
"description": "",
"excludeFromSearch": false,
"font": "Arial",
"id": 5496814523892158703,
"name": "Source",
"ord": 7,
"plainText": false,
"preventDeletion": false,
"rtl": false,
"size": 20,
"sticky": false,
"tag": null
}
],
"latexPost": "\\end{document}",
"latexPre": "\\documentclass[12pt]{article}\n\\special{papersize=3in,5in}\n\\usepackage[utf8]{inputenc}\n\\usepackage{amssymb,amsmath}\n\\pagestyle{empty}\n\\setlength{\\parindent}{0in}\n\\begin{document}\n",
"latexsvg": false,
"name": "Multi-Line-Typing-Anki-Template",
"nb column": 1,
"req": [
[
0,
"any",
[
0,
2,
4,
5
]
],
[
1,
"any",
[
0,
4,
5
]
],
[
2,
"any",
[
2,
4,
5
]
]
],
"sortf": 0,
"tags": [],
"tmpls": [
{
"afmt": "<style>\n\tcode {\n\t\topacity: 0 !important;\n\t\ttransition: opacity 0.1s;\n\t}\n</style>\n\n<!-- <div class=\"subdeck\">{{Subdeck}}</div> -->\n\n<div class=\"back\">\n\t<header>\n\t\t<div>\n\t\t\t<h1 class=\"heading\">\n\t\t\t\t{{Subdeck}}\n\t\t\t\t<!--{{Deck}}-->\n\t\t\t\t<span class=\"logo\">\n\t\t\t\t\t{{Logo}}\n\t\t\t\t</span>\n\t\t\t</h1>\n\t\t</div>\n\t</header>\n\n\t<main>\n\t<div><h2 class=\"heading\" id=\"heading0\">Description</h2></div>\n\n\t<div class=\"description\">{{Description}}</div>\n\n\t<div class=\"grid_container\">\n\t\t<div class=\"grid_item_1\">\n\t\t\t<h2 class=\"heading\" id=\"heading1\">Your Solution</h2>\n\t\t\t<div id=\"field1\" class=\"field\"></div>\n\t\t\t<div id=\"footer1\" class=\"auto_save_text\">Answer is auto-saved.</div>\n\t\t</div>\n\t\t<div class=\"grid_item_2\">\n\t\t\t<h2 class=\"heading\" id=\"heading2\">Suggested Solution</h2>\n\n\t\t\t<!--<pre id=\"field2\" class=\"field line-numbers next_to_typefield\"> -->\n\t\t\t<!-- NOTE: indenting the <code> tag or putting a html comment will actually affect the way it is displayed. Seems to be some kind of bug, either in my code or in prism.js -->\n\t\t\t<pre id=\"field2\" class=\"field next_to_typefield\">\n<code class=\"language-{{Language}} match-braces rainbow-braces\" id=\"answerText\">{{Code}}</code>\n\t\t\t</pre>\n\t\t<div id=\"footer2\"></div>\n\t\t</div>\n\t</div>\n\n\t<details>\n\t<summary id =\"summary_button\" class=\"buttons\"><span>Info</span></summary>\n\t<div class=\"grid_container_2\" id=\"tooltip\">\n\t\t<div class=\"grid_item_a\">\n\t\t\t<p><h3 class=\"heading\">Submitting your answer</h3></p>\n\t\t\t<p>Your answer will be saved automatically on every keystroke, including deletions.</p>\n\t\t\t<p>To exit the text field, press <kbd class=\"key\">Esc</kbd> or <kbd class=\"key\">Ctrl</kbd> (Anki Desktop) or click outside the text area.</p>\n\t\t\t<p>To compare your answer with the suggested solution, press <kbd class=\"key\">Space</kbd> or click on Anki's <span class=\"stylized_button\">Show Answer</span> button.</p>\n\t\t</div>\n\n\t\t<div class=\"grid_item_b\">\n\t\t\t<p><h3 class=\"heading\">Markup Meaning</h3></p>\n\t\t\t<p><span class=\"correct\" id=\"correct_h\">Correct Characters</span> <span id=\"correct_d\">Text marked like this was typed by you into the text field, and does appear in the suggested Solution.</span></p>\n\t\t\t<p><del class=\"deleted\" id=\"deleted_h\">Missed Characters</del> <span id=\"deleted_d\">Text marked like this was <b>not</b> typed by you into the text field, but does appear in the suggested Solution.</span></p>\n\t\t\t<p><ins class=\"inserted\" id=\"inserted_h\">False Characters</ins> <span id=\"inserted_d\">Text marked like this was typed by you into the text field, but does <b>not</b> appear in the suggested Solution.</span></p>\n\t\t</div>\n\n\t\t<div>\n\t\t<p><h3>Further Info</h3></p>\n\t\t<p><a href=\"https://github.com/ValentinSchwind/Multi-Line-Typing-Anki-Template\">github.com/ValentinSchwind/Multi-Line-Typing-Anki-Template</a></p>\n\t\t</div>\n\t</div>\n\t</details>\n\t</main>\n</div>\n\n<script>\n\tvar sampleAnswer = document.getElementById(\"answerText\");\n\tvar sampleAnswerInitialContent = sampleAnswer.innerHTML;\n\tconsole.log(sampleAnswerInitialContent);\n\tvar sampleAnswerContentModifiedWhitespace;\n\tvar sampleAnswerContentUnescaped;\n\n\t/*Replace some html characters; TODO -> extensive*/\n\n\tfunction modifyWhitespace (){\n\t\tsampleAnswerContentModifiedWhitespace = sampleAnswerInitialContent\n\t\t\t.replace(/(<br>)/gi, \"\\n\")\n\t\t\t.replace(/\\ /gi, ' ');\n\t\t\n\t\tsampleAnswer.innerHTML = sampleAnswerContentModifiedWhitespace;\n\t}\n\n\tmodifyWhitespace();\n\n\tfunction unescapeHTML(){\n\t\tsampleAnswerContentUnescaped = sampleAnswerContentModifiedWhitespace\n\t\t\t.replace(/\\</gi, '<')\n\t\t\t.replace(/\\>/gi, '>');\n\t}\n\n\tunescapeHTML();\n\n\t/*\n\t'&': '&',\n\t'<': '<',\n\t'>': '>',\n\t'\"': '"',\n\t\"'\": ''',\n\t'/': '/',\n\t'`': '`',\n\t'=': '='\n\t\t.replace(/(<\\/p>)/gi, \"\\n\")*/\n\t\t/*.replace(/(<(.*)>)/gi, \"\")*/\n\n\t/*copied from https://stackoverflow.com/a/53744331/20453811 */\n\t/*Definition*/\n\n\n\n\t/*Todo: differentiate between an empty string and remove.Item*/\n\tvar field = document.getElementById(\"field1\");\n\t\n\t/*TODO 2: can be delted if variables survive editing during review*/\n\t/*TODO 1: can be changed to variable instead of sessionStorage when the new reviewer is used in AnkiDroid\n\t\t\t\tSee: https://github.com/ankidroid/Anki-Android/issues/14302*/\n\tvar swap = sessionStorage.getItem('input_transfer_front');\n\t/*var swap = new_transfer_variable;*/\n\tsessionStorage.removeItem('input_transfer_front');\n\tif (swap!==null){\n\t\tsessionStorage.setItem('input_transfer_back',swap);\n\t}else{\n\t\tconsole.log('not null!');\n\t}\n\n\tvar fieldContent = sessionStorage.getItem(\"input_transfer_back\");\n\n\t/*does probably not execute*/\n\t/*todo: remove*/\n\tif(sessionStorage.getItem('input_transfer_back')==null){\n\n\t\tvar temp = sessionStorage.getItem('input_transfer_back');\n\n\t\tconsole.log(temp);\n\t\t\tif (temp==null){\n\t\t\t\ttemp='';\n\t\t\t}\n\n\t\tsessionStorage.setItem(\"input_transfer_back\", temp);\n\n\t\tsessionStorage.removeItem('input_transfer_back');\n\t}else{\n\t\tconsole.log('does not execute');\n\t}\n\nfunction loadScript(scriptUrl) {\n\tconst script = document.createElement('script');\n\tscript.src = scriptUrl;\n\tdocument.body.appendChild(script);\n\t\n\treturn new Promise((res, rej) => {\n\t\tscript.onload = res;\n\t\tscript.onerror = rej;\n\t});\n}\n\n/*Call diff version of Diff_match_patch.js; todo: treeshake + rename*/\nloadScript('_diff_match_patch.js')\n\t.then(() => {\n\t\tconsole.log('Diff_match_patch loaded.');\n\t\tvar dmp = new diff_match_patch();\n\t\t/*fieldContent already uses new variable*/\n\t\tvar diff = dmp.diff_main(sampleAnswerContentUnescaped, fieldContent); \n\t\tdmp.diff_cleanupSemantic(diff);\n\t\tvar ds = dmp.diff_prettyHtml(diff);\n\t\tfield.innerHTML = ds;\n\t})\n\t.catch(() => {\n\t\tconsole.error('Diff_match_patch Loading failed.');\n\t});\n\n\t/*use*/\n\t/*loadScript('_prism.min_with_line_numbers_addon.js')*/\n\tloadScript('_prism.min.js')\n\t.then(() => {\n\t\tconsole.log('Script loaded!');\n\t\tPrism.plugins.autoloader.languages_path = '';\n\t\tPrism.highlightElement(sampleAnswer, false, mark_as_highlighted());\n\t})\n\t.catch(() => {\n\t\tconsole.error('Script loading failed! Handle this error');\n\t});\n\n\t/*used at the very end of the css style-sheet*/\n\tfunction mark_as_highlighted(){\n\t\tdocument.getElementsByTagName(\"body\")[0].classList.add(\"highlighted\");\n\t}\n</script>\n\n<!--NOTE: if you include the attribute \"disabled\" they are not loaded in time to be called by document.getelementByID\nand therefore accessing them via js will likely fail-->\n\n<link rel=\"stylesheet\" href=\"_prism.min.css\" id=\"light_theme\">\n<link rel=\"stylesheet\" href=\"_prism-gruvbox-dark.css\" id=\"dark_theme\">\n\n<script>\nfunction createStylesheet (new_name, new_id) {\n var styles = document.createElement('link');\n styles.rel = 'stylesheet';\n styles.type = 'text/css';\n styles.media = 'screen';\n styles.href = `${new_name}`;\n styles.id = `${new_id}`;\n document.getElementsByTagName('head')[0].appendChild(styles);\n};\n\t\n\t/*Darkmode switcher. Done via JS to support both prefers-color-scheme of ankiweb.net and class changes of desktop app\n\tTODO: try out if this can be done withouth JS*/\n\tvar script_name;\n\t/*var darkTheme = document.getElementById(\"dark_theme\");\n\tvar lightTheme = document.getElementById(\"light_theme\");*/\n\tvar darkModePreference = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\tvar root = document.getElementsByTagName(\"html\")[0];\n\n\tfunction determineDarkMode (){\n\t\t/*if (root.classList.contains(\"night-mode\") == true){\n\t\t\tvar root_theme = \"dark\";\n\t\t}*/\n\t\tvar root_data_bs_theme = root.getAttribute(\"data-bs-theme\");\n\t\tvar root_data_darkreader_scheme = root.getAttribute(\"data-darkreader-scheme\");\n\t\tif (document.body.classList.contains(\"nightMode\" || \"night_mode\")){\n\t\t\tvar body_theme = \"dark\";\n\t\t}\n\n\t\tif (root_data_bs_theme == \"dark\" || root_data_darkreader_scheme == \"dark\" || body_theme == \"dark\"){\n\t\t\tvar app_specific_preference = \"dark\";\n\t\t}\n\t\telse if(root_data_bs_theme == \"light\" || root_data_darkreader_scheme == \"light\"){\n\t\t\tvar app_specific_preference = \"light\";\n\t\t}\n\n\t\tif (app_specific_preference ==\"dark\"){\n\t\t\tvar preference1 = \"dark\";\n\t\t}\n\t\telse if ((darkModePreference.matches == true) && (app_specific_preference != \"light\") == true){\n\t\t\tvar darkModePreferred = true;\n\t\t\tvar preference1 = \"dark\";\n\t\t}\n\t\telse{\n\t\t\tvar preference1 = \"light\";\n\t\t}\n\n\t\treturn preference1;\n\t}\n\n\tfunction switchStylesheet(preference){\n\t\tif (preference == \"dark\"){\n\t\t\tvar old_stylesheet = document.getElementById(\"light_theme\");\n\t\t\tif (old_stylesheet != null && old_stylesheet != undefined){\n\t\t\t\told_stylesheet.disabled = true; /*is this even necessary?*/\n\t\t\t\told_stylesheet.parentNode.removeChild(old_stylesheet);\n\t\t\t}\n\t\t\tvar new_stylesheet = document.getElementById(\"dark_theme\");\n\t\t\tif (new_stylesheet == null | new_stylesheet == undefined){\n\t\t\t\tcreateStylesheet (\"_prism-gruvbox-dark.css\", \"dark_theme\");\n\t\t\t}\n\t\t\tconsole.log(\"switch to dark\");\n\t\t}\n\t\telse if (preference == \"light\") {\n\t\t\tvar old_stylesheet = document.getElementById(\"dark_theme\");\n\t\t\tif (old_stylesheet != null && old_stylesheet != undefined){\n\t\t\t\told_stylesheet.disabled = true; /*is this even necessary?*/\n\t\t\t\told_stylesheet.parentNode.removeChild(old_stylesheet);\n\t\t\t}\n\t\t\tvar new_stylesheet = document.getElementById(\"light_theme\");\n\t\t\tif (new_stylesheet == null | new_stylesheet == undefined){\n\t\t\t\tcreateStylesheet (\"_prism.min.css\", \"light_theme\");\n\t\t\t}\n\t\t\tconsole.log(\"switch to light\");\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"Error! No preference passed: \" + preference);\n\t\t}\n\t}\n\n\tfunction applyStylesheet(){\n\t\tvar preference = determineDarkMode();\n\t\t/*app_specific_preference = document.getElementsByTagName(\"html\")[0].getAttribute(\"data-bs-theme\");*/\n\t\t/*determineDarkMode();*/\n\t\tswitchStylesheet(preference);\n\t}\n\tapplyStylesheet();\n</script>\n\n<script defer>\n\tdarkModePreference.addEventListener(\"change\", function (e) {\n\t\tapplyStylesheet();\n\t\tconsole.log(\"dark mode preference changed: \\n\" + darkModePreference.matches);\n\t\tconsole.log(determineDarkMode());\n\t});\n\n\t/*relies on class change as proxy, could maybe be adapted to data-bs-theme*/\n\tfunction onClassChange(node, callback) {\n \t\tlet lastClassString = node.classList.toString();\n\n \t\tconst mutationObserver = new MutationObserver((mutationList) => {\n\t\t\tfor (const item of mutationList) {\n\t\t\t\tif (item.attributeName === \"class\") {\n\t\t\t\t\tconst classString = node.classList.toString();\n\t\t\t\t\tif (classString !== lastClassString) {\n\t\t\t\t\t\tcallback(mutationObserver);\n\t\t\t\t\t\tlastClassString = classString;\n\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n \t\t});\n\n \t\tmutationObserver.observe(node, { attributes: true });\n\n \t\treturn mutationObserver;\n\t}\n\tonClassChange(document.body, applyStylesheet);\n</script>",
"bafmt": "",
"bfont": "",
"bqfmt": "",
"bsize": 0,
"did": null,
"id": null,
"name": "Card 1 (TYPE)",
"ord": 0,
"qfmt": "<div class=\"front\">\n\t<header>\n\t\t<div>\n\t\t\t<h1 class=\"heading\">\n\t\t\t\t{{Subdeck}}\n\t\t\t\t<!--{{Deck}}-->\n\t\t\t\t<span class=\"logo\">\n\t\t\t\t\t{{Logo}}\n\t\t\t\t</span>\n\t\t\t</h1>\n\t\t</div>\n\t</header>\n\n\t<main>\n\t\t<div>\n\t\t\t<h2 class=\"heading\" id=\"heading0\">Description</h2>\n\t\t</div>\n\n\t\t<div class=\"description\">\n\t\t\t{{Description}}\n\t\t</div>\n\n\t<style>\n\t\t#field2 code {\n\t\t\tdisplay: none !important;\n\t\t}\n\t</style>\n\n\t<div class=\"grid_container\">\n\t\t<div class=\"grid_item_1\">\n\t\t\t<h2 class=\"heading\" id=\"heading1\"><label for=\"field1\">Your Solution</label></h2>\n\t\t\t<textarea id=\"field1\" class=\"field\" required placeholder=\"Type here ...\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\"></textarea>\n\t\t\t<div id=\"footer1\" class=\"auto_save_text\">Answer is auto-saved.</div>\n\t\t</div>\n\t\t<div class=\"grid_item_2\">\n\t\t\t<h2 class=\"heading\" id=\"heading2\">Suggested Solution</h2>\n\t\t\t<pre id=\"field2\" class=\"field\"><code class=\"language-{{Language}}\" id=\"answerText\">{{Code}}</code></pre>\n\t\t<div id=\"footer2\"></div>\n\t\t</div>\n\t</div>\n\n\t<details>\n\t<summary id =\"summary_button\" class=\"buttons\"><span>Info</span></summary>\n\t<div class=\"grid_container_2\" id=\"tooltip\">\n\t\t<div class=\"grid_item_a\">\n\t\t\t<p><h3 class=\"heading\">Submitting your answer</h3></p>\n\t\t\t<p>Your answer will be saved automatically on every keystroke, including deletions.</p>\n\t\t\t<p>To exit the text field, press <kbd class=\"key\">Esc</kbd> or <kbd class=\"key\">Ctrl</kbd> (Anki Desktop) or click outside the text area.</p>\n\t\t\t<p>To compare your answer with the suggested solution, press <kbd class=\"key\">Space</kbd> or click on Anki's <span class=\"stylized_button\">Show Answer</span> button.</p>\n\t\t</div>\n\n\t\t<div class=\"grid_item_b\">\n\t\t\t<p><h3 class=\"heading\">Markup Meaning</h3></p>\n\t\t\t<p><span class=\"correct\" id=\"correct_h\">Correct Characters</span> <span id=\"correct_d\">Text marked like this was typed by you into the text field, and does appear in the suggested Solution.</span></p>\n\t\t\t<p><del class=\"deleted\" id=\"deleted_h\">Missed Characters</del> <span id=\"deleted_d\">Text marked like this was <b>not</b> typed by you into the text field, but does appear in the suggested Solution.</span></p>\n\t\t\t<p><ins class=\"inserted\" id=\"inserted_h\">False Characters</ins> <span id=\"inserted_d\">Text marked like this was typed by you into the text field, but does <b>not</b> appear in the suggested Solution.</span></p>\n\t\t</div>\n\n\t\t<div>\n\t\t<p><h3>Further Info</h3></p>\n\t\t<p><a href=\"https://github.com/ValentinSchwind/Multi-Line-Typing-Anki-Template\">github.com/ValentinSchwind/Multi-Line-Typing-Anki-Template</a></p>\n\t\t</div>\n\t</div>\n\t\n\t</details>\n\n\t\n\t</main>\n</div>\n\n<script>\nsessionStorage.removeItem(\"input_transfer_back\");\n\nvar field = document.getElementById(\"field1\");\nvar field_has_focus;\n\nvar fieldContent;\n\n/*determine current platform*/\nvar current_platform = \"\";\nvar anki_logo_link = document.getElementsByTagName('link')[0];\nvar anki_logo_link_href = anki_logo_link.href;\n\nif (anki_logo_link_href==\"https://ankiuser.net/logo.png\"){\n\tcurrent_platform = \"ankiweb.net\";\n}\n\n/*get answer button on ankiweb.net*/\nif (current_platform == \"ankiweb.net\"){\n\tvar parentDOM = document.getElementById(\"ansarea\");\n\tvar answer_button_ankiweb = parentDOM.getElementsByClassName(\"btn-lg\")[0];\n}\n\nif (field) {\n\tfield.focus();\n}\n\n/*Re insert input_transfer_front, if page is reloaded. input_transfer_front is removed on the back side, so it will not be inserted from the previous card (exeption: back template is not run)*/\n/*changed undefinde to null*/\n/*TODO: refactor to just use variables, since those are not reset by Anki anymore (at least on Desktop)*/\nif(typeof sessionStorage.getItem(\"input_transfer_front\") !== null){\n\tfield.value = sessionStorage.getItem(\"input_transfer_front\");\n\tconsole.log(\"reinsert after card edit\");\n}else{\n\tconsole.log(\"no reinsert\");\n}\n\nif (new_transfer_variable in window){\n\tconsole.log(\"variable has been declared already\");\n}else{\n\tconsole.log(\"variable has NOT been declared already\");\n}\n\nif(typeof new_transfer_variable !== null){\n\t/*field.value = new_transfer_variable;*/\n\tconsole.log(\"reinsert after card edit\");\n}else{ /*TODO:: this else could be deleted*/\n\tconsole.log(\"no reinsert\");\n\tvar new_transfer_variable;\n}\n\n/*whitespace handling*/\nvar ws_style = \"tab\"; /*choose \"space\" or \"tab\"*/\nif (ws_style == \"space\"){\n\tvar ws_char = \" \";\n\tvar ws_count = 4; /*how many spaces should be inserted when pressing tab?*/\n}\nelse if (ws_style == \"tab\"){\n\tvar ws_char = '\\t';\n\tvar ws_count = 1; /*how many tabs should be inserted when pressing tab*/\n}\n\n\n/*var whitespace_count = 4;\nvar custom_whitespace =*/\n\n\n/*Change default action of tab key from moving focus to indenting; potential accessibility concerns*/\nfield.addEventListener('keydown', function(e) {\n\tif (e.key == 'Tab') {\n\t\te.preventDefault();\n\n\t\tvar start = this.selectionStart;\n\t\tvar end = this.selectionEnd;\n\n\t\t/*set textarea value to: text before caret + tab + text after caret*/\n\t\t/*this.value = this.value.substring(0, start) + \" \" + this.value.substring(end);*/\n\n\t\tthis.value = this.value.substring(0, start) + ws_char + this.value.substring(end);\n\n\t\t/*put caret at right position again*/\n\t\tthis.selectionStart = this.selectionEnd = start + ws_count;\n\t\t/*this.selectionStart = this.selectionEnd = start + whitespace_count;*/\n\n\t\t/*Move into separate function because of dublication*/\n\t\tfieldContent = field.value;\n\n\t\tsessionStorage.setItem(\"input_transfer_front\",fieldContent);\n\n\t\tnew_transfer_variable = fieldContent;\n \t}\n\t/*Exit type field when Ctrl Key is pressed*/\n\t/*for some reason, this works on ankiweb.net; but not: document.body.onkeyup = function(e) {...}*/\n\tif (e.key == \"Control\" ||\n\t\te.code == \"ControlLeft\" ||\n\t\te.code == \"ControlRight\" ||\n\t\te.keyCode == 17) {\n\t\tconsole.log(\"ctrl down\")\n\t\t/*move focus off the textarea element, so that spacebar can be pressed to show the answer; potentially remove in favor of passing focus to next element*/\n\t\tdocument.activeElement.blur();\n \t}\n});\n\n/*Save input every time the input event fires, i.e. every time a (printable charakter (?)) key is pressed while the <textarea> element is focused*/\nfield.addEventListener('input', function(e) {\n\tfieldContent = field.value;\n\tsessionStorage.setItem(\"input_transfer_front\",fieldContent);\n\t\n\tnew_transfer_variable = fieldContent;\n});\n\n/*check, if no input has been provided, and if so, provide an empty string as input*/\n/*not sure, if this works*/\n/*can't this be just replaced with an emty string? -> potential problem: is empty string same as null?*/\nvar helper_front = sessionStorage.getItem('input_transfer_front');\n\nif (helper_front==null){\n\tsessionStorage.setItem('input_transfer_front','');\n\tconsole.log(\"No Input. Empty string provided as dummy.\");\n}\n\n/*as of April 2025 still necessary on ankiweb.net to use spacebar to show anser*/\nif (current_platform == \"ankiweb.net\"){\n\tdocument.body.onkeyup = function(e) {\n\t\tif (e.key === ' ' ||\n\t\t\te.key === 'Spacebar' ||\n\t\t\te.keyCode == 32){\n\t\t\t\n\t\t\tfield_has_focus = (document.activeElement === field);\n\t\t\t\n\t\t\tif(field_has_focus == false){\n\t\t\t\tanswer_button_ankiweb.click();\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*TODO: check if this works on all platforms*/\ndocument.getElementById(\"summary_button\").addEventListener('click', ()=>{\n console.log(\"click\");\n /*window.scrollTo(0, document.body.scrollHeight);*/\n setTimeout(() => {\n\t/*testdiv.scrollIntoView({ behavior: \"smooth\", block: \"end\", inline: \"nearest\" });*/\n\twindow.scrollTo(0, document.body.scrollHeight);\n\t/*var scrollToTop = () => {\n \t\tvar c = document.documentElement.scrollTop || document.body.scrollTop;\n \t\tif (c > 0) {\n \t\twindow.requestAnimationFrame(scrollToTop);\n \t\twindow.scrollTo(0, c - c / 8);\n \t\t}\n\t\t};\n\tscrollToTop();*/\n\t}, 100); \n})\n\n</script>\n\n<!--\n<script type=\"text/javascript\" src=\"_prism-abap.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-abnf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-actionscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ada.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-agda.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-al.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-antlr4.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-apacheconf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-apex.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-apl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-applescript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-aql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-arduino.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-arff.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-armasm.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-arturo.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-asciidoc.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-asm6502.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-asmatmel.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-aspnet.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-autohotkey.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-autoit.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-avisynth.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-avro-idl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-awk.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bash.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-basic.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-batch.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bbcode.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bbj.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bicep.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-birb.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bison.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bnf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bqn.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-brainfuck.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-brightscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bro.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-bsl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cfscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-chaiscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cilkc.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cilkcpp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cil.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-clike.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-clojure.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cmake.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-c.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cobol.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-coffeescript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-concurnas.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cooklang.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-coq.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-core.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cpp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-crystal.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-csharp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cshtml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-csp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-css-extras.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-css.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-csv.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cue.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-cypher.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-dart.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-dataweave.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-dax.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-dhall.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-diff.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-django.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-d.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-dns-zone-file.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-docker.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-dot.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ebnf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-editorconfig.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-eiffel.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ejs.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-elixir.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-elm.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-erb.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-erlang.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-etlua.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-excel-formula.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-factor.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-false.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-firestore-security-rules.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-flow.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-fortran.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-fsharp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ftl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gap.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gcode.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gdscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gedcom.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gettext.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gherkin.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-git.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-glsl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gn.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-go.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-go-module.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-gradle.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-graphql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-groovy.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-haml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-handlebars.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-haskell.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-haxe.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-hcl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-hlsl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-hoon.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-hpkp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-hsts.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-http.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ichigojam.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-icon.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-icu-message-format.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-idris.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-iecst.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ignore.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-inform7.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ini.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-io.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-javadoclike.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-javadoc.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-java.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-javascript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-javastacktrace.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jexl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-j.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jolie.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jq.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jsdoc.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-js-extras.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-json5.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-json.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jsonp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jsstacktrace.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-js-templates.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-jsx.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-julia.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-keepalived.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-keyman.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-kotlin.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-kumir.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-kusto.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-latex.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-latte.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-less.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-lilypond.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-linker-script.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-liquid.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-lisp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-livescript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-llvm.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-log.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-lolcode.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-lua.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-magma.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-makefile.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-markdown.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-markup.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-markup-templating.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-mata.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-matlab.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-maxscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-mel.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-mermaid.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-metafont.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-mizar.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-mongodb.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-monkey.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-moonscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-n1ql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-n4js.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nand2tetris-hdl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-naniscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nasm.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-neon.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nevod.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nginx.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nim.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nix.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-nsis.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-objectivec.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ocaml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-odin.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-opencl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-openqasm.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-oz.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-parigp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-parser.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-pascaligo.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-pascal.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-pcaxis.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-peoplecode.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-perl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-phpdoc.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-php-extras.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-php.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-plant-uml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-plsql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-powerquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-powershell.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-processing.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-prolog.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-promql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-properties.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-protobuf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-psl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-pug.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-puppet.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-purebasic.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-pure.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-purescript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-python.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-q.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-qml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-qore.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-qsharp.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-racket.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-reason.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-regex.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-rego.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-renpy.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-rescript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-rest.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-rip.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-r.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-roboconf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-robotframework.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-ruby.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-rust.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-sas.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-sass.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-scala.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-scheme.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-scss.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-shell-session.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-smali.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-smalltalk.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-smarty.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-sml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-solidity.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-solution-file.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-soy.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-sparql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-splunk-spl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-sqf.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-sql.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-squirrel.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-stan.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-stata.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-stylus.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-supercollider.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-swift.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-systemd.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-t4-cs.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-t4-templating.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-t4-vb.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-tap.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-tcl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-textile.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-toml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-tremor.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-tsx.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-tt2.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-turtle.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-twig.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-typescript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-typoscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-unrealscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-uorazor.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-uri.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-vala.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-vbnet.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-velocity.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-verilog.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-vhdl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-vim.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-visual-basic.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-v.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-warpscript.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-wasm.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-web-idl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-wgsl.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-wiki.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-wolfram.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-wren.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-xeora.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-xml-doc.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-xojo.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-xquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-yaml.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-yang.min.js\"></script>\n<script type=\"text/javascript\" src=\"_prism-zig.min.js\"></script>\n-->"
},
{
"afmt": "{{FrontSide}}\n\n<div class=\"description\">{{Description}}</div>\n",
"bafmt": "",
"bfont": "",
"bqfmt": "",
"bsize": 0,
"did": null,
"id": null,
"name": "Card 2",
"ord": 1,
"qfmt": "<style>\n\tcode {\n\t\topacity: 0 !important;\n\t\ttransition: opacity 0.1s;\n\t}\n</style>\n\n<header>\n\t\t<div>\n\t\t\t<h1 class=\"heading\">\n\t\t\t\t{{Subdeck}}\n\t\t\t\t<!--{{Deck}}-->\n\t\t\t\t<span class=\"logo\">\n\t\t\t\t\t{{Logo}}\n\t\t\t\t</span>\n\t\t\t</h1>\n\t\t</div>\n\t</header>\n\n<div class=\"helper\"><h2><span id=\"lang_string\">{{Language}}</span> Code</h2></div>\n\n<div>\n<!--<pre class=\"field single_field line-numbers\" id=\"card_2_code_field\">-->\n<!-- NOTE: indenting the <code> tag or putting a html comment will actually affect the way it is displayed. Seems to be some kind of bug, either in my code or in prism.js -->\n<pre class=\"field single_field\" id=\"card_2_code_field\">\n<code class=\"language-{{Language}} match-braces rainbow-braces\" id=\"answerText\">{{Code}}</code>\n</pre>\n</div>\n\n<div class=\"helper\"><h2>Description</h2></div>\n\n<script> \n\tvar sampleAnswer = document.getElementById(\"answerText\");\n\tvar sampleAnswerInitialContent = sampleAnswer.innerHTML;\n\tvar sampleAnswerContentModifiedWhitespace;\n\n\t/*Replace some html characters; TODO -> extensive*/\n\n\t\nfunction modifyWhitespace (){\n\tsampleAnswerContentModifiedWhitespace = sampleAnswerInitialContent\n\t\t.replace(/(<br>)/gi, \"\\n\")\n\t\t.replace(/\\ /gi, ' ');\n \t\n\tsampleAnswer.innerHTML = sampleAnswerContentModifiedWhitespace;\n}\n\nmodifyWhitespace();\n\n/*Prevent Prism from auto highlighting*/\n/*see https://prismjs.com/docs/Prism.html#.manual*/\n\nwindow.Prism = window.Prism || {};\nPrism.manual = true;\n\n/*copied from https://stackoverflow.com/a/53744331/20453811 */\n/*Definition*/\n\nfunction loadScript(scriptUrl) {\n \n const script = document.createElement('script');\n script.src = scriptUrl;\n document.body.appendChild(script);\n \n return new Promise((res, rej) => {\n script.onload = res;\n\tscript.onerror = rej;\n });\n}\n\n/*use*/\n\t/*loadScript('_prism.min_with_line_numbers_addon.js')*/\n\tloadScript('_prism.min.js')\n\t.then(() => {\n\t\tconsole.log('Script loaded!');\n\t\tPrism.plugins.autoloader.languages_path = '';\n\t\tPrism.highlightElement(sampleAnswer, false, mark_as_highlighted());\n\t})\n\t.catch(() => {\n\t\tconsole.error('Script loading failed! Handle this error');\n\t});\n\n\tfunction mark_as_highlighted(){\n\t\tdocument.getElementsByTagName(\"body\")[0].classList.add(\"highlighted\");\n\t}\n</script>\n\n<link rel=\"stylesheet\" href=\"_prism.min.css\" id=\"light_theme\">\n<link rel=\"stylesheet\" href=\"_prism-gruvbox-dark.css\" id=\"dark_theme\">\n\n<script>\nfunction createStylesheet (new_name, new_id) {\n var styles = document.createElement('link');\n styles.rel = 'stylesheet';\n styles.type = 'text/css';\n styles.media = 'screen';\n styles.href = `${new_name}`;\n styles.id = `${new_id}`;\n document.getElementsByTagName('head')[0].appendChild(styles);\n};\n\t\n\t/*Darkmode switcher. Done via JS to support both prefers-color-scheme of ankiweb.net and class changes of desktop app\n\tTODO: try out if this can be done withouth JS*/\n\tvar script_name;\n\t/*var darkTheme = document.getElementById(\"dark_theme\");\n\tvar lightTheme = document.getElementById(\"light_theme\");*/\n\tvar darkModePreference = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\tvar root = document.getElementsByTagName(\"html\")[0];\n\n\tfunction determineDarkMode (){\n\t\t/*if (root.classList.contains(\"night-mode\") == true){\n\t\t\tvar root_theme = \"dark\";\n\t\t}*/\n\t\tvar root_data_bs_theme = root.getAttribute(\"data-bs-theme\");\n\t\tvar root_data_darkreader_scheme = root.getAttribute(\"data-darkreader-scheme\");\n\t\tif (document.body.classList.contains(\"nightMode\" || \"night_mode\")){\n\t\t\tvar body_theme = \"dark\";\n\t\t}\n\n\t\tif (root_data_bs_theme == \"dark\" || root_data_darkreader_scheme == \"dark\" || body_theme == \"dark\"){\n\t\t\tvar app_specific_preference = \"dark\";\n\t\t}\n\t\telse if(root_data_bs_theme == \"light\" || root_data_darkreader_scheme == \"light\"){\n\t\t\tvar app_specific_preference = \"light\";\n\t\t}\n\n\t\tif (app_specific_preference ==\"dark\"){\n\t\t\tvar preference1 = \"dark\";\n\t\t}\n\t\telse if ((darkModePreference.matches == true) && (app_specific_preference != \"light\") == true){\n\t\t\tvar darkModePreferred = true;\n\t\t\tvar preference1 = \"dark\";\n\t\t}\n\t\telse{\n\t\t\tvar preference1 = \"light\";\n\t\t}\n\n\t\treturn preference1;\n\t}\n\n\tfunction switchStylesheet(preference){\n\t\tif (preference == \"dark\"){\n\t\t\tvar old_stylesheet = document.getElementById(\"light_theme\");\n\t\t\tif (old_stylesheet != null && old_stylesheet != undefined){\n\t\t\t\told_stylesheet.disabled = true; /*is this even necessary?*/\n\t\t\t\told_stylesheet.parentNode.removeChild(old_stylesheet);\n\t\t\t}\n\t\t\tvar new_stylesheet = document.getElementById(\"dark_theme\");\n\t\t\tif (new_stylesheet == null | new_stylesheet == undefined){\n\t\t\t\tcreateStylesheet (\"_prism-gruvbox-dark.css\", \"dark_theme\");\n\t\t\t}\n\t\t\tconsole.log(\"switch to dark\");\n\t\t}\n\t\telse if (preference == \"light\") {\n\t\t\tvar old_stylesheet = document.getElementById(\"dark_theme\");\n\t\t\tif (old_stylesheet != null && old_stylesheet != undefined){\n\t\t\t\told_stylesheet.disabled = true; /*is this even necessary?*/\n\t\t\t\told_stylesheet.parentNode.removeChild(old_stylesheet);\n\t\t\t}\n\t\t\tvar new_stylesheet = document.getElementById(\"light_theme\");\n\t\t\tif (new_stylesheet == null | new_stylesheet == undefined){\n\t\t\t\tcreateStylesheet (\"_prism.min.css\", \"light_theme\");\n\t\t\t}\n\t\t\tconsole.log(\"switch to light\");\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"Error! No preference passed: \" + preference);\n\t\t}\n\t}\n\n\tfunction applyStylesheet(){\n\t\tvar preference = determineDarkMode();\n\t\t/*app_specific_preference = document.getElementsByTagName(\"html\")[0].getAttribute(\"data-bs-theme\");*/\n\t\t/*determineDarkMode();*/\n\t\tswitchStylesheet(preference);\n\t}\n\n\tapplyStylesheet();\n</script>\n\n<script defer>\n\tdarkModePreference.addEventListener(\"change\", function (e) {\n\t\tapplyStylesheet();\n\t\tconsole.log(\"dark mode preference changed: \\n\" + darkModePreference.matches);\n\t\tconsole.log(determineDarkMode());\n\t});\n\n\t/*relies on class change as proxy, could maybe be adapted to data-bs-theme*/\n\tfunction onClassChange(node, callback) {\n \t\tlet lastClassString = node.classList.toString();\n\n \t\tconst mutationObserver = new MutationObserver((mutationList) => {\n\t\t\tfor (const item of mutationList) {\n\t\t\t\tif (item.attributeName === \"class\") {\n\t\t\t\t\tconst classString = node.classList.toString();\n\t\t\t\t\tif (classString !== lastClassString) {\n\t\t\t\t\t\tcallback(mutationObserver);\n\t\t\t\t\t\tlastClassString = classString;\n\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n \t\t});\n\n \t\tmutationObserver.observe(node, { attributes: true });\n\n \t\treturn mutationObserver;\n\t}\n\t\n\tonClassChange(document.body, applyStylesheet);\n\t/*onClassChange(document.body, applyStylesheet);*/\n</script>"
},
{
"afmt": "<style>\n\tcode {\n\t\topacity: 0 !important;\n\t\ttransition: opacity 0.1s;\n\t}\n</style>\n\n{{FrontSide}}\n\n<!--<pre class=\"field single_field line-numbers\"-->\n<!-- NOTE: indenting the <code> tag or putting a html comment will actually affect the way it is displayed. Seems to be some kind of bug, either in my code or in prism.js -->\n<pre class=\"field single_field\" id=\"card_3_code_field\">\n<code class=\"language-{{Language}} match-braces rainbow-braces\" id=\"answerText\">{{Code}}</code>\n</pre>\n\n<script>\n\tvar sampleAnswer = document.getElementById(\"answerText\");\n\tvar sampleAnswerInitialContent = sampleAnswer.innerHTML;\n\tvar sampleAnswerContentModifiedWhitespace;\n\n\t/*Replace some html characters; TODO -> extensive*/\n\n\t\nfunction modifyWhitespace (){\n\tsampleAnswerContentModifiedWhitespace = sampleAnswerInitialContent\n\t\t.replace(/(<br>)/gi, \"\\n\")\n\t\t.replace(/\\ /gi, ' ');\n \t\n\tsampleAnswer.innerHTML = sampleAnswerContentModifiedWhitespace;\n}\n\nmodifyWhitespace();\n\n/*copied from https://stackoverflow.com/a/53744331/20453811 */\n/*Definition*/\n\nfunction loadScript(scriptUrl) {\n const script = document.createElement('script');\n script.src = scriptUrl;\n document.body.appendChild(script);\n \n return new Promise((res, rej) => {\n script.onload = res;\n\tscript.onerror = rej;\n });\n}\n\n/*use*/\n\t/*loadScript('_prism.min_with_line_numbers_addon.js')*/\n\tloadScript('_prism.min.js')\n\t.then(() => {\n\t\tconsole.log('Script loaded!');\n\t\tPrism.plugins.autoloader.languages_path = '';\n\t\tPrism.highlightElement(sampleAnswer, false, mark_as_highlighted());\n\t})\n\t.catch(() => {\n\t\tconsole.error('Script loading failed! Handle this error');\n\t});\n\n\tfunction mark_as_highlighted(){\n\t\tdocument.getElementsByTagName(\"body\")[0].classList.add(\"highlighted\");\n\t}\n</script>\n\n<link rel=\"stylesheet\" href=\"_prism.min.css\" id=\"light_theme\">\n<link rel=\"stylesheet\" href=\"_prism-gruvbox-dark.css\" id=\"dark_theme\">\n\n<script>\nfunction createStylesheet (new_name, new_id) {\n var styles = document.createElement('link');\n styles.rel = 'stylesheet';\n styles.type = 'text/css';\n styles.media = 'screen';\n styles.href = `${new_name}`;\n styles.id = `${new_id}`;\n document.getElementsByTagName('head')[0].appendChild(styles);\n};\n\t\n\t/*Darkmode switcher. Done via JS to support both prefers-color-scheme of ankiweb.net and class changes of desktop app\n\tTODO: try out if this can be done withouth JS*/\n\tvar script_name;\n\t/*var darkTheme = document.getElementById(\"dark_theme\");\n\tvar lightTheme = document.getElementById(\"light_theme\");*/\n\tvar darkModePreference = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\tvar root = document.getElementsByTagName(\"html\")[0];\n\n\tfunction determineDarkMode (){\n\t\t/*if (root.classList.contains(\"night-mode\") == true){\n\t\t\tvar root_theme = \"dark\";\n\t\t}*/\n\t\tvar root_data_bs_theme = root.getAttribute(\"data-bs-theme\");\n\t\tvar root_data_darkreader_scheme = root.getAttribute(\"data-darkreader-scheme\");\n\t\tif (document.body.classList.contains(\"nightMode\" || \"night_mode\")){\n\t\t\tvar body_theme = \"dark\";\n\t\t}\n\n\t\tif (root_data_bs_theme == \"dark\" || root_data_darkreader_scheme == \"dark\" || body_theme == \"dark\"){\n\t\t\tvar app_specific_preference = \"dark\";\n\t\t}\n\t\telse if(root_data_bs_theme == \"light\" || root_data_darkreader_scheme == \"light\"){\n\t\t\tvar app_specific_preference = \"light\";\n\t\t}\n\n\t\tif (app_specific_preference ==\"dark\"){\n\t\t\tvar preference1 = \"dark\";\n\t\t}\n\t\telse if ((darkModePreference.matches == true) && (app_specific_preference != \"light\") == true){\n\t\t\tvar darkModePreferred = true;\n\t\t\tvar preference1 = \"dark\";\n\t\t}\n\t\telse{\n\t\t\tvar preference1 = \"light\";\n\t\t}\n\n\t\treturn preference1;\n\t}\n\n\tfunction switchStylesheet(preference){\n\t\tif (preference == \"dark\"){\n\t\t\tvar old_stylesheet = document.getElementById(\"light_theme\");\n\t\t\tif (old_stylesheet != null && old_stylesheet != undefined){\n\t\t\t\told_stylesheet.disabled = true; /*is this even necessary?*/\n\t\t\t\told_stylesheet.parentNode.removeChild(old_stylesheet);\n\t\t\t}\n\t\t\tvar new_stylesheet = document.getElementById(\"dark_theme\");\n\t\t\tif (new_stylesheet == null | new_stylesheet == undefined){\n\t\t\t\tcreateStylesheet (\"_prism-gruvbox-dark.css\", \"dark_theme\");\n\t\t\t}\n\t\t\tconsole.log(\"switch to dark\");\n\t\t}\n\t\telse if (preference == \"light\") {\n\t\t\tvar old_stylesheet = document.getElementById(\"dark_theme\");\n\t\t\tif (old_stylesheet != null && old_stylesheet != undefined){\n\t\t\t\told_stylesheet.disabled = true; /*is this even necessary?*/\n\t\t\t\told_stylesheet.parentNode.removeChild(old_stylesheet);\n\t\t\t}\n\t\t\tvar new_stylesheet = document.getElementById(\"light_theme\");\n\t\t\tif (new_stylesheet == null | new_stylesheet == undefined){\n\t\t\t\tcreateStylesheet (\"_prism.min.css\", \"light_theme\");\n\t\t\t}\n\t\t\tconsole.log(\"switch to light\");\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"Error! No preference passed: \" + preference);\n\t\t}\n\t}\n\n\n\tfunction applyStylesheet(){\n\t\tvar preference = determineDarkMode();\n\t\t/*app_specific_preference = document.getElementsByTagName(\"html\")[0].getAttribute(\"data-bs-theme\");*/\n\t\t/*determineDarkMode();*/\n\t\tswitchStylesheet(preference);\n\t}\n\n\tapplyStylesheet();\n</script>\n\n<script defer>\n\tdarkModePreference.addEventListener(\"change\", function (e) {\n\t\tapplyStylesheet();\n\t\tconsole.log(\"dark mode preference changed: \\n\" + darkModePreference.matches);\n\t\tconsole.log(determineDarkMode());\n\t});\n\n\t/*relies on class change as proxy, could maybe be adapted to data-bs-theme*/\n\tfunction onClassChange(node, callback) {\n \t\tlet lastClassString = node.classList.toString();\n\n \t\tconst mutationObserver = new MutationObserver((mutationList) => {\n\t\t\tfor (const item of mutationList) {\n\t\t\t\tif (item.attributeName === \"class\") {\n\t\t\t\t\tconst classString = node.classList.toString();\n\t\t\t\t\tif (classString !== lastClassString) {\n\t\t\t\t\t\tcallback(mutationObserver);\n\t\t\t\t\t\tlastClassString = classString;\n\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n \t\t});\n\n \t\tmutationObserver.observe(node, { attributes: true });\n\n \t\treturn mutationObserver;\n\t}\n\tonClassChange(document.body, applyStylesheet);\n</script>",
"bafmt": "",
"bfont": "",
"bqfmt": "",
"bsize": 0,
"did": null,
"id": null,
"name": "Card 3",
"ord": 2,
"qfmt": "<!-- <link rel=\"stylesheet\" href=\"_line_number_styling.css\" media=\"screen and (max-width: 600px)\" />-->\n\n<header>\n\t\t<div>\n\t\t\t<h1 class=\"heading\">\n\t\t\t\t{{Subdeck}}\n\t\t\t\t<!--{{Deck}}-->\n\t\t\t\t<span class=\"logo\">\n\t\t\t\t\t{{Logo}}\n\t\t\t\t</span>\n\t\t\t</h1>\n\t\t</div>\n\t</header>\n\n<div class=\"helper\"><h2>Description</h2></div>\n\n<div class=\"description\">{{Description}}</div>\n\n<div class=\"helper\"><h2><span id=\"lang_string\">{{Language}}</span> Code</h2></div>\n\n"
}
],
"type": 0
}
],
"notes": [
{
"__type__": "Note",
"fields": [
"for (int i = 0; i<10; i++){\n printf(\"%d\", i);\n}",
"",
"Create a loop and print the loop count to the standard output.",
"",
"c",
"<img src=\"c_logo.svg\">",
"",
""
],
"guid": "cba_GSZnev",
"note_model_uuid": "08059594-f015-11ee-a9e1-e509620133f6",
"tags": []
},
{
"__type__": "Note",
"fields": [
"if (variable_name == 1){\n\tvariable_name++;\n}\nelse {\n\tvariable_name--;\n}\n",
"",
"Define an if-else-expression. Increment a predefined variable, if it equals 1, decrement otherwise.",
"",
"c",
"<img src=\"c_logo.svg\">",
"",
""
],
"guid": "bEO,X(tOR+",
"note_model_uuid": "08059594-f015-11ee-a9e1-e509620133f6",
"tags": []
},
{
"__type__": "Note",
"fields": [
"<!--...-->\nDefines a comment\n\n\n<!DOCTYPE> \nDefines the document type\n\n\n<a>\nDefines a hyperlink\n\n\n<abbr>\nDefines an abbreviation or an acronym\n\n\n<acronym>\nNot supported in HTML5. Use <abbr> instead.\nDefines an acronym\n\n\n<address>\nDefines contact information for the author/owner of a document\n\n\n<applet>\nNot supported in HTML5. Use <embed> or <object> instead.\nDefines an embedded applet\n\n\n<area>\nDefines an area inside an image map\n\n\n<article>\nDefines an article\n\n\n<aside>\nDefines content aside from the page content\n\n\n<audio>\nDefines embedded sound content\n\n\n<b>\nDefines bold text\n\n\n<base>\nSpecifies the base URL/target for all relative URLs in a document\n\n\n<basefont>\nNot supported in HTML5. Use CSS instead.\nSpecifies a default color, size, and font for all text in a document\n\n\n<bdi>\nIsolates a part of text that might be formatted in a different direction \nfrom other text outside it\n\n\n<bdo>\nOverrides the current text direction\n\n\n<big>\nNot supported in HTML5. Use CSS instead.\nDefines big text\n\n\n<blockquote>\nDefines a section that is quoted from another source\n\n\n<body>\nDefines the document's body\n\n\n<br>\nDefines a single line break\n\n\n<button>\nDefines a clickable button\n\n\n<canvas>\nUsed to draw graphics, on the fly, via scripting (usually JavaScript)\n\n\n<caption>\nDefines a table caption\n\n\n<center>\nNot supported in HTML5. Use CSS instead.\nDefines centered text\n\n\n<cite>\nDefines the title of a work\n\n\n<code>\nDefines a piece of computer code\n\n\n<col>\nSpecifies column properties for each column within a <colgroup> element \n\n\n<colgroup>\nSpecifies a group of one or more columns in a table for formatting\n\n\n<data>\nAdds a machine-readable \ntranslation of a given content\n\n\n<datalist>\nSpecifies a list of pre-defined options for input controls\n\n\n<dd>\nDefines a description/value of a term in a description list\n\n\n<del>\nDefines text that has been deleted from a document\n\n\n<details>\nDefines additional details that the user can view or hide\n\n\n<dfn>\nSpecifies a term that is going to be defined within the content\n\n\n<dialog>\nDefines a dialog box or window\n\n\n<dir>\nNot supported in HTML5. Use <ul> instead.\nDefines a directory list\n\n\n<div>\nDefines a section in a document\n\n\n<dl>\nDefines a description list\n\n\n<dt>\nDefines a term/name in a description list\n\n\n<em>\nDefines emphasized text \n\n\n<embed>\nDefines a container for an external application\n\n\n<fieldset>\nGroups related elements in a form\n\n\n<figcaption>\nDefines a caption for a <figure> element\n\n\n<figure>\nSpecifies self-contained content\n\n\n<font>\nNot supported in HTML5. Use CSS instead.\nDefines font, color, and size for text\n\n\n<footer>\nDefines a footer for a document or section\n\n\n<form>\nDefines an HTML form for user input\n\n\n<frame>\nNot supported in HTML5.\nDefines a window (a frame) in a frameset\n\n\n<frameset>\nNot supported in HTML5.\nDefines a set of frames\n\n\n<h1> to <h6>\n Defines HTML headings\n\n\n<head>\nContains metadata/information for the document\n\n\n<header>\nDefines a header for a document or section\n\n\n<hgroup>\nDefines a header and related content\n\n\n<hr>\n Defines a thematic change in the content\n\n\n<html>\nDefines the root of an HTML document\n\n\n<i>\nDefines a part of text in an alternate voice or mood\n\n\n<iframe>\nDefines an inline frame\n\n\n<img>\nDefines an image\n\n\n<input>\nDefines an input control\n\n\n<ins>\nDefines a text that has been inserted into a document\n\n\n<kbd>\nDefines keyboard input\n\n\n<label>\nDefines a label for an <input> element\n\n\n<legend>\nDefines a caption for a <fieldset> element\n\n\n<li>\nDefines a list item\n\n\n<link>\nDefines the relationship between a document and an external resource (most \nused to link to style sheets)\n\n\n<main>\nSpecifies the main content of a document\n\n\n<map>\nDefines an image map\n\n\n<mark>\nDefines marked/highlighted text\n\n\n<menu>\nDefines an unordered list\n\n\n<meta>\nDefines metadata about an HTML document\n\n\n<meter>\nDefines a scalar measurement within a known range (a gauge)\n\n\n<nav>\nDefines navigation links\n\n\n<noframes>\nNot supported in HTML5.\nDefines an alternate content for users that do not support frames\n\n\n<noscript>\nDefines an alternate content for users that do not support \nclient-side scripts\n\n\n<object>\nDefines a container for an external application\n\n\n<ol>\nDefines an ordered list\n\n\n<optgroup>\nDefines a group of related options in a drop-down list\n\n\n<option>\nDefines an option in a drop-down list\n\n\n<output>\nDefines the result of a calculation\n\n\n<p>\nDefines a paragraph\n\n\n<param>\nDefines a parameter for an object\n\n\n<picture>\nDefines a container for multiple image resources\n\n\n<pre>\nDefines preformatted text\n\n\n<progress>\nRepresents the progress of a task\n\n\n<q>\nDefines a short quotation\n\n\n<rp>\nDefines what to show in browsers that do not support ruby annotations\n\n\n<rt>\nDefines an explanation/pronunciation of characters (for East Asian \ntypography)\n\n\n<ruby>\nDefines a ruby annotation (for East Asian typography)\n\n\n<s>\nDefines text that is no longer correct\n\n\n<samp>\nDefines sample output from a computer program\n\n\n<script>\nDefines a client-side script\n\n\n<search>\nDefines a search section\n\n\n<section>\nDefines a section in a document\n\n\n<select>\nDefines a drop-down list\n\n\n<small>\nDefines smaller text\n\n\n<source>\nDefines multiple media resources for media elements (<video> and <audio>)\n\n\n<span>\nDefines a section in a document\n\n\n<strike>\nNot supported in HTML5. Use <del> or <s> instead.\nDefines strikethrough text\n\n\n<strong>\nDefines important text\n\n\n<style>\nDefines style information for a document\n\n\n<sub>\nDefines subscripted text\n\n\n<summary>\nDefines a visible heading for a <details> element\n\n\n<sup>\nDefines superscripted text\n\n\n<svg>\nDefines a container for SVG graphics\n\n\n<table>\nDefines a table\n\n\n<tbody>\nGroups the body content in a table\n\n\n<td>\nDefines a cell in a table\n\n\n<template>\nDefines a container for content that should be hidden when the page loads\n\n\n<textarea>\nDefines a multiline input control (text area)\n\n\n<tfoot>\nGroups the footer content in a table\n\n\n<th>\nDefines a header cell in a table\n\n\n<thead>\nGroups the header content in a table\n\n\n<time>\nDefines a specific time (or datetime)\n\n\n<title>\nDefines a title for the document\n\n\n<tr>\nDefines a row in a table\n\n\n<track>\nDefines text tracks for media elements (<video> and <audio>)\n\n\n<tt>\nNot supported in HTML5. Use CSS instead.\nDefines teletype text\n\n\n<u>\nDefines some text that is unarticulated and styled differently from normal \ntext\n\n\n<ul>\nDefines an unordered list\n\n\n<var>\nDefines a variable\n\n\n<video>\nDefines embedded video content\n\n\n<wbr>\nDefines a possible line-break",
"",
"html stress test",
"",
"html",
"<img src=\"HTML5_Logo.svg\">",
"",
""
],
"guid": "FO9NtmHi46",
"note_model_uuid": "08059594-f015-11ee-a9e1-e509620133f6",
"tags": []
},
{
"__type__": "Note",
"fields": [
"#include <stdio.h>\n\nint bsearch (int *a, int n, int x) {\n int i = 0, j = n - 1;\n while (i <= j) {\n int k = i + ((j - i) / 2);\n if (a[k] == x) {\n return k;\n }\n else if (a[k] < x) {\n i = k + 1;\n }\n else {\n j = k - 1;\n }\n }\n return -1;\n}\n\nint bsearch_r (int *a, int x, int i, int j) {\n if (j < i) {\n return -1;\n }\n int k = i + ((j - i) / 2);\n if (a[k] == x) {\n return k;\n }\n else if (a[k] < x) {\n return bsearch_r(a, x, k + 1, j);\n }\n else {\n return bsearch_r(a, x, i, k - 1);\n }\n}\n\nint main () {\n int a[] = {-31, 0, 1, 2, 2, 4, 65, 83, 99, 782};\n int n = sizeof a / sizeof a[0];\n int x = 2;\n int i = bsearch(a, n, x);\n if (i >= 0) \n printf(\"%d is at index %d.\\n\", x, i);\n else\n printf(\"%d is not found.\\n\", x);\n x = 5;\n i = bsearch_r(a, x, 0, n - 1);\n if (i >= 0) \n printf(\"%d is at index %d.\\n\", x, i);\n else\n printf(\"%d is not found.\\n\", x);\n return 0;\n}",
"",
"Implement a binary search algorithm",
"",
"c",
"<img src=\"c_logo.svg\">",
"",
""
],
"guid": "e4e_wB*[H0",
"note_model_uuid": "08059594-f015-11ee-a9e1-e509620133f6",
"tags": []
},
{
"__type__": "Note",
"fields": [
"cd /usr/local/etc Test\nphp.ini php.ini.bak\nvi php.ini",
"",
"test",
"",
"shell",
"",
"",
""
],
"guid": "KWn.LuN*bG",
"note_model_uuid": "08059594-f015-11ee-a9e1-e509620133f6",
"tags": []
}
],
"reviewLimit": null,
"reviewLimitToday": null
}