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,578 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,400;0,600;0,700;1,400&family=Cardo: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: #eee6d8;
7
+ --text-main: #4a3c31;
8
+ --text-muted: #736458;
9
+ --link-color: #2f6154;
10
+ --link-hover: #1e4037;
11
+ --border-color: #d1cfc9;
12
+
13
+ --header-font: 'Josefin Sans', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
14
+ --main-font: 'Cardo', 'Noto Serif SC', 'Noto Serif TC', serif;
15
+ --code-font: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
16
+
17
+ --info-bg: rgba(74, 144, 226, 0.12);
18
+ --info-border: #80a4c9;
19
+ --info-text: #436485;
20
+ --success-bg: rgba(67, 181, 92, 0.12);
21
+ --success-border: #7dbf8c;
22
+ --success-text: #4a7553;
23
+ --warning-bg: rgba(230, 167, 0, 0.12);
24
+ --warning-border: #cca23b;
25
+ --warning-text: #876d29;
26
+ --danger-bg: rgba(211, 60, 75, 0.12);
27
+ --danger-border: #c46d75;
28
+ --danger-text: #9c4b54;
29
+
30
+ --base-size: 17px;
31
+ --line-height: 1.8;
32
+
33
+ --markdown-body-max-width: 760px;
34
+ --markdown-body-padding: 5rem 2rem;
35
+ --markdown-body-border: none;
36
+ --markdown-body-radius: 0;
37
+ --markdown-body-shadow: none;
38
+ }
39
+
40
+ body {
41
+ background-color: var(--bg-color);
42
+ margin: 0;
43
+ padding: 0;
44
+ }
45
+
46
+ .markdown-body {
47
+ display: flow-root;
48
+ font-family: var(--main-font);
49
+ font-size: var(--base-size);
50
+ line-height: var(--line-height);
51
+ color: var(--text-main);
52
+ background-color: var(--bg-color);
53
+ max-width: var(--markdown-body-max-width);
54
+ margin: 0 auto;
55
+ padding: var(--markdown-body-padding);
56
+ border: var(--markdown-body-border);
57
+ border-radius: var(--markdown-body-radius);
58
+ box-shadow: var(--markdown-body-shadow);
59
+ }
60
+
61
+ /* 2. Headings and body copy */
62
+ .markdown-body h1,
63
+ .markdown-body h2,
64
+ .markdown-body h3,
65
+ .markdown-body h4,
66
+ .markdown-body h5,
67
+ .markdown-body h6 {
68
+ clear: both;
69
+ font-family: var(--header-font);
70
+ color: #111;
71
+ margin-top: 3em;
72
+ margin-bottom: 1.2rem;
73
+ font-weight: 700;
74
+ line-height: 1.3;
75
+ }
76
+
77
+ .markdown-body h1 {
78
+ font-size: 2.5em;
79
+ text-align: left;
80
+ margin-bottom: 1.5em;
81
+ letter-spacing: -0.03em;
82
+ color: var(--link-color);
83
+ }
84
+
85
+ .markdown-body h2 {
86
+ font-size: 1.6em;
87
+ font-weight: 600;
88
+ }
89
+
90
+ .markdown-body h3 {
91
+ font-size: 1.3em;
92
+ font-weight: 500;
93
+ }
94
+
95
+ .markdown-body p {
96
+ margin-bottom: 1.6em;
97
+ }
98
+
99
+ .markdown-body a {
100
+ color: var(--link-color);
101
+ text-decoration: none;
102
+ border-bottom: 1px solid var(--border-color);
103
+ transition: all 0.2s ease;
104
+ }
105
+
106
+ .markdown-body a:hover {
107
+ color: var(--link-hover);
108
+ border-bottom-color: var(--link-hover);
109
+ }
110
+
111
+ .markdown-body strong {
112
+ font-weight: 600;
113
+ }
114
+
115
+ /* 3. Lists and task lists */
116
+ .markdown-body ul,
117
+ .markdown-body ol {
118
+ padding-left: 1.5em;
119
+ margin-bottom: 1.6em;
120
+ }
121
+
122
+ .markdown-body li {
123
+ margin-bottom: 0.6em;
124
+ }
125
+
126
+ .markdown-body li::marker {
127
+ color: var(--link-color);
128
+ font-family: var(--header-font);
129
+ font-weight: 500;
130
+ }
131
+
132
+ .markdown-body .task-list-item {
133
+ list-style: none;
134
+ padding-left: 0;
135
+ }
136
+ .markdown-body .task-list-item input[type="checkbox"],
137
+ .markdown-body .task-list-item-checkbox {
138
+ appearance: none;
139
+ -webkit-appearance: none;
140
+ width: 1em;
141
+ height: 1em;
142
+ border: 2px solid var(--border-color);
143
+ border-radius: 3px;
144
+ background: #fff;
145
+ vertical-align: -0.1em;
146
+ margin-right: 0.5em;
147
+ cursor: default;
148
+ position: relative;
149
+ display: inline-block;
150
+ }
151
+ .markdown-body .task-list-item input[type="checkbox"]:checked,
152
+ .markdown-body .task-list-item-checkbox:checked {
153
+ background: var(--link-color);
154
+ border-color: var(--link-color);
155
+ }
156
+ .markdown-body .task-list-item input[type="checkbox"]:checked::after,
157
+ .markdown-body .task-list-item-checkbox:checked::after {
158
+ content: '';
159
+ position: absolute;
160
+ left: 2px;
161
+ top: -1px;
162
+ width: 4px;
163
+ height: 8px;
164
+ border: 2px solid #fff;
165
+ border-top: none;
166
+ border-left: none;
167
+ transform: rotate(45deg);
168
+ }
169
+
170
+ /* 4. Code and math */
171
+ .markdown-body code {
172
+ font-family: var(--code-font);
173
+ color: #2d1e0f;
174
+ background-color: rgba(0, 0, 0, 0.05);
175
+ padding: 0.2em 0.4em;
176
+ border-radius: 4px;
177
+ font-size: 0.85em;
178
+ }
179
+
180
+ .markdown-body pre {
181
+ background-color: #e0d5c1;
182
+ color: var(--text-main);
183
+ padding: 1.5em;
184
+ border-radius: 8px;
185
+ overflow-x: auto;
186
+ margin-bottom: 1.6em;
187
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
188
+ }
189
+
190
+ .markdown-body pre code {
191
+ background-color: transparent;
192
+ padding: 0;
193
+ color: inherit;
194
+ font-size: 0.9em;
195
+ }
196
+
197
+ /* 5. Structural blocks */
198
+ .markdown-body blockquote {
199
+ margin: 2em 0;
200
+ padding: 0.5em 0 0.5em 1.5em;
201
+ border: 1px solid var(--border-color);
202
+ border-radius: 6px;
203
+ font-style: italic;
204
+ font-size: 1.15em;
205
+ color: var(--text-muted);
206
+ background-color: #e5ddd0;
207
+ }
208
+
209
+ .markdown-body blockquote blockquote {
210
+ font-size: 1em;
211
+ margin: 0.75em 0;
212
+ }
213
+
214
+ .markdown-body table {
215
+ border-collapse: collapse;
216
+ margin-bottom: 2em;
217
+ font-size: 0.95em;
218
+ font-family: var(--header-font);
219
+ }
220
+
221
+ .markdown-body th,
222
+ .markdown-body td {
223
+ padding: 1em;
224
+ text-align: left;
225
+ border-bottom: 1px solid var(--border-color);
226
+ }
227
+
228
+ .markdown-body th {
229
+ font-weight: 500;
230
+ color: var(--text-muted);
231
+ text-transform: uppercase;
232
+ font-size: 0.85em;
233
+ letter-spacing: 0.05em;
234
+ }
235
+
236
+ .markdown-body hr {
237
+ border: 0;
238
+ height: 1px;
239
+ background-color: var(--border-color);
240
+ margin: 3em 0;
241
+ }
242
+
243
+ .markdown-body img {
244
+ margin: 1.5em auto;
245
+ }
246
+
247
+ .markdown-body p > img {
248
+ display: inline;
249
+ margin: 0;
250
+ }
251
+
252
+ /* 6. Containers and layout helpers */
253
+ .markdown-body .success,
254
+ .markdown-body .info,
255
+ .markdown-body .warning,
256
+ .markdown-body .danger {
257
+ padding: 1.2em 1.5em;
258
+ margin: 1.5em 0;
259
+ border-radius: 8px;
260
+ border: 1px solid;
261
+ font-family: var(--header-font);
262
+ font-size: 0.95em;
263
+ }
264
+
265
+ .markdown-body .info {
266
+ background: var(--info-bg);
267
+ color: var(--info-text);
268
+ border-color: var(--info-border);
269
+ }
270
+
271
+ .markdown-body .success {
272
+ background: var(--success-bg);
273
+ color: var(--success-text);
274
+ border-color: var(--success-border);
275
+ }
276
+
277
+ .markdown-body .warning {
278
+ background: var(--warning-bg);
279
+ color: var(--warning-text);
280
+ border-color: var(--warning-border);
281
+ }
282
+
283
+ .markdown-body .danger {
284
+ background: var(--danger-bg);
285
+ color: var(--danger-text);
286
+ border-color: var(--danger-border);
287
+ }
288
+
289
+ .markdown-body .left {
290
+ float: left;
291
+ max-width: min(44%, 20rem);
292
+ padding: 0.8em 1em;
293
+ margin: 0 1.5em 1em 0;
294
+ background: #e5ddd0;
295
+ border: 1px solid var(--border-color);
296
+ border-radius: 8px;
297
+ }
298
+
299
+ .markdown-body .right {
300
+ text-align: right;
301
+ margin: 0 0 1em;
302
+ }
303
+
304
+ .markdown-body .center {
305
+ text-align: center;
306
+ margin: 0 0 1em;
307
+ }
308
+
309
+ .markdown-body details.spoil {
310
+ background-color: var(--bg-color);
311
+ border: 1px solid var(--border-color);
312
+ border-radius: 8px;
313
+ margin-bottom: 1.6em;
314
+ overflow: hidden;
315
+ }
316
+
317
+ .markdown-body details.spoil > summary {
318
+ background-color: #dfd4bf;
319
+ padding: 0.95rem 1.1rem;
320
+ font-family: var(--header-font);
321
+ font-weight: 600;
322
+ color: var(--text-main);
323
+ cursor: pointer;
324
+ list-style: none;
325
+ user-select: none;
326
+ display: flex;
327
+ align-items: center;
328
+ gap: 0.7rem;
329
+ }
330
+
331
+ .markdown-body details.spoil[open] > summary {
332
+ border-bottom: 1px solid var(--border-color);
333
+ }
334
+
335
+ .markdown-body details.spoil > summary::-webkit-details-marker {
336
+ display: none;
337
+ }
338
+
339
+ .markdown-body details.spoil > summary::before {
340
+ content: '+';
341
+ display: inline-grid;
342
+ place-items: center;
343
+ width: 1.45rem;
344
+ height: 1.45rem;
345
+ border-radius: 999px;
346
+ background: #f6f0e6;
347
+ border: 1px solid var(--border-color);
348
+ color: var(--text-main);
349
+ font-weight: 700;
350
+ line-height: 1;
351
+ }
352
+
353
+ .markdown-body details.spoil[open] > summary::before {
354
+ content: '–';
355
+ }
356
+
357
+ .markdown-body details.spoil > :not(summary) {
358
+ padding: 1rem 1.1rem 1.1rem;
359
+ background-color: #f6f0e6;
360
+ }
361
+
362
+ .markdown-body .tabs {
363
+ border: 1px solid var(--border-color);
364
+ border-radius: 8px;
365
+ margin-bottom: 1.6em;
366
+ overflow: hidden;
367
+ background: #f6f0e6;
368
+ }
369
+
370
+ .markdown-body .tabs-bar {
371
+ display: flex;
372
+ gap: 0.4rem;
373
+ background: #dfd4bf;
374
+ padding: 0.5rem;
375
+ overflow-x: auto;
376
+ border-bottom: 1px solid var(--border-color);
377
+ scrollbar-width: none;
378
+ }
379
+
380
+ .markdown-body .tabs-bar::-webkit-scrollbar {
381
+ display: none;
382
+ }
383
+
384
+ .markdown-body .tabs-bar-btn {
385
+ background: transparent;
386
+ border: 1px solid transparent;
387
+ padding: 0.56rem 0.92rem;
388
+ border-radius: 999px;
389
+ cursor: pointer;
390
+ color: var(--text-muted);
391
+ font-family: var(--header-font);
392
+ font-weight: 700;
393
+ transition: all 0.2s;
394
+ white-space: nowrap;
395
+ }
396
+
397
+ .markdown-body .tabs-bar-btn:hover {
398
+ color: var(--text-main);
399
+ background: rgba(255, 255, 255, 0.4);
400
+ }
401
+
402
+ .markdown-body .tabs-bar-btn.active {
403
+ background: var(--border-color);
404
+ color: var(--text-main);
405
+ }
406
+
407
+ .markdown-body .tab {
408
+ display: none;
409
+ padding: 1.1rem 1.2rem 1.25rem;
410
+ }
411
+
412
+ .markdown-body .tab.active {
413
+ display: block;
414
+ }
415
+
416
+ .markdown-body .tabs:not([data-js]) .tab {
417
+ display: block;
418
+ }
419
+
420
+ .markdown-body .tabs:not([data-js]) .tab + .tab {
421
+ border-top: 1px solid var(--border-color);
422
+ }
423
+
424
+ .markdown-body .cols {
425
+ display: grid;
426
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
427
+ gap: 1.5rem;
428
+ margin-bottom: 1.6em;
429
+ }
430
+
431
+ .markdown-body .col {
432
+ padding: 1.2rem;
433
+ border: 1px solid var(--border-color);
434
+ border-radius: 8px;
435
+ background: #f6f0e6;
436
+ }
437
+
438
+ .markdown-body .col > *:last-child {
439
+ margin-bottom: 0;
440
+ }
441
+
442
+ /* 7. Navigation, footnotes, and plugin output */
443
+ .markdown-body .toc-wrapper {
444
+ /* Container element */
445
+ }
446
+
447
+ .markdown-body nav.toc,
448
+ .markdown-body .toc-list {
449
+ margin: 2.5em 0;
450
+ padding: 1.5em 2em;
451
+ background-color: rgba(0, 0, 0, 0.02);
452
+ border-radius: 8px;
453
+ font-family: var(--header-font);
454
+ font-size: 0.9em;
455
+ }
456
+
457
+ .markdown-body nav.toc ul,
458
+ .markdown-body .toc-list ul {
459
+ padding-left: 1.5em;
460
+ margin-bottom: 0;
461
+ }
462
+
463
+ .markdown-body nav.toc li,
464
+ .markdown-body .toc-list li {
465
+ margin-bottom: 0.3em;
466
+ }
467
+
468
+ .markdown-body nav.toc a,
469
+ .markdown-body .toc-list a {
470
+ color: var(--link-color);
471
+ text-decoration: none;
472
+ }
473
+
474
+ .markdown-body nav.toc a:hover,
475
+ .markdown-body .toc-list a:hover {
476
+ color: var(--link-hover);
477
+ text-decoration: underline;
478
+ }
479
+
480
+ .markdown-body span.red {
481
+ color: #d33c4b;
482
+ }
483
+
484
+ .markdown-body span.yellow {
485
+ color: #e6a700;
486
+ }
487
+
488
+ .markdown-body span.green {
489
+ color: #43b55c;
490
+ }
491
+
492
+ .markdown-body span.blue {
493
+ color: #4a90e2;
494
+ }
495
+
496
+ .markdown-body span.success,
497
+ .markdown-body span.info,
498
+ .markdown-body span.warning,
499
+ .markdown-body span.danger {
500
+ font-size: 0.75em;
501
+ font-family: var(--header-font);
502
+ font-weight: 600;
503
+ padding: 0.3em 0.8em;
504
+ border-radius: 20px;
505
+ color: #fff;
506
+ }
507
+
508
+ .markdown-body span.success {
509
+ background-color: var(--success-border);
510
+ }
511
+
512
+ .markdown-body span.info {
513
+ background-color: var(--info-border);
514
+ }
515
+
516
+ .markdown-body span.warning {
517
+ background-color: var(--warning-border);
518
+ }
519
+
520
+ .markdown-body span.danger {
521
+ background-color: var(--danger-border);
522
+ }
523
+
524
+ .markdown-body span.qrcode {
525
+ background: #fff;
526
+ border-radius: 6px;
527
+ }
528
+
529
+ /* Focus indicators */
530
+ .markdown-body a:focus-visible,
531
+ .markdown-body .tabs-bar-btn:focus-visible,
532
+ .markdown-body details.spoil > summary:focus-visible {
533
+ outline: 2px solid var(--link-color);
534
+ outline-offset: 2px;
535
+ border-radius: 4px;
536
+ text-decoration: none;
537
+ }
538
+ .markdown-body .task-list-item input[type="checkbox"]:focus-visible,
539
+ .markdown-body .task-list-item-checkbox:focus-visible {
540
+ outline: 2px solid var(--link-color);
541
+ outline-offset: 2px;
542
+ }
543
+
544
+ /* Responsive */
545
+ @media (max-width: 640px) {
546
+ .markdown-body {
547
+ padding: 2.5rem 1.25rem;
548
+ font-size: 15px;
549
+ }
550
+ .markdown-body .left {
551
+ float: none;
552
+ max-width: 100%;
553
+ margin: 0 0 1.6em;
554
+ }
555
+ .markdown-body .cols {
556
+ grid-template-columns: 1fr;
557
+ }
558
+ .markdown-body h1 {
559
+ font-size: 2em;
560
+ }
561
+ }
562
+
563
+ /* 8. Print */
564
+ @media print {
565
+ body {
566
+ background: #fff;
567
+ color: #000;
568
+ padding: 0;
569
+ }
570
+
571
+ .markdown-body {
572
+ max-width: 100%;
573
+ padding: 0;
574
+ border: none;
575
+ box-shadow: none;
576
+ }
577
+
578
+ }