orz-markdown 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +132 -0
  3. package/dist/index.d.ts +18 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +159 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/plugins/attrs.d.ts +3 -0
  8. package/dist/plugins/attrs.d.ts.map +1 -0
  9. package/dist/plugins/attrs.js +60 -0
  10. package/dist/plugins/attrs.js.map +1 -0
  11. package/dist/plugins/emoji.d.ts +2 -0
  12. package/dist/plugins/emoji.d.ts.map +1 -0
  13. package/dist/plugins/emoji.js +51 -0
  14. package/dist/plugins/emoji.js.map +1 -0
  15. package/dist/plugins/markdown-include.d.ts +3 -0
  16. package/dist/plugins/markdown-include.d.ts.map +1 -0
  17. package/dist/plugins/markdown-include.js +44 -0
  18. package/dist/plugins/markdown-include.js.map +1 -0
  19. package/dist/plugins/mermaid.d.ts +2 -0
  20. package/dist/plugins/mermaid.d.ts.map +1 -0
  21. package/dist/plugins/mermaid.js +18 -0
  22. package/dist/plugins/mermaid.js.map +1 -0
  23. package/dist/plugins/nyml.d.ts +2 -0
  24. package/dist/plugins/nyml.d.ts.map +1 -0
  25. package/dist/plugins/nyml.js +21 -0
  26. package/dist/plugins/nyml.js.map +1 -0
  27. package/dist/plugins/nyml_parser.d.ts +32 -0
  28. package/dist/plugins/nyml_parser.d.ts.map +1 -0
  29. package/dist/plugins/nyml_parser.js +236 -0
  30. package/dist/plugins/nyml_parser.js.map +1 -0
  31. package/dist/plugins/qrcode.d.ts +2 -0
  32. package/dist/plugins/qrcode.d.ts.map +1 -0
  33. package/dist/plugins/qrcode.js +21 -0
  34. package/dist/plugins/qrcode.js.map +1 -0
  35. package/dist/plugins/smiles.d.ts +2 -0
  36. package/dist/plugins/smiles.d.ts.map +1 -0
  37. package/dist/plugins/smiles.js +19 -0
  38. package/dist/plugins/smiles.js.map +1 -0
  39. package/dist/plugins/space.d.ts +2 -0
  40. package/dist/plugins/space.d.ts.map +1 -0
  41. package/dist/plugins/space.js +15 -0
  42. package/dist/plugins/space.js.map +1 -0
  43. package/dist/plugins/span.d.ts +3 -0
  44. package/dist/plugins/span.d.ts.map +1 -0
  45. package/dist/plugins/span.js +18 -0
  46. package/dist/plugins/span.js.map +1 -0
  47. package/dist/plugins/test.d.ts +2 -0
  48. package/dist/plugins/test.d.ts.map +1 -0
  49. package/dist/plugins/test.js +14 -0
  50. package/dist/plugins/test.js.map +1 -0
  51. package/dist/plugins/toc.d.ts +3 -0
  52. package/dist/plugins/toc.d.ts.map +1 -0
  53. package/dist/plugins/toc.js +62 -0
  54. package/dist/plugins/toc.js.map +1 -0
  55. package/dist/plugins/yaml.d.ts +2 -0
  56. package/dist/plugins/yaml.d.ts.map +1 -0
  57. package/dist/plugins/yaml.js +12 -0
  58. package/dist/plugins/yaml.js.map +1 -0
  59. package/dist/plugins/youtube.d.ts +2 -0
  60. package/dist/plugins/youtube.d.ts.map +1 -0
  61. package/dist/plugins/youtube.js +19 -0
  62. package/dist/plugins/youtube.js.map +1 -0
  63. package/dist/prepare-sources.d.ts +10 -0
  64. package/dist/prepare-sources.d.ts.map +1 -0
  65. package/dist/prepare-sources.js +31 -0
  66. package/dist/prepare-sources.js.map +1 -0
  67. package/dist/registry.d.ts +10 -0
  68. package/dist/registry.d.ts.map +1 -0
  69. package/dist/registry.js +24 -0
  70. package/dist/registry.js.map +1 -0
  71. package/dist/rules/block-dispatcher.d.ts +9 -0
  72. package/dist/rules/block-dispatcher.d.ts.map +1 -0
  73. package/dist/rules/block-dispatcher.js +108 -0
  74. package/dist/rules/block-dispatcher.js.map +1 -0
  75. package/dist/rules/inline-dispatcher.d.ts +9 -0
  76. package/dist/rules/inline-dispatcher.d.ts.map +1 -0
  77. package/dist/rules/inline-dispatcher.js +62 -0
  78. package/dist/rules/inline-dispatcher.js.map +1 -0
  79. package/dist/runtime.d.ts +3 -0
  80. package/dist/runtime.d.ts.map +1 -0
  81. package/dist/runtime.js +128 -0
  82. package/dist/runtime.js.map +1 -0
  83. package/package.json +70 -0
  84. package/themes/beige-decent-1.css +559 -0
  85. package/themes/beige-decent-2.css +578 -0
  86. package/themes/common.css +178 -0
  87. package/themes/dark-elegant-1.css +729 -0
  88. package/themes/dark-elegant-2.css +1376 -0
  89. package/themes/light-academic-1.css +541 -0
  90. package/themes/light-academic-2.css +462 -0
  91. package/themes/light-neat-1.css +1244 -0
  92. package/themes/light-neat-2.css +1185 -0
  93. package/themes/light-playful-1.css +493 -0
  94. package/themes/light-playful-2.css +494 -0
