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