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,493 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Indie+Flower&display=swap');
2
+ @import './common.css';
3
+
4
+ :root {
5
+ --bg-color: #fcf9f2;
6
+ --text-main: #3d3b38;
7
+ --text-muted: #736f68;
8
+ --link-color: #007bb5;
9
+ --link-hover: #ff007f;
10
+ --border-color: #d1cbc1;
11
+
12
+ --heading-font: 'Indie Flower', 'ZCOOL KuaiLe', 'HanziPen SC', 'Hannotate SC', 'Wawati SC', 'KaiTi', cursive;
13
+ --body-font: 'Indie Flower', 'ZCOOL KuaiLe', 'HanziPen SC', 'Hannotate SC', 'Wawati SC', 'KaiTi', cursive, 'Noto Sans SC', 'Noto Sans TC', sans-serif;
14
+ --code-font: 'Courier New', Courier, monospace;
15
+
16
+ --base-size: 19px;
17
+ --line-height: 1.6;
18
+
19
+ /* Sticky notes colors */
20
+ --note-green: #dcf5ca;
21
+ --note-blue: #cde6fa;
22
+ --note-yellow: #fef1ac;
23
+ --note-pink: #fad1e1;
24
+
25
+ --markdown-body-max-width: 800px;
26
+ --markdown-body-padding: 3rem 2rem;
27
+ --markdown-body-border: none;
28
+ --markdown-body-radius: 0;
29
+ --markdown-body-shadow: none;
30
+ }
31
+
32
+ body {
33
+ background-color: var(--bg-color);
34
+ margin: 0;
35
+ padding: 0;
36
+ }
37
+
38
+ .markdown-body {
39
+ display: flow-root;
40
+ font-family: var(--body-font);
41
+ font-size: var(--base-size);
42
+ line-height: var(--line-height);
43
+ color: var(--text-main);
44
+ background-color: var(--bg-color);
45
+ max-width: var(--markdown-body-max-width);
46
+ margin: 0 auto;
47
+ padding: var(--markdown-body-padding);
48
+ border: var(--markdown-body-border);
49
+ border-radius: var(--markdown-body-radius);
50
+ box-shadow: var(--markdown-body-shadow);
51
+ /* subtle notebook paper lines background */
52
+ background-image: repeating-linear-gradient(transparent, transparent 1.5rem, rgba(0, 150, 255, 0.08) 1.5rem, rgba(0, 150, 255, 0.08) 1.6rem);
53
+ background-attachment: local;
54
+ }
55
+
56
+ /* Headings */
57
+ .markdown-body h1,
58
+ .markdown-body h2,
59
+ .markdown-body h3,
60
+ .markdown-body h4,
61
+ .markdown-body h5,
62
+ .markdown-body h6 {
63
+ clear: both;
64
+ font-family: var(--heading-font);
65
+ color: #1a1a1a;
66
+ letter-spacing: 0.02em;
67
+ margin-top: 1.5em;
68
+ margin-bottom: 0.5em;
69
+ line-height: 1.3;
70
+ }
71
+
72
+ .markdown-body h1 {
73
+ font-size: 3rem;
74
+ color: #ff4081;
75
+ text-align: center;
76
+ transform: rotate(-2deg);
77
+ margin-bottom: 1em;
78
+ text-shadow: 2px 2px 0px rgba(255, 64, 129, 0.2);
79
+ }
80
+
81
+ .markdown-body h2 {
82
+ font-size: 2.2rem;
83
+ color: #0077a0;
84
+ border-bottom: 3px dashed #0077a0;
85
+ display: block;
86
+ width: fit-content;
87
+ transform: rotate(1deg);
88
+ }
89
+
90
+ .markdown-body h3 {
91
+ font-size: 1.6rem;
92
+ color: #4a7a1e;
93
+ }
94
+
95
+ /* Links */
96
+ .markdown-body a {
97
+ color: var(--link-color);
98
+ text-decoration: none;
99
+ border-bottom: 2px dotted var(--link-color);
100
+ transition: color 0.3s, border-bottom-color 0.3s;
101
+ }
102
+ .markdown-body a:hover {
103
+ color: var(--link-hover);
104
+ border-bottom-color: var(--link-hover);
105
+ }
106
+
107
+ /* Text */
108
+ .markdown-body p { margin-bottom: 1.4rem; font-weight: 400; }
109
+ .markdown-body strong { color: #bf0045; font-weight: 700; font-size: 1.05em; }
110
+
111
+ /* Blockquote */
112
+ .markdown-body blockquote blockquote {
113
+ margin: 0.5em 0;
114
+ transform: none;
115
+ }
116
+
117
+ .markdown-body blockquote {
118
+ margin: 2rem 1rem;
119
+ padding: 1rem 1.5rem;
120
+ background: #fff;
121
+ border-left: 6px solid #ffca28;
122
+ border-radius: 8px;
123
+ box-shadow: 2px 4px 10px rgba(0,0,0,0.05);
124
+ font-style: italic;
125
+ transform: rotate(-0.5deg);
126
+ }
127
+
128
+ /* Lists */
129
+ .markdown-body ul, .markdown-body ol {
130
+ margin-bottom: 1.4rem;
131
+ padding-left: 2rem;
132
+ font-weight: 400;
133
+ }
134
+ .markdown-body li { margin-bottom: 0.4rem; }
135
+ .markdown-body li::marker { color: #ff4081; font-family: var(--heading-font); }
136
+ .markdown-body .task-list-item {
137
+ list-style: none;
138
+ }
139
+ .markdown-body .task-list-item input[type="checkbox"],
140
+ .markdown-body .task-list-item-checkbox {
141
+ appearance: none;
142
+ -webkit-appearance: none;
143
+ width: 1.1em;
144
+ height: 1.1em;
145
+ border: 2px solid #ff4081;
146
+ border-radius: 4px;
147
+ background: #fff;
148
+ vertical-align: -0.15em;
149
+ margin-right: 0.5em;
150
+ cursor: default;
151
+ position: relative;
152
+ display: inline-block;
153
+ font-weight: 400;
154
+ }
155
+ .markdown-body .task-list-item input[type="checkbox"]:checked,
156
+ .markdown-body .task-list-item-checkbox:checked {
157
+ background: #ff4081;
158
+ border-color: #ff4081;
159
+ }
160
+ .markdown-body .task-list-item input[type="checkbox"]:checked::after,
161
+ .markdown-body .task-list-item-checkbox:checked::after {
162
+ content: '';
163
+ position: absolute;
164
+ left: 2px;
165
+ top: -1px;
166
+ width: 5px;
167
+ height: 9px;
168
+ border: 2px solid #fff;
169
+ border-top: none;
170
+ border-left: none;
171
+ transform: rotate(45deg);
172
+ }
173
+
174
+ /* Code */
175
+ .markdown-body code {
176
+ font-family: var(--code-font);
177
+ color: #1c1a17;
178
+ background: rgba(255, 200, 0, 0.3);
179
+ padding: 0.1em 0.4em;
180
+ border-radius: 8px;
181
+ font-size: 0.85em;
182
+ font-weight: bold;
183
+ }
184
+ .markdown-body pre {
185
+ background: #fdfaf5;
186
+ color: #3d3b38;
187
+ padding: 1.5rem;
188
+ border-radius: 12px;
189
+ box-shadow: inset 0 0 5px rgba(0,0,0,0.1);
190
+ font-size: 0.9em;
191
+ overflow-x: auto;
192
+ border: 3px dashed #d1cbc1;
193
+ }
194
+ .markdown-body pre code {
195
+ background: transparent;
196
+ color: inherit;
197
+ }
198
+
199
+ /* Tables */
200
+ .markdown-body table {
201
+ border-collapse: separate;
202
+ border-spacing: 0;
203
+ margin: 2rem 0;
204
+ background: #fff;
205
+ border-radius: 12px;
206
+ overflow: hidden;
207
+ box-shadow: 0 4px 6px rgba(0,0,0,0.05);
208
+ }
209
+ .markdown-body img {
210
+ margin: 1.4rem auto;
211
+ }
212
+
213
+ .markdown-body p > img {
214
+ display: inline;
215
+ margin: 0;
216
+ }
217
+ .markdown-body th, .markdown-body td {
218
+ padding: 0.8rem 1rem;
219
+ border-bottom: 1px dashed var(--border-color);
220
+ font-weight: 400;
221
+ }
222
+ .markdown-body th {
223
+ background: #ffeb3b;
224
+ color: #333;
225
+ font-family: var(--heading-font);
226
+ font-size: 1.2em;
227
+ text-align: left;
228
+ font-weight: 700;
229
+ }
230
+
231
+ /* Callout Note Boxes (Sticky notes) */
232
+ .markdown-body .success,
233
+ .markdown-body .info,
234
+ .markdown-body .warning,
235
+ .markdown-body .danger {
236
+ padding: 1.5rem;
237
+ margin: 2rem 0;
238
+ border-radius: 2px 15px 2px 15px;
239
+ box-shadow: 2px 4px 8px rgba(0,0,0,0.1);
240
+ font-weight: 700;
241
+ position: relative;
242
+ }
243
+
244
+ .markdown-body .success { background: var(--note-green); transform: rotate(1deg); }
245
+ .markdown-body .info { background: var(--note-blue); transform: rotate(-1deg); }
246
+ .markdown-body .warning { background: var(--note-yellow); transform: rotate(0.5deg); }
247
+ .markdown-body .danger { background: var(--note-pink); transform: rotate(-1.5deg); }
248
+
249
+ /* Tape effect for stickies */
250
+ .markdown-body .success::before,
251
+ .markdown-body .info::before,
252
+ .markdown-body .warning::before,
253
+ .markdown-body .danger::before {
254
+ content: "";
255
+ position: absolute;
256
+ top: -10px;
257
+ left: 50%;
258
+ transform: translateX(-50%) rotate(-2deg);
259
+ width: 60px;
260
+ height: 25px;
261
+ background: rgba(255,255,255,0.5);
262
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1);
263
+ }
264
+
265
+ /* Badges */
266
+ .markdown-body span.success,
267
+ .markdown-body span.info,
268
+ .markdown-body span.warning,
269
+ .markdown-body span.danger {
270
+ padding: 0.2em 0.8em;
271
+ font-family: var(--heading-font);
272
+ font-size: 0.9em;
273
+ border-radius: 20px;
274
+ vertical-align: middle;
275
+ box-shadow: 1px 2px 0px rgba(0,0,0,0.15);
276
+ color: #111;
277
+ }
278
+ .markdown-body span.success { background: #69f0ae; }
279
+ .markdown-body span.info { background: #40c4ff; }
280
+ .markdown-body span.warning { background: #ffd740; }
281
+ .markdown-body span.danger { background: #ff5252; color: #fff; }
282
+
283
+ /* Spoilers */
284
+ .markdown-body details.spoil {
285
+ background: #fff;
286
+ border: 2px dashed var(--border-color);
287
+ border-radius: 12px;
288
+ margin-bottom: 1.5em;
289
+ overflow: hidden;
290
+ }
291
+ .markdown-body details.spoil > summary {
292
+ padding: 1rem;
293
+ background: #fdfbf7;
294
+ font-family: var(--heading-font);
295
+ font-size: 1.2rem;
296
+ cursor: pointer;
297
+ color: var(--link-color);
298
+ }
299
+ .markdown-body details.spoil > :not(summary) { padding: 1rem; }
300
+
301
+ /* Layout Containers */
302
+ .markdown-body .left {
303
+ float: left;
304
+ max-width: min(44%, 20rem);
305
+ padding: 0.8rem 1rem;
306
+ margin: 0 1.5rem 1rem 0;
307
+ background: rgba(255, 200, 0, 0.2);
308
+ border: 1px solid var(--border-color);
309
+ border-radius: 12px;
310
+ }
311
+ .markdown-body .right {
312
+ text-align: right;
313
+ margin: 0 0 1rem;
314
+ }
315
+ .markdown-body .center {
316
+ text-align: center;
317
+ margin: 0 0 1rem;
318
+ }
319
+
320
+ /* Tabs & Cols */
321
+ .markdown-body .cols {
322
+ display: grid;
323
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
324
+ gap: 1.5rem;
325
+ margin-bottom: 2rem;
326
+ }
327
+ .markdown-body .col {
328
+ padding: 1.2rem;
329
+ background: #fff;
330
+ border-radius: 12px;
331
+ box-shadow: 2px 4px 10px rgba(0,0,0,0.05);
332
+ border: 1px solid var(--border-color);
333
+ }
334
+
335
+ .markdown-body .tabs {
336
+ background: #fff;
337
+ border-radius: 12px;
338
+ box-shadow: 0 4px 10px rgba(0,0,0,0.05);
339
+ margin-bottom: 2rem;
340
+ overflow: hidden;
341
+ border: 2px solid var(--border-color);
342
+ }
343
+ .markdown-body .tabs-bar {
344
+ display: flex;
345
+ background: #f0ede6;
346
+ border-bottom: 2px solid var(--border-color);
347
+ }
348
+ .markdown-body .tabs-bar-btn {
349
+ background: none;
350
+ border: none;
351
+ padding: 0.8rem 1.2rem;
352
+ font-family: var(--heading-font);
353
+ font-size: 1.1rem;
354
+ cursor: pointer;
355
+ color: var(--text-muted);
356
+ }
357
+ .markdown-body .tabs-bar-btn.active {
358
+ background: #fff;
359
+ color: var(--text-main);
360
+ border-bottom: 3px solid #ff4081;
361
+ }
362
+ .markdown-body .tab { display: none; padding: 1.5rem; }
363
+ .markdown-body .tab.active { display: block; }
364
+ .markdown-body .tabs:not([data-js]) .tab { display: block; border-top: 1px dashed var(--border-color); }
365
+
366
+ /* Horizontal Rule */
367
+ .markdown-body hr {
368
+ border: none;
369
+ border-top: 4px dotted #ccc;
370
+ margin: 3rem 0;
371
+ }
372
+ /* 7. Navigation, footnotes, and plugin output */
373
+ .markdown-body span.red { color: #ff595e; font-weight: bold; }
374
+ .markdown-body span.yellow { color: #d49a00; font-weight: bold; }
375
+ .markdown-body span.green { color: #8ac926; font-weight: bold; }
376
+ .markdown-body span.blue { color: #1982c4; font-weight: bold; }
377
+
378
+ .markdown-body span.qrcode {
379
+ background: #fff;
380
+ border-radius: 8px;
381
+ }
382
+
383
+ /* TOC */
384
+ .markdown-body nav.toc,
385
+ .markdown-body .toc-list {
386
+ background: #fff;
387
+ border: 2px dashed var(--border-color);
388
+ border-radius: 12px;
389
+ padding: 1.2rem 1.5rem;
390
+ margin: 2rem 0;
391
+ font-family: var(--heading-font);
392
+ }
393
+ .markdown-body nav.toc ul,
394
+ .markdown-body .toc-list ul {
395
+ padding-left: 1.5em;
396
+ margin-bottom: 0;
397
+ }
398
+ .markdown-body nav.toc li,
399
+ .markdown-body .toc-list li {
400
+ margin-bottom: 0.35em;
401
+ }
402
+ .markdown-body nav.toc li::marker,
403
+ .markdown-body .toc-list li::marker {
404
+ color: var(--link-color);
405
+ }
406
+ .markdown-body nav.toc a,
407
+ .markdown-body .toc-list a {
408
+ color: var(--link-color);
409
+ text-decoration: none;
410
+ border-bottom: 2px dotted var(--link-color);
411
+ }
412
+ .markdown-body nav.toc a:hover,
413
+ .markdown-body .toc-list a:hover {
414
+ color: var(--link-hover);
415
+ border-bottom-color: var(--link-hover);
416
+ }
417
+
418
+ /* Footnotes */
419
+ .markdown-body .footnotes-sep {
420
+ margin: 2.5rem 0 1rem;
421
+ border-top: 3px dotted #ccc;
422
+ }
423
+ .markdown-body .footnotes {
424
+ font-size: 0.88em;
425
+ color: var(--text-muted);
426
+ padding-top: 0.5rem;
427
+ font-family: var(--body-font);
428
+ font-weight: 400;
429
+ }
430
+ .markdown-body .footnotes ol {
431
+ margin-bottom: 0;
432
+ }
433
+ .markdown-body .footnote-ref a,
434
+ .markdown-body .footnote-backref {
435
+ color: var(--link-color);
436
+ text-decoration: none;
437
+ font-size: 0.85em;
438
+ vertical-align: super;
439
+ }
440
+
441
+ /* Focus indicators */
442
+ .markdown-body a:focus-visible,
443
+ .markdown-body .tabs-bar-btn:focus-visible,
444
+ .markdown-body details.spoil > summary:focus-visible {
445
+ outline: 3px solid #ff4081;
446
+ outline-offset: 2px;
447
+ border-radius: 4px;
448
+ text-decoration: none;
449
+ }
450
+ .markdown-body .task-list-item input[type="checkbox"]:focus-visible,
451
+ .markdown-body .task-list-item-checkbox:focus-visible {
452
+ outline: 3px solid #ff4081;
453
+ outline-offset: 2px;
454
+ }
455
+
456
+ /* Responsive */
457
+ @media (max-width: 640px) {
458
+ .markdown-body {
459
+ padding: 2rem 1.25rem;
460
+ font-size: 17px;
461
+ background-image: none;
462
+ }
463
+ .markdown-body h1 {
464
+ font-size: 2.2rem;
465
+ transform: none;
466
+ }
467
+ .markdown-body h2 {
468
+ transform: none;
469
+ }
470
+ .markdown-body .left {
471
+ float: none;
472
+ max-width: 100%;
473
+ margin: 0 0 1.4rem;
474
+ }
475
+ .markdown-body .cols {
476
+ grid-template-columns: 1fr;
477
+ }
478
+ .markdown-body .blockquote {
479
+ transform: none;
480
+ }
481
+ .markdown-body .success,
482
+ .markdown-body .info,
483
+ .markdown-body .warning,
484
+ .markdown-body .danger {
485
+ transform: none;
486
+ }
487
+ }
488
+
489
+ /* 8. Print */
490
+ @media print {
491
+ body { background: #fff; color: #000; padding: 0; }
492
+ .markdown-body { max-width: 100%; padding: 0; border: none; box-shadow: none; }
493
+ }