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,462 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Vollkorn:ital,wght@0,400;0,600;0,700;1,400&family=Fira+Sans:wght@400;600;700&display=swap');
2
+ @import './common.css';
3
+
4
+ /* 1. Tokens and global setup */
5
+ :root {
6
+ --bg-color: #ffffff;
7
+ --text-main: #000000;
8
+ --text-muted: #444444;
9
+ --link-color: #004b93;
10
+ --link-hover: #003366;
11
+ --border-color: #000000;
12
+ --border-soft: #dddddd;
13
+
14
+ --header-font: 'Fira Sans', Helvetica, Arial, 'Noto Sans SC', 'Noto Sans TC', sans-serif;
15
+ --main-font: 'Vollkorn', 'Times New Roman', Times, 'Noto Serif SC', 'Noto Serif TC', serif;
16
+ --code-font: 'Liberation Mono', Courier, monospace;
17
+
18
+ --base-size: 16px;
19
+ --line-height: 1.6;
20
+
21
+ --markdown-body-max-width: 860px;
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: left;
48
+ }
49
+
50
+ /* 2. Headings and body copy */
51
+ .markdown-body h1,
52
+ .markdown-body h2,
53
+ .markdown-body h3,
54
+ .markdown-body h4,
55
+ .markdown-body h5,
56
+ .markdown-body h6 {
57
+ clear: both;
58
+ font-family: var(--header-font);
59
+ font-weight: 700;
60
+ color: var(--text-main);
61
+ margin-top: 2.2em;
62
+ margin-bottom: 0.8em;
63
+ line-height: 1.25;
64
+ }
65
+
66
+ .markdown-body h1 {
67
+ font-size: 2.4rem;
68
+ margin-top: 1rem;
69
+ margin-bottom: 1.5rem;
70
+ letter-spacing: -0.02em;
71
+ padding-bottom: 0.5rem;
72
+ border-bottom: 2px solid var(--border-color);
73
+ }
74
+
75
+ .markdown-body h2 {
76
+ font-size: 1.6rem;
77
+ border-bottom: 1px solid var(--border-soft);
78
+ padding-bottom: 0.3rem;
79
+ }
80
+
81
+ .markdown-body h3 {
82
+ font-size: 1.3rem;
83
+ font-weight: 600;
84
+ }
85
+
86
+ .markdown-body p {
87
+ margin-bottom: 1.2rem;
88
+ }
89
+
90
+ .markdown-body a {
91
+ color: var(--link-color);
92
+ text-decoration: none;
93
+ }
94
+
95
+ .markdown-body a:hover {
96
+ text-decoration: underline;
97
+ color: var(--link-hover);
98
+ }
99
+
100
+ .markdown-body strong {
101
+ font-weight: 700;
102
+ }
103
+
104
+ /* 5. Structural blocks */
105
+ .markdown-body blockquote {
106
+ margin: 2rem 0;
107
+ padding: 1.2rem 1.5rem;
108
+ background-color: #f8f9fa;
109
+ border: 1px solid var(--border-soft);
110
+ font-size: 0.95em;
111
+ color: var(--text-main);
112
+ }
113
+
114
+ .markdown-body blockquote blockquote {
115
+ font-size: 1em;
116
+ margin: 0.75em 0;
117
+ }
118
+
119
+ /* 3. Lists and task lists */
120
+ .markdown-body ul,
121
+ .markdown-body ol {
122
+ padding-left: 1.8rem;
123
+ margin-bottom: 1.2rem;
124
+ }
125
+
126
+ /* 4. Code and math */
127
+ .markdown-body code {
128
+ font-family: var(--code-font);
129
+ color: #000000;
130
+ font-size: 0.9em;
131
+ background-color: #f1f3f5;
132
+ padding: 0.1em 0.3em;
133
+ }
134
+
135
+ .markdown-body pre {
136
+ background-color: #f8f9fa;
137
+ padding: 1.2rem;
138
+ font-size: 0.85rem;
139
+ line-height: 1.45;
140
+ border: 1px solid var(--border-soft);
141
+ overflow-x: auto;
142
+ margin-bottom: 1.2rem;
143
+ }
144
+ .markdown-body pre code {
145
+ background: none;
146
+ padding: 0;
147
+ }
148
+
149
+ /* KaTeX math */
150
+ .markdown-body .katex {
151
+ font-size: 1.05em;
152
+ }
153
+ .markdown-body .katex-display {
154
+ overflow-x: auto;
155
+ overflow-y: hidden;
156
+ padding: 0.75rem 0.5rem;
157
+ margin: 1.5rem 0;
158
+ background: #f8f9fa;
159
+ border: 1px solid var(--border-soft);
160
+ }
161
+ .markdown-body .katex-error {
162
+ background: #fff3f3;
163
+ color: #a32a2a;
164
+ border: 1px solid #e0a0a0;
165
+ border-radius: 2px;
166
+ padding: 0.15em 0.35em;
167
+ font-family: var(--code-font);
168
+ font-size: 0.85em;
169
+ }
170
+
171
+ .markdown-body table {
172
+ margin: 2rem 0;
173
+ border-collapse: collapse;
174
+ font-size: 0.9em;
175
+ font-family: var(--header-font);
176
+ border-top: 2px solid var(--border-color);
177
+ border-bottom: 2px solid var(--border-color);
178
+ }
179
+
180
+ .markdown-body img {
181
+ margin: 1.2rem auto;
182
+ }
183
+
184
+ .markdown-body p > img {
185
+ display: inline;
186
+ margin: 0;
187
+ }
188
+
189
+ .markdown-body th,
190
+ .markdown-body td {
191
+ padding: 0.6rem 0.8rem;
192
+ text-align: left;
193
+ }
194
+
195
+ .markdown-body th {
196
+ font-weight: 600;
197
+ border-bottom: 1px solid var(--border-color);
198
+ }
199
+
200
+ .markdown-body .task-list-item {
201
+ list-style: none;
202
+ padding-left: 0;
203
+ }
204
+ .markdown-body .task-list-item input[type="checkbox"],
205
+ .markdown-body .task-list-item-checkbox {
206
+ appearance: none;
207
+ -webkit-appearance: none;
208
+ width: 1em;
209
+ height: 1em;
210
+ border: 2px solid var(--border-color);
211
+ border-radius: 2px;
212
+ background: var(--bg-color);
213
+ vertical-align: -0.1em;
214
+ margin-right: 0.5em;
215
+ cursor: default;
216
+ position: relative;
217
+ display: inline-block;
218
+ }
219
+ .markdown-body .task-list-item input[type="checkbox"]:checked,
220
+ .markdown-body .task-list-item-checkbox:checked {
221
+ background: var(--link-color);
222
+ border-color: var(--link-color);
223
+ }
224
+ .markdown-body .task-list-item input[type="checkbox"]:checked::after,
225
+ .markdown-body .task-list-item-checkbox:checked::after {
226
+ content: '';
227
+ position: absolute;
228
+ left: 2px;
229
+ top: -1px;
230
+ width: 4px;
231
+ height: 8px;
232
+ border: 2px solid #fff;
233
+ border-top: none;
234
+ border-left: none;
235
+ transform: rotate(45deg);
236
+ }
237
+
238
+ /* Footnotes */
239
+ .markdown-body .footnotes-sep {
240
+ margin: 2rem 0 1rem;
241
+ }
242
+ .markdown-body .footnotes {
243
+ font-size: 0.88em;
244
+ color: var(--text-muted);
245
+ border-top: 1px solid var(--border-soft);
246
+ padding-top: 1rem;
247
+ }
248
+ .markdown-body .footnotes ol {
249
+ margin-bottom: 0;
250
+ }
251
+ .markdown-body .footnote-ref a,
252
+ .markdown-body .footnote-backref {
253
+ color: var(--link-color);
254
+ text-decoration: none;
255
+ font-size: 0.85em;
256
+ vertical-align: super;
257
+ }
258
+
259
+ .markdown-body tbody tr:nth-child(even) {
260
+ background-color: #fbfbfb;
261
+ }
262
+
263
+ /* 6. Containers and layout helpers */
264
+ .markdown-body .success,
265
+ .markdown-body .info,
266
+ .markdown-body .warning,
267
+ .markdown-body .danger {
268
+ padding: 1rem 1.2rem;
269
+ margin: 1.5rem 0;
270
+ border: 1px solid var(--border-color);
271
+ background: var(--bg-color);
272
+ position: relative;
273
+ }
274
+
275
+ .markdown-body .info::before,
276
+ .markdown-body .success::before,
277
+ .markdown-body .warning::before,
278
+ .markdown-body .danger::before {
279
+ content: none;
280
+ }
281
+
282
+ .markdown-body details.spoil {
283
+ border: 1px solid var(--border-color);
284
+ margin-bottom: 1.2rem;
285
+ }
286
+ .markdown-body details.spoil > summary {
287
+ padding: 0.7rem 1rem;
288
+ font-family: var(--header-font);
289
+ font-weight: 600;
290
+ background-color: #f1f3f5;
291
+ cursor: pointer;
292
+ }
293
+ .markdown-body details.spoil[open] > summary {
294
+ border-bottom: 1px solid var(--border-color);
295
+ }
296
+ .markdown-body details.spoil > :not(summary) {
297
+ padding: 1rem;
298
+ }
299
+
300
+ .markdown-body .left {
301
+ float: left;
302
+ max-width: min(44%, 20rem);
303
+ padding: 0.75rem 1rem;
304
+ margin: 0 1.5rem 1rem 0;
305
+ background: #f1f3f5;
306
+ border: 1px solid var(--border-soft);
307
+ border-radius: 4px;
308
+ }
309
+ .markdown-body .right {
310
+ text-align: right;
311
+ margin: 0 0 1rem;
312
+ }
313
+ .markdown-body .center {
314
+ text-align: center;
315
+ margin: 0 0 1rem;
316
+ }
317
+
318
+ .markdown-body .cols {
319
+ display: grid;
320
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
321
+ gap: 1.5rem;
322
+ margin-bottom: 1.5rem;
323
+ }
324
+ .markdown-body .col {
325
+ padding: 1rem;
326
+ background: #f8f9fa;
327
+ border: 1px solid var(--border-soft);
328
+ }
329
+
330
+ .markdown-body .tabs {
331
+ border: 1px solid var(--border-color);
332
+ margin-bottom: 1.5rem;
333
+ }
334
+ .markdown-body .tabs-bar {
335
+ display: flex;
336
+ background: #f8f9fa;
337
+ border-bottom: 1px solid var(--border-color);
338
+ }
339
+ .markdown-body .tabs-bar-btn {
340
+ background: transparent;
341
+ border: none;
342
+ border-right: 1px solid var(--border-color);
343
+ padding: 0.6rem 1rem;
344
+ font-family: var(--header-font);
345
+ font-weight: 600;
346
+ cursor: pointer;
347
+ }
348
+ .markdown-body .tabs-bar-btn.active {
349
+ background: var(--bg-color);
350
+ border-bottom: 1px solid var(--bg-color);
351
+ margin-bottom: -1px;
352
+ }
353
+ .markdown-body .tab {
354
+ display: none;
355
+ padding: 1.2rem;
356
+ }
357
+ .markdown-body .tab.active { display: block; }
358
+ .markdown-body .tabs:not([data-js]) .tab { display: block; border-top: 1px solid var(--border-color); }
359
+
360
+ .markdown-body hr {
361
+ border: none;
362
+ border-top: 1px solid var(--border-color);
363
+ margin: 2rem 0;
364
+ }
365
+ /* 7. Navigation, footnotes, and plugin output */
366
+ .markdown-body span.red { color: #9e2a2b; font-weight: 600; }
367
+ .markdown-body span.yellow { color: #b8860b; font-weight: 600; }
368
+ .markdown-body span.green { color: #386641; font-weight: 600; }
369
+ .markdown-body span.blue { color: #2a5a8c; font-weight: 600; }
370
+
371
+ .markdown-body span.success,
372
+ .markdown-body span.info,
373
+ .markdown-body span.warning,
374
+ .markdown-body span.danger {
375
+ padding: 0.15em 0.5em;
376
+ font-family: var(--header-font);
377
+ font-size: 0.8em;
378
+ font-weight: 600;
379
+ border: 1px solid var(--text-main);
380
+ background: #fff;
381
+ vertical-align: baseline;
382
+ }
383
+ .markdown-body span.success { background: #e3f5e1; }
384
+ .markdown-body span.info { background: #e1f0fa; }
385
+ .markdown-body span.warning { background: #fff4d4; }
386
+ .markdown-body span.danger { background: #fcebeb; }
387
+
388
+ /* Container backgrounds */
389
+ .markdown-body div.success { background-color: #f4faeb; }
390
+ .markdown-body div.info { background-color: #eef6fc; }
391
+ .markdown-body div.warning { background-color: #fdf5e6; }
392
+ .markdown-body div.danger { background-color: #faecec; }
393
+
394
+ .markdown-body span.qrcode {
395
+ background: #fff;
396
+ border: 1px solid var(--border-soft);
397
+ }
398
+
399
+ /* TOC */
400
+ .markdown-body nav.toc,
401
+ .markdown-body .toc-list {
402
+ background: #f8f9fa;
403
+ border: 1px solid var(--border-soft);
404
+ padding: 1rem 1.5rem;
405
+ margin: 2rem 0;
406
+ font-family: var(--header-font);
407
+ font-size: 0.9em;
408
+ }
409
+ .markdown-body nav.toc ul,
410
+ .markdown-body .toc-list ul {
411
+ padding-left: 1.25em;
412
+ margin-bottom: 0;
413
+ }
414
+ .markdown-body nav.toc li,
415
+ .markdown-body .toc-list li {
416
+ margin-bottom: 0.3em;
417
+ }
418
+ .markdown-body nav.toc a,
419
+ .markdown-body .toc-list a {
420
+ color: var(--link-color);
421
+ text-decoration: none;
422
+ }
423
+ .markdown-body nav.toc a:hover,
424
+ .markdown-body .toc-list a:hover {
425
+ color: var(--link-hover);
426
+ text-decoration: underline;
427
+ }
428
+
429
+ /* Focus indicators */
430
+ .markdown-body a:focus-visible,
431
+ .markdown-body .tabs-bar-btn:focus-visible,
432
+ .markdown-body details.spoil > summary:focus-visible {
433
+ outline: 2px solid var(--link-color);
434
+ outline-offset: 2px;
435
+ text-decoration: none;
436
+ }
437
+ .markdown-body .task-list-item input[type="checkbox"]:focus-visible,
438
+ .markdown-body .task-list-item-checkbox:focus-visible {
439
+ outline: 2px solid var(--link-color);
440
+ outline-offset: 2px;
441
+ }
442
+
443
+ /* Responsive */
444
+ @media (max-width: 640px) {
445
+ .markdown-body {
446
+ padding: 2rem 1.25rem;
447
+ }
448
+ .markdown-body .left {
449
+ float: none;
450
+ max-width: 100%;
451
+ margin: 0 0 1.2rem;
452
+ }
453
+ .markdown-body .cols {
454
+ grid-template-columns: 1fr;
455
+ }
456
+ }
457
+
458
+ /* 8. Print */
459
+ @media print {
460
+ body { background: #fff; color: #000; padding: 0; }
461
+ .markdown-body { max-width: 100%; padding: 0; border: none; box-shadow: none; }
462
+ }