@@ -0,0 +1,541 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Lato:ital,wght@0,400;0,700;1,400&display=swap');
2
+ @import './common.css';
3
+
4
+ /* 1. Tokens and global setup */
5
+ :root {
6
+ --bg-color: #fffff8;
7
+ --text-main: #111111;
8
+ --text-muted: #555555;
9
+ --link-color: #1a1add;
10
+ --link-hover: #b30000;
11
+ --border-color: #333333;
12
+ --border-soft: #cccccc;
13
+
14
+ --main-font: 'Alegreya', 'Noto Serif SC', 'Noto Serif TC', serif;
15
+ --sans-font: 'Lato', 'Helvetica Neue', Helvetica, Arial, 'Noto Sans SC', 'Noto Sans TC', sans-serif;
16
+ --code-font: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
17
+
18
+ --base-size: 19px;
19
+ --line-height: 1.7;
20
+
21
+ --markdown-body-max-width: 820px;
22
+ --markdown-body-padding: 4rem 2rem;
23
+ --markdown-body-border: none;
24
+ --markdown-body-radius: 0;
25
+ --markdown-body-shadow: none;
26
+ }
27
+
28
+ body {
29
+ background-color: var(--bg-color);
30
+ margin: 0;
31
+ padding: 0;
32
+ }
33
+
34
+ .markdown-body {
35
+ display: flow-root;
36
+ font-family: var(--main-font);
37
+ font-size: var(--base-size);
38
+ line-height: var(--line-height);
39
+ color: var(--text-main);
40
+ background-color: var(--bg-color);
41
+ max-width: var(--markdown-body-max-width);
42
+ margin: 0 auto;
43
+ padding: var(--markdown-body-padding);
44
+ border: var(--markdown-body-border);
45
+ border-radius: var(--markdown-body-radius);
46
+ box-shadow: var(--markdown-body-shadow);
47
+ text-align: justify;
48
+ hyphens: auto;
49
+ }
50
+
51
+ /* 2. Headings and body copy */
52
+ .markdown-body h1,
53
+ .markdown-body h2,
54
+ .markdown-body h3,
55
+ .markdown-body h4,
56
+ .markdown-body h5,
57
+ .markdown-body h6 {
58
+ clear: both;
59
+ color: var(--text-main);
60
+ font-weight: 400;
61
+ margin-top: 2em;
62
+ margin-bottom: 0.5em;
63
+ line-height: 1.2;
64
+ }
65
+
66
+ .markdown-body h1 {
67
+ font-size: 2.2rem;
68
+ text-align: left;
69
+ margin-top: 1rem;
70
+ margin-bottom: 1.5rem;
71
+ }
72
+
73
+ .markdown-body h2 {
74
+ font-size: 1.6rem;
75
+ font-style: italic;
76
+ margin-top: 2.2rem;
77
+ }
78
+
79
+ .markdown-body h3 {
80
+ font-size: 1.2rem;
81
+ font-variant: small-caps;
82
+ text-transform: lowercase;
83
+ letter-spacing: 0.05em;
84
+ }
85
+
86
+ .markdown-body p {
87
+ margin-top: 0;
88
+ margin-bottom: 1.4rem;
89
+ }
90
+
91
+ .markdown-body a {
92
+ color: var(--link-color);
93
+ text-decoration: underline;
94
+ text-decoration-thickness: 0.5px;
95
+ text-underline-offset: 3px;
96
+ transition: color 0.2s ease;
97
+ }
98
+
99
+ .markdown-body a:hover {
100
+ color: var(--link-hover);
101
+ }
102
+
103
+ .markdown-body strong {
104
+ font-weight: 600;
105
+ }
106
+
107
+ /* 3. Lists and task lists */
108
+ .markdown-body ul,
109
+ .markdown-body ol {
110
+ padding-left: 2rem;
111
+ margin-bottom: 1.4rem;
112
+ }
113
+
114
+ .markdown-body li {
115
+ margin-bottom: 0.4rem;
116
+ }
117
+
118
+ .markdown-body .task-list-item {
119
+ list-style: none;
120
+ padding-left: 0;
121
+ }
122
+ .markdown-body .task-list-item input[type="checkbox"],
123
+ .markdown-body .task-list-item-checkbox {
124
+ appearance: none;
125
+ -webkit-appearance: none;
126
+ width: 1em;
127
+ height: 1em;
128
+ border: 2px solid var(--border-color);
129
+ border-radius: 2px;
130
+ background: transparent;
131
+ vertical-align: -0.1em;
132
+ margin-right: 0.5em;
133
+ cursor: default;
134
+ position: relative;
135
+ display: inline-block;
136
+ }
137
+ .markdown-body .task-list-item input[type="checkbox"]:checked,
138
+ .markdown-body .task-list-item-checkbox:checked {
139
+ background: var(--link-color);
140
+ border-color: var(--link-color);
141
+ }
142
+ .markdown-body .task-list-item input[type="checkbox"]:checked::after,
143
+ .markdown-body .task-list-item-checkbox:checked::after {
144
+ content: '';
145
+ position: absolute;
146
+ left: 2px;
147
+ top: -1px;
148
+ width: 4px;
149
+ height: 8px;
150
+ border: 2px solid #fff;
151
+ border-top: none;
152
+ border-left: none;
153
+ transform: rotate(45deg);
154
+ }
155
+
156
+ /* Footnotes */
157
+ .markdown-body .footnotes-sep {
158
+ margin: 2rem 0 1rem;
159
+ }
160
+ .markdown-body .footnotes {
161
+ font-size: 0.88em;
162
+ color: var(--text-muted);
163
+ border-top: 1px solid var(--border-soft);
164
+ padding-top: 1rem;
165
+ }
166
+ .markdown-body .footnotes ol {
167
+ margin-bottom: 0;
168
+ }
169
+ .markdown-body .footnote-ref a,
170
+ .markdown-body .footnote-backref {
171
+ color: var(--link-color);
172
+ text-decoration: none;
173
+ font-size: 0.85em;
174
+ vertical-align: super;
175
+ }
176
+
177
+ /* 4. Code and math */
178
+ .markdown-body code {
179
+ font-family: var(--code-font);
180
+ color: #000000;
181
+ font-size: 0.85em;
182
+ background-color: transparent;
183
+ padding: 0;
184
+ }
185
+
186
+ .markdown-body pre {
187
+ background-color: #f4f4f4;
188
+ padding: 1rem;
189
+ font-size: 0.85rem;
190
+ line-height: 1.4;
191
+ border: none;
192
+ overflow-x: auto;
193
+ margin-bottom: 1.4rem;
194
+ }
195
+
196
+ /* KaTeX math */
197
+ .markdown-body .katex {
198
+ font-size: 1.1em;
199
+ }
200
+ .markdown-body .katex-display {
201
+ overflow-x: auto;
202
+ overflow-y: hidden;
203
+ padding: 0.75rem 0;
204
+ margin: 1.5rem 0;
205
+ }
206
+ .markdown-body .katex-error {
207
+ background: #fff3f3;
208
+ color: #c0392b;
209
+ border: 1px solid #e0a0a0;
210
+ border-radius: 3px;
211
+ padding: 0.15em 0.4em;
212
+ font-family: var(--code-font);
213
+ font-size: 0.85em;
214
+ }
215
+
216
+ /* 5. Structural blocks */
217
+ .markdown-body blockquote {
218
+ margin: 2rem 3rem;
219
+ padding: 0.75rem 1rem;
220
+ font-size: 1.1rem;
221
+ font-style: italic;
222
+ border-left: none;
223
+ color: var(--text-muted);
224
+ background-color: #f0f0e6;
225
+ }
226
+
227
+ .markdown-body blockquote blockquote {
228
+ font-size: 1rem;
229
+ margin: 0.75rem 0;
230
+ }
231
+
232
+ .markdown-body table {
233
+ margin: 2rem auto;
234
+ border-collapse: collapse;
235
+ font-size: 0.95rem;
236
+ border-top: 2px solid var(--border-color);
237
+ border-bottom: 2px solid var(--border-color);
238
+ }
239
+
240
+ .markdown-body th,
241
+ .markdown-body td {
242
+ padding: 0.5rem 1rem;
243
+ text-align: left;
244
+ border: none;
245
+ }
246
+
247
+ .markdown-body th {
248
+ font-weight: 600;
249
+ border-bottom: 1px solid var(--border-color);
250
+ vertical-align: bottom;
251
+ }
252
+
253
+ .markdown-body tbody tr:last-child td {
254
+ border-bottom: none;
255
+ }
256
+
257
+ .markdown-body tbody td {
258
+ vertical-align: middle;
259
+ }
260
+
261
+ .markdown-body hr {
262
+ border: 0;
263
+ text-align: center;
264
+ margin: 2.5rem 0;
265
+ }
266
+
267
+ .markdown-body hr::before {
268
+ content: '* * *';
269
+ font-size: 1.5rem;
270
+ letter-spacing: 0.5em;
271
+ color: var(--text-main);
272
+ }
273
+
274
+ .markdown-body img {
275
+ margin: 1.4rem auto;
276
+ }
277
+
278
+ .markdown-body p > img {
279
+ display: inline;
280
+ margin: 0;
281
+ }
282
+
283
+ /* 6. Containers and layout helpers */
284
+ .markdown-body .success,
285
+ .markdown-body .info,
286
+ .markdown-body .warning,
287
+ .markdown-body .danger {
288
+ padding: 1.2rem 1.5rem;
289
+ margin: 1.5rem 0;
290
+ background-color: #fdfdfd;
291
+ border: 1px solid var(--border-soft);
292
+ font-family: var(--sans-font);
293
+ font-size: 0.9em;
294
+ border-left-width: 4px;
295
+ }
296
+
297
+ .markdown-body .success {
298
+ border-left-color: #2e8540;
299
+ }
300
+
301
+ .markdown-body .info {
302
+ border-left-color: #2b5585;
303
+ }
304
+
305
+ .markdown-body .warning {
306
+ border-left-color: #a37213;
307
+ }
308
+
309
+ .markdown-body .danger {
310
+ border-left-color: #a32a2a;
311
+ }
312
+
313
+ .markdown-body .left {
314
+ float: left;
315
+ max-width: min(44%, 20rem);
316
+ padding: 0.75rem 1rem;
317
+ margin: 0 1.5rem 1rem 0;
318
+ background: #f0f0e6;
319
+ border: 1px solid var(--border-soft);
320
+ border-radius: 2px;
321
+ }
322
+
323
+ .markdown-body .right {
324
+ text-align: right;
325
+ margin: 0 0 1rem;
326
+ }
327
+
328
+ .markdown-body .center {
329
+ text-align: center;
330
+ margin: 0 0 1rem;
331
+ }
332
+
333
+ .markdown-body details.spoil {
334
+ border: 1px solid var(--border-soft);
335
+ margin-bottom: 1.4rem;
336
+ background: #fff;
337
+ }
338
+
339
+ .markdown-body details.spoil > summary {
340
+ padding: 0.8rem 1.2rem;
341
+ font-family: var(--sans-font);
342
+ cursor: pointer;
343
+ background: #fdfdfd;
344
+ font-weight: bold;
345
+ }
346
+
347
+ .markdown-body details.spoil[open] > summary {
348
+ border-bottom: 1px solid var(--border-soft);
349
+ }
350
+
351
+ .markdown-body details.spoil > :not(summary) {
352
+ padding: 1.2rem;
353
+ }
354
+
355
+ .markdown-body .cols {
356
+ display: grid;
357
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
358
+ gap: 2rem;
359
+ margin-bottom: 1.5rem;
360
+ }
361
+
362
+ .markdown-body .col {
363
+ padding: 1rem;
364
+ border: 1px solid var(--border-soft);
365
+ }
366
+
367
+ .markdown-body .tabs {
368
+ border: 1px solid var(--border-soft);
369
+ margin-bottom: 1.5rem;
370
+ }
371
+
372
+ .markdown-body .tabs-bar {
373
+ display: flex;
374
+ border-bottom: 1px solid var(--border-soft);
375
+ background: #fdfdfd;
376
+ }
377
+
378
+ .markdown-body .tabs-bar-btn {
379
+ background: none;
380
+ border: none;
381
+ padding: 0.8rem 1.2rem;
382
+ cursor: pointer;
383
+ font-family: var(--sans-font);
384
+ font-size: 0.9rem;
385
+ }
386
+
387
+ .markdown-body .tabs-bar-btn.active {
388
+ background: #fff;
389
+ border-bottom: 2px solid var(--text-main);
390
+ font-weight: bold;
391
+ }
392
+
393
+ .markdown-body .tab {
394
+ display: none;
395
+ padding: 1.5rem;
396
+ }
397
+
398
+ .markdown-body .tab.active {
399
+ display: block;
400
+ }
401
+
402
+ .markdown-body .tabs:not([data-js]) .tab {
403
+ display: block;
404
+ border-top: 1px solid var(--border-soft);
405
+ }
406
+
407
+ /* 7. Navigation, footnotes, and plugin output */
408
+ .markdown-body span.red {
409
+ color: #9e2a2b;
410
+ font-weight: 600;
411
+ }
412
+
413
+ .markdown-body span.yellow {
414
+ color: #b8860b;
415
+ font-weight: 600;
416
+ }
417
+
418
+ .markdown-body span.green {
419
+ color: #386641;
420
+ font-weight: 600;
421
+ }
422
+
423
+ .markdown-body span.blue {
424
+ color: #2a5a8c;
425
+ font-weight: 600;
426
+ }
427
+
428
+ .markdown-body span.success,
429
+ .markdown-body span.info,
430
+ .markdown-body span.warning,
431
+ .markdown-body span.danger {
432
+ padding: 0.1em 0.5em;
433
+ font-family: var(--sans-font);
434
+ font-size: 0.75rem;
435
+ letter-spacing: 0.05em;
436
+ border: 1px solid;
437
+ border-radius: 2px;
438
+ vertical-align: middle;
439
+ }
440
+
441
+ .markdown-body span.success {
442
+ color: #2e8540;
443
+ border-color: #2e8540;
444
+ }
445
+
446
+ .markdown-body span.info {
447
+ color: #2b5585;
448
+ border-color: #2b5585;
449
+ }
450
+
451
+ .markdown-body span.warning {
452
+ color: #a37213;
453
+ border-color: #a37213;
454
+ }
455
+
456
+ .markdown-body span.danger {
457
+ color: #a32a2a;
458
+ border-color: #a32a2a;
459
+ }
460
+
461
+ .markdown-body span.qrcode {
462
+ background: #fff;
463
+ border: 1px solid var(--border-soft);
464
+ }
465
+
466
+ /* TOC */
467
+ .markdown-body .toc-wrapper {
468
+ /* container */
469
+ }
470
+ .markdown-body nav.toc,
471
+ .markdown-body .toc-list {
472
+ background: #f9f8f5;
473
+ border: 1px solid var(--border-soft);
474
+ padding: 1rem 1.5rem;
475
+ margin: 2rem 0;
476
+ font-family: var(--sans-font);
477
+ font-size: 0.9em;
478
+ }
479
+ .markdown-body nav.toc ul,
480
+ .markdown-body .toc-list ul {
481
+ padding-left: 1.25em;
482
+ margin-bottom: 0;
483
+ }
484
+ .markdown-body nav.toc li,
485
+ .markdown-body .toc-list li {
486
+ margin-bottom: 0.3em;
487
+ }
488
+ .markdown-body nav.toc li::before,
489
+ .markdown-body .toc-list li::before {
490
+ display: none;
491
+ }
492
+ .markdown-body nav.toc a,
493
+ .markdown-body .toc-list a {
494
+ color: var(--link-color);
495
+ text-decoration: none;
496
+ }
497
+ .markdown-body nav.toc a:hover,
498
+ .markdown-body .toc-list a:hover {
499
+ color: var(--link-hover);
500
+ }
501
+
502
+ /* Focus indicators */
503
+ .markdown-body a:focus-visible,
504
+ .markdown-body .tabs-bar-btn:focus-visible,
505
+ .markdown-body details.spoil > summary:focus-visible {
506
+ outline: 2px solid var(--link-color);
507
+ outline-offset: 2px;
508
+ text-decoration: none;
509
+ }
510
+ .markdown-body .task-list-item input[type="checkbox"]:focus-visible,
511
+ .markdown-body .task-list-item-checkbox:focus-visible {
512
+ outline: 2px solid var(--link-color);
513
+ outline-offset: 2px;
514
+ }
515
+
516
+ /* Responsive */
517
+ @media (max-width: 640px) {
518
+ .markdown-body {
519
+ padding: 2rem 1.25rem;
520
+ font-size: 17px;
521
+ }
522
+ .markdown-body .cols {
523
+ grid-template-columns: 1fr;
524
+ }
525
+ }
526
+
527
+ /* 8. Print */
528
+ @media print {
529
+ body {
530
+ background: #fff;
531
+ color: #000;
532
+ padding: 0;
533
+ }
534
+
535
+ .markdown-body {
536
+ max-width: 100%;
537
+ padding: 0;
538
+ border: none;
539
+ box-shadow: none;
540
+ }
541
+ }