svmarkdown 0.1.0 → 0.1.2
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.
- package/README.md +10 -1
- package/README.zh-CN.md +10 -1
- package/dist/{SvmdChildren-V6hrbwsd.js → SvmdChildren-D_VMjuB6.js} +185 -154
- package/dist/index.js +1 -1
- package/dist/types.d.ts +1 -0
- package/package.json +9 -3
- package/src/Markdown.svelte +56 -0
- package/src/SvmdChildren.svelte +14 -0
- package/src/index.ts +21 -0
- package/src/internal/RenderNode.svelte +126 -0
- package/src/internal/RenderNodes.svelte +16 -0
- package/src/parser.ts +626 -0
- package/src/types.ts +101 -0
package/README.md
CHANGED
|
@@ -173,6 +173,15 @@ const parseOptions: SvmdParseOptions = {
|
|
|
173
173
|
/>
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
+
### Soft break behavior
|
|
177
|
+
|
|
178
|
+
```svelte
|
|
179
|
+
<Markdown
|
|
180
|
+
content={md}
|
|
181
|
+
renderOptions={{ softBreak: 'space' }} // 'space' | 'newline' | 'br'
|
|
182
|
+
/>
|
|
183
|
+
```
|
|
184
|
+
|
|
176
185
|
### Control component inference
|
|
177
186
|
|
|
178
187
|
```svelte
|
|
@@ -207,4 +216,4 @@ const parseOptions: SvmdParseOptions = {
|
|
|
207
216
|
|
|
208
217
|
## License
|
|
209
218
|
|
|
210
|
-
MIT License
|
|
219
|
+
MIT License
|
package/README.zh-CN.md
CHANGED
|
@@ -171,6 +171,15 @@ const options: SvmdParseOptions = {
|
|
|
171
171
|
/>
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
### 软换行渲染策略
|
|
175
|
+
|
|
176
|
+
```svelte
|
|
177
|
+
<Markdown
|
|
178
|
+
content={md}
|
|
179
|
+
renderOptions={{ softBreak: 'space' }} // 'space' | 'newline' | 'br'
|
|
180
|
+
/>
|
|
181
|
+
```
|
|
182
|
+
|
|
174
183
|
### 关闭组件块自动推断
|
|
175
184
|
|
|
176
185
|
```svelte
|
|
@@ -205,4 +214,4 @@ const options: SvmdParseOptions = {
|
|
|
205
214
|
|
|
206
215
|
## License
|
|
207
216
|
|
|
208
|
-
MIT License
|
|
217
|
+
MIT License
|
|
@@ -404,11 +404,12 @@ function nextKey(state) {
|
|
|
404
404
|
//#endregion
|
|
405
405
|
//#region src/internal/RenderNode.svelte
|
|
406
406
|
var root_4 = $.from_html(`<br/>`);
|
|
407
|
-
var
|
|
408
|
-
var
|
|
407
|
+
var root_6 = $.from_html(`<br/>`);
|
|
408
|
+
var root_18 = $.from_html(`<code> </code>`);
|
|
409
|
+
var root_19 = $.from_html(`<pre>
|
|
409
410
|
<code> </code>
|
|
410
411
|
</pre>`);
|
|
411
|
-
var
|
|
412
|
+
var root_28 = $.from_html(`<pre><code> </code></pre>`);
|
|
412
413
|
function RenderNode($$anchor, $$props) {
|
|
413
414
|
$.push($$props, true);
|
|
414
415
|
const VOID_TAGS = new Set([
|
|
@@ -435,6 +436,9 @@ function RenderNode($$anchor, $$props) {
|
|
|
435
436
|
if (!codeNode.lang) return;
|
|
436
437
|
return `language-${codeNode.lang}`;
|
|
437
438
|
}
|
|
439
|
+
function renderSoftBreak() {
|
|
440
|
+
return $$props.renderOptions?.softBreak ?? "space";
|
|
441
|
+
}
|
|
438
442
|
var fragment = $.comment();
|
|
439
443
|
var node_1 = $.first_child(fragment);
|
|
440
444
|
var consequent = ($$anchor$1) => {
|
|
@@ -442,61 +446,88 @@ function RenderNode($$anchor, $$props) {
|
|
|
442
446
|
$.template_effect(() => $.set_text(text, $$props.node.value));
|
|
443
447
|
$.append($$anchor$1, text);
|
|
444
448
|
};
|
|
445
|
-
var
|
|
449
|
+
var alternate_14 = ($$anchor$1) => {
|
|
446
450
|
var fragment_2 = $.comment();
|
|
447
451
|
var node_2 = $.first_child(fragment_2);
|
|
448
|
-
var
|
|
452
|
+
var consequent_4 = ($$anchor$2) => {
|
|
449
453
|
var fragment_3 = $.comment();
|
|
450
454
|
var node_3 = $.first_child(fragment_3);
|
|
451
455
|
var consequent_1 = ($$anchor$3) => {
|
|
452
456
|
var br = root_4();
|
|
453
457
|
$.append($$anchor$3, br);
|
|
454
458
|
};
|
|
455
|
-
var
|
|
456
|
-
var
|
|
457
|
-
|
|
458
|
-
|
|
459
|
+
var alternate_2 = ($$anchor$3) => {
|
|
460
|
+
var fragment_4 = $.comment();
|
|
461
|
+
var node_4 = $.first_child(fragment_4);
|
|
462
|
+
var consequent_2 = ($$anchor$4) => {
|
|
463
|
+
var br_1 = root_6();
|
|
464
|
+
$.append($$anchor$4, br_1);
|
|
465
|
+
};
|
|
466
|
+
var alternate_1 = ($$anchor$4) => {
|
|
467
|
+
var fragment_5 = $.comment();
|
|
468
|
+
var node_5 = $.first_child(fragment_5);
|
|
469
|
+
var consequent_3 = ($$anchor$5) => {
|
|
470
|
+
var text_1 = $.text();
|
|
471
|
+
text_1.nodeValue = "\n";
|
|
472
|
+
$.append($$anchor$5, text_1);
|
|
473
|
+
};
|
|
474
|
+
var alternate = ($$anchor$5) => {
|
|
475
|
+
var text_2 = $.text();
|
|
476
|
+
text_2.nodeValue = " ";
|
|
477
|
+
$.append($$anchor$5, text_2);
|
|
478
|
+
};
|
|
479
|
+
$.if(node_5, ($$render) => {
|
|
480
|
+
if (renderSoftBreak() === "newline") $$render(consequent_3);
|
|
481
|
+
else $$render(alternate, false);
|
|
482
|
+
}, true);
|
|
483
|
+
$.append($$anchor$4, fragment_5);
|
|
484
|
+
};
|
|
485
|
+
$.if(node_4, ($$render) => {
|
|
486
|
+
if (renderSoftBreak() === "br") $$render(consequent_2);
|
|
487
|
+
else $$render(alternate_1, false);
|
|
488
|
+
});
|
|
489
|
+
$.append($$anchor$3, fragment_4);
|
|
459
490
|
};
|
|
460
491
|
$.if(node_3, ($$render) => {
|
|
461
492
|
if ($$props.node.hard) $$render(consequent_1);
|
|
462
|
-
else $$render(
|
|
493
|
+
else $$render(alternate_2, false);
|
|
463
494
|
});
|
|
464
495
|
$.append($$anchor$2, fragment_3);
|
|
465
496
|
};
|
|
466
|
-
var
|
|
467
|
-
var
|
|
468
|
-
var
|
|
469
|
-
var
|
|
470
|
-
var
|
|
471
|
-
var
|
|
472
|
-
var
|
|
473
|
-
var
|
|
474
|
-
var
|
|
475
|
-
$.html(
|
|
476
|
-
$.append($$anchor$4,
|
|
497
|
+
var alternate_13 = ($$anchor$2) => {
|
|
498
|
+
var fragment_8 = $.comment();
|
|
499
|
+
var node_6 = $.first_child(fragment_8);
|
|
500
|
+
var consequent_6 = ($$anchor$3) => {
|
|
501
|
+
var fragment_9 = $.comment();
|
|
502
|
+
var node_7 = $.first_child(fragment_9);
|
|
503
|
+
var consequent_5 = ($$anchor$4) => {
|
|
504
|
+
var fragment_10 = $.comment();
|
|
505
|
+
var node_8 = $.first_child(fragment_10);
|
|
506
|
+
$.html(node_8, () => $$props.node.value);
|
|
507
|
+
$.append($$anchor$4, fragment_10);
|
|
477
508
|
};
|
|
478
|
-
var
|
|
479
|
-
var
|
|
480
|
-
$.template_effect(() => $.set_text(
|
|
481
|
-
$.append($$anchor$4,
|
|
509
|
+
var alternate_3 = ($$anchor$4) => {
|
|
510
|
+
var text_3 = $.text();
|
|
511
|
+
$.template_effect(() => $.set_text(text_3, $$props.node.value));
|
|
512
|
+
$.append($$anchor$4, text_3);
|
|
482
513
|
};
|
|
483
|
-
$.if(
|
|
484
|
-
if ($$props.renderOptions?.allowDangerousHtml) $$render(
|
|
485
|
-
else $$render(
|
|
514
|
+
$.if(node_7, ($$render) => {
|
|
515
|
+
if ($$props.renderOptions?.allowDangerousHtml) $$render(consequent_5);
|
|
516
|
+
else $$render(alternate_3, false);
|
|
486
517
|
});
|
|
487
|
-
$.append($$anchor$3,
|
|
518
|
+
$.append($$anchor$3, fragment_9);
|
|
488
519
|
};
|
|
489
|
-
var
|
|
490
|
-
var
|
|
491
|
-
var
|
|
492
|
-
var
|
|
520
|
+
var alternate_12 = ($$anchor$3) => {
|
|
521
|
+
var fragment_12 = $.comment();
|
|
522
|
+
var node_9 = $.first_child(fragment_12);
|
|
523
|
+
var consequent_9 = ($$anchor$4) => {
|
|
493
524
|
const CodeRenderer = $.derived(() => components().code);
|
|
494
|
-
var
|
|
495
|
-
var
|
|
496
|
-
var
|
|
497
|
-
var
|
|
498
|
-
var
|
|
499
|
-
$.component(
|
|
525
|
+
var fragment_13 = $.comment();
|
|
526
|
+
var node_10 = $.first_child(fragment_13);
|
|
527
|
+
var consequent_7 = ($$anchor$5) => {
|
|
528
|
+
var fragment_14 = $.comment();
|
|
529
|
+
var node_11 = $.first_child(fragment_14);
|
|
530
|
+
$.component(node_11, () => $.get(CodeRenderer), ($$anchor$6, CodeRenderer_1) => {
|
|
500
531
|
CodeRenderer_1($$anchor$6, {
|
|
501
532
|
get node() {
|
|
502
533
|
return $$props.node;
|
|
@@ -518,56 +549,56 @@ function RenderNode($$anchor, $$props) {
|
|
|
518
549
|
}
|
|
519
550
|
});
|
|
520
551
|
});
|
|
521
|
-
$.append($$anchor$5,
|
|
552
|
+
$.append($$anchor$5, fragment_14);
|
|
522
553
|
};
|
|
523
|
-
var
|
|
524
|
-
var
|
|
525
|
-
var
|
|
526
|
-
var
|
|
527
|
-
var code =
|
|
554
|
+
var alternate_5 = ($$anchor$5) => {
|
|
555
|
+
var fragment_15 = $.comment();
|
|
556
|
+
var node_12 = $.first_child(fragment_15);
|
|
557
|
+
var consequent_8 = ($$anchor$6) => {
|
|
558
|
+
var code = root_18();
|
|
528
559
|
$.attribute_effect(code, () => ({ ...$$props.node.attrs }));
|
|
529
|
-
var
|
|
560
|
+
var text_4 = $.child(code, true);
|
|
530
561
|
$.reset(code);
|
|
531
|
-
$.template_effect(() => $.set_text(
|
|
562
|
+
$.template_effect(() => $.set_text(text_4, $$props.node.text));
|
|
532
563
|
$.append($$anchor$6, code);
|
|
533
564
|
};
|
|
534
|
-
var
|
|
535
|
-
var pre =
|
|
565
|
+
var alternate_4 = ($$anchor$6) => {
|
|
566
|
+
var pre = root_19();
|
|
536
567
|
var code_1 = $.sibling($.child(pre));
|
|
537
568
|
$.attribute_effect(code_1, ($0) => ({
|
|
538
569
|
class: $0,
|
|
539
570
|
...$$props.node.attrs
|
|
540
571
|
}), [() => codeClassName($$props.node)]);
|
|
541
|
-
var
|
|
572
|
+
var text_5 = $.child(code_1, true);
|
|
542
573
|
$.reset(code_1);
|
|
543
574
|
$.next();
|
|
544
575
|
$.reset(pre);
|
|
545
|
-
$.template_effect(() => $.set_text(
|
|
576
|
+
$.template_effect(() => $.set_text(text_5, $$props.node.text));
|
|
546
577
|
$.append($$anchor$6, pre);
|
|
547
578
|
};
|
|
548
|
-
$.if(
|
|
549
|
-
if ($$props.node.inline) $$render(
|
|
550
|
-
else $$render(
|
|
579
|
+
$.if(node_12, ($$render) => {
|
|
580
|
+
if ($$props.node.inline) $$render(consequent_8);
|
|
581
|
+
else $$render(alternate_4, false);
|
|
551
582
|
}, true);
|
|
552
|
-
$.append($$anchor$5,
|
|
583
|
+
$.append($$anchor$5, fragment_15);
|
|
553
584
|
};
|
|
554
|
-
$.if(
|
|
555
|
-
if ($.get(CodeRenderer)) $$render(
|
|
556
|
-
else $$render(
|
|
585
|
+
$.if(node_10, ($$render) => {
|
|
586
|
+
if ($.get(CodeRenderer)) $$render(consequent_7);
|
|
587
|
+
else $$render(alternate_5, false);
|
|
557
588
|
});
|
|
558
|
-
$.append($$anchor$4,
|
|
589
|
+
$.append($$anchor$4, fragment_13);
|
|
559
590
|
};
|
|
560
|
-
var
|
|
561
|
-
var
|
|
562
|
-
var
|
|
563
|
-
var
|
|
591
|
+
var alternate_11 = ($$anchor$4) => {
|
|
592
|
+
var fragment_16 = $.comment();
|
|
593
|
+
var node_13 = $.first_child(fragment_16);
|
|
594
|
+
var consequent_14 = ($$anchor$5) => {
|
|
564
595
|
const ComponentRenderer = $.derived(() => components()[$$props.node.name]);
|
|
565
|
-
var
|
|
566
|
-
var
|
|
567
|
-
var
|
|
568
|
-
var
|
|
569
|
-
var
|
|
570
|
-
$.component(
|
|
596
|
+
var fragment_17 = $.comment();
|
|
597
|
+
var node_14 = $.first_child(fragment_17);
|
|
598
|
+
var consequent_11 = ($$anchor$6) => {
|
|
599
|
+
var fragment_18 = $.comment();
|
|
600
|
+
var node_15 = $.first_child(fragment_18);
|
|
601
|
+
$.component(node_15, () => $.get(ComponentRenderer), ($$anchor$7, ComponentRenderer_1) => {
|
|
571
602
|
ComponentRenderer_1($$anchor$7, $.spread_props(() => $$props.node.props, {
|
|
572
603
|
get node() {
|
|
573
604
|
return $$props.node;
|
|
@@ -579,9 +610,9 @@ function RenderNode($$anchor, $$props) {
|
|
|
579
610
|
return $$props.node.source;
|
|
580
611
|
},
|
|
581
612
|
children: ($$anchor$8, $$slotProps) => {
|
|
582
|
-
var
|
|
583
|
-
var
|
|
584
|
-
var
|
|
613
|
+
var fragment_19 = $.comment();
|
|
614
|
+
var node_16 = $.first_child(fragment_19);
|
|
615
|
+
var consequent_10 = ($$anchor$9) => {
|
|
585
616
|
RenderNodes($$anchor$9, {
|
|
586
617
|
get nodes() {
|
|
587
618
|
return $$props.node.children;
|
|
@@ -594,20 +625,20 @@ function RenderNode($$anchor, $$props) {
|
|
|
594
625
|
}
|
|
595
626
|
});
|
|
596
627
|
};
|
|
597
|
-
$.if(
|
|
598
|
-
if ($$props.node.children.length > 0) $$render(
|
|
628
|
+
$.if(node_16, ($$render) => {
|
|
629
|
+
if ($$props.node.children.length > 0) $$render(consequent_10);
|
|
599
630
|
});
|
|
600
|
-
$.append($$anchor$8,
|
|
631
|
+
$.append($$anchor$8, fragment_19);
|
|
601
632
|
},
|
|
602
633
|
$$slots: { default: true }
|
|
603
634
|
}));
|
|
604
635
|
});
|
|
605
|
-
$.append($$anchor$6,
|
|
636
|
+
$.append($$anchor$6, fragment_18);
|
|
606
637
|
};
|
|
607
|
-
var
|
|
608
|
-
var
|
|
609
|
-
var
|
|
610
|
-
var
|
|
638
|
+
var alternate_7 = ($$anchor$6) => {
|
|
639
|
+
var fragment_21 = $.comment();
|
|
640
|
+
var node_17 = $.first_child(fragment_21);
|
|
641
|
+
var consequent_12 = ($$anchor$7) => {
|
|
611
642
|
RenderNodes($$anchor$7, {
|
|
612
643
|
get nodes() {
|
|
613
644
|
return $$props.node.children;
|
|
@@ -620,51 +651,51 @@ function RenderNode($$anchor, $$props) {
|
|
|
620
651
|
}
|
|
621
652
|
});
|
|
622
653
|
};
|
|
623
|
-
var
|
|
624
|
-
var
|
|
625
|
-
var
|
|
626
|
-
var
|
|
627
|
-
var pre_1 =
|
|
654
|
+
var alternate_6 = ($$anchor$7) => {
|
|
655
|
+
var fragment_23 = $.comment();
|
|
656
|
+
var node_18 = $.first_child(fragment_23);
|
|
657
|
+
var consequent_13 = ($$anchor$8) => {
|
|
658
|
+
var pre_1 = root_28();
|
|
628
659
|
var code_2 = $.child(pre_1);
|
|
629
|
-
var
|
|
660
|
+
var text_6 = $.child(code_2, true);
|
|
630
661
|
$.reset(code_2);
|
|
631
662
|
$.reset(pre_1);
|
|
632
|
-
$.template_effect(() => $.set_text(
|
|
663
|
+
$.template_effect(() => $.set_text(text_6, $$props.node.source));
|
|
633
664
|
$.append($$anchor$8, pre_1);
|
|
634
665
|
};
|
|
635
|
-
$.if(
|
|
636
|
-
if ($$props.node.source) $$render(
|
|
666
|
+
$.if(node_18, ($$render) => {
|
|
667
|
+
if ($$props.node.source) $$render(consequent_13);
|
|
637
668
|
}, true);
|
|
638
|
-
$.append($$anchor$7,
|
|
669
|
+
$.append($$anchor$7, fragment_23);
|
|
639
670
|
};
|
|
640
|
-
$.if(
|
|
641
|
-
if ($$props.node.children.length > 0) $$render(
|
|
642
|
-
else $$render(
|
|
671
|
+
$.if(node_17, ($$render) => {
|
|
672
|
+
if ($$props.node.children.length > 0) $$render(consequent_12);
|
|
673
|
+
else $$render(alternate_6, false);
|
|
643
674
|
});
|
|
644
|
-
$.append($$anchor$6,
|
|
675
|
+
$.append($$anchor$6, fragment_21);
|
|
645
676
|
};
|
|
646
|
-
$.if(
|
|
647
|
-
if ($.get(ComponentRenderer)) $$render(
|
|
648
|
-
else $$render(
|
|
677
|
+
$.if(node_14, ($$render) => {
|
|
678
|
+
if ($.get(ComponentRenderer)) $$render(consequent_11);
|
|
679
|
+
else $$render(alternate_7, false);
|
|
649
680
|
});
|
|
650
|
-
$.append($$anchor$5,
|
|
681
|
+
$.append($$anchor$5, fragment_17);
|
|
651
682
|
};
|
|
652
|
-
var
|
|
683
|
+
var alternate_10 = ($$anchor$5) => {
|
|
653
684
|
const ElementRenderer = $.derived(() => components()[$$props.node.name]);
|
|
654
|
-
var
|
|
655
|
-
var
|
|
656
|
-
var
|
|
657
|
-
var
|
|
658
|
-
var
|
|
659
|
-
$.component(
|
|
685
|
+
var fragment_24 = $.comment();
|
|
686
|
+
var node_19 = $.first_child(fragment_24);
|
|
687
|
+
var consequent_16 = ($$anchor$6) => {
|
|
688
|
+
var fragment_25 = $.comment();
|
|
689
|
+
var node_20 = $.first_child(fragment_25);
|
|
690
|
+
$.component(node_20, () => $.get(ElementRenderer), ($$anchor$7, ElementRenderer_1) => {
|
|
660
691
|
ElementRenderer_1($$anchor$7, $.spread_props(() => $$props.node.attrs, {
|
|
661
692
|
get node() {
|
|
662
693
|
return $$props.node;
|
|
663
694
|
},
|
|
664
695
|
children: ($$anchor$8, $$slotProps) => {
|
|
665
|
-
var
|
|
666
|
-
var
|
|
667
|
-
var
|
|
696
|
+
var fragment_26 = $.comment();
|
|
697
|
+
var node_21 = $.first_child(fragment_26);
|
|
698
|
+
var consequent_15 = ($$anchor$9) => {
|
|
668
699
|
RenderNodes($$anchor$9, {
|
|
669
700
|
get nodes() {
|
|
670
701
|
return $$props.node.children;
|
|
@@ -677,35 +708,35 @@ function RenderNode($$anchor, $$props) {
|
|
|
677
708
|
}
|
|
678
709
|
});
|
|
679
710
|
};
|
|
680
|
-
$.if(
|
|
681
|
-
if ($$props.node.children.length > 0) $$render(
|
|
711
|
+
$.if(node_21, ($$render) => {
|
|
712
|
+
if ($$props.node.children.length > 0) $$render(consequent_15);
|
|
682
713
|
});
|
|
683
|
-
$.append($$anchor$8,
|
|
714
|
+
$.append($$anchor$8, fragment_26);
|
|
684
715
|
},
|
|
685
716
|
$$slots: { default: true }
|
|
686
717
|
}));
|
|
687
718
|
});
|
|
688
|
-
$.append($$anchor$6,
|
|
719
|
+
$.append($$anchor$6, fragment_25);
|
|
689
720
|
};
|
|
690
|
-
var
|
|
691
|
-
var
|
|
692
|
-
var
|
|
693
|
-
var
|
|
694
|
-
var
|
|
695
|
-
var
|
|
696
|
-
$.element(
|
|
721
|
+
var alternate_9 = ($$anchor$6) => {
|
|
722
|
+
var fragment_28 = $.comment();
|
|
723
|
+
var node_22 = $.first_child(fragment_28);
|
|
724
|
+
var consequent_17 = ($$anchor$7) => {
|
|
725
|
+
var fragment_29 = $.comment();
|
|
726
|
+
var node_23 = $.first_child(fragment_29);
|
|
727
|
+
$.element(node_23, () => $$props.node.name, false, ($$element, $$anchor$8) => {
|
|
697
728
|
$.attribute_effect($$element, () => ({ ...$$props.node.attrs }));
|
|
698
729
|
});
|
|
699
|
-
$.append($$anchor$7,
|
|
730
|
+
$.append($$anchor$7, fragment_29);
|
|
700
731
|
};
|
|
701
|
-
var
|
|
702
|
-
var
|
|
703
|
-
var
|
|
704
|
-
$.element(
|
|
732
|
+
var alternate_8 = ($$anchor$7) => {
|
|
733
|
+
var fragment_30 = $.comment();
|
|
734
|
+
var node_24 = $.first_child(fragment_30);
|
|
735
|
+
$.element(node_24, () => $$props.node.name, false, ($$element_1, $$anchor$8) => {
|
|
705
736
|
$.attribute_effect($$element_1, () => ({ ...$$props.node.attrs }));
|
|
706
|
-
var
|
|
707
|
-
var
|
|
708
|
-
var
|
|
737
|
+
var fragment_31 = $.comment();
|
|
738
|
+
var node_25 = $.first_child(fragment_31);
|
|
739
|
+
var consequent_18 = ($$anchor$9) => {
|
|
709
740
|
RenderNodes($$anchor$9, {
|
|
710
741
|
get nodes() {
|
|
711
742
|
return $$props.node.children;
|
|
@@ -718,52 +749,52 @@ function RenderNode($$anchor, $$props) {
|
|
|
718
749
|
}
|
|
719
750
|
});
|
|
720
751
|
};
|
|
721
|
-
$.if(
|
|
722
|
-
if ($$props.node.children.length > 0) $$render(
|
|
752
|
+
$.if(node_25, ($$render) => {
|
|
753
|
+
if ($$props.node.children.length > 0) $$render(consequent_18);
|
|
723
754
|
});
|
|
724
|
-
$.append($$anchor$8,
|
|
755
|
+
$.append($$anchor$8, fragment_31);
|
|
725
756
|
});
|
|
726
|
-
$.append($$anchor$7,
|
|
757
|
+
$.append($$anchor$7, fragment_30);
|
|
727
758
|
};
|
|
728
|
-
$.if(
|
|
729
|
-
if (isVoidElement($$props.node)) $$render(
|
|
730
|
-
else $$render(
|
|
759
|
+
$.if(node_22, ($$render) => {
|
|
760
|
+
if (isVoidElement($$props.node)) $$render(consequent_17);
|
|
761
|
+
else $$render(alternate_8, false);
|
|
731
762
|
}, true);
|
|
732
|
-
$.append($$anchor$6,
|
|
763
|
+
$.append($$anchor$6, fragment_28);
|
|
733
764
|
};
|
|
734
|
-
$.if(
|
|
735
|
-
if ($.get(ElementRenderer)) $$render(
|
|
736
|
-
else $$render(
|
|
765
|
+
$.if(node_19, ($$render) => {
|
|
766
|
+
if ($.get(ElementRenderer)) $$render(consequent_16);
|
|
767
|
+
else $$render(alternate_9, false);
|
|
737
768
|
});
|
|
738
|
-
$.append($$anchor$5,
|
|
769
|
+
$.append($$anchor$5, fragment_24);
|
|
739
770
|
};
|
|
740
|
-
$.if(
|
|
741
|
-
if ($$props.node.kind === "component") $$render(
|
|
742
|
-
else $$render(
|
|
771
|
+
$.if(node_13, ($$render) => {
|
|
772
|
+
if ($$props.node.kind === "component") $$render(consequent_14);
|
|
773
|
+
else $$render(alternate_10, false);
|
|
743
774
|
}, true);
|
|
744
|
-
$.append($$anchor$4,
|
|
775
|
+
$.append($$anchor$4, fragment_16);
|
|
745
776
|
};
|
|
746
|
-
$.if(
|
|
747
|
-
if ($$props.node.kind === "code") $$render(
|
|
748
|
-
else $$render(
|
|
777
|
+
$.if(node_9, ($$render) => {
|
|
778
|
+
if ($$props.node.kind === "code") $$render(consequent_9);
|
|
779
|
+
else $$render(alternate_11, false);
|
|
749
780
|
}, true);
|
|
750
|
-
$.append($$anchor$3,
|
|
781
|
+
$.append($$anchor$3, fragment_12);
|
|
751
782
|
};
|
|
752
|
-
$.if(
|
|
753
|
-
if ($$props.node.kind === "html") $$render(
|
|
754
|
-
else $$render(
|
|
783
|
+
$.if(node_6, ($$render) => {
|
|
784
|
+
if ($$props.node.kind === "html") $$render(consequent_6);
|
|
785
|
+
else $$render(alternate_12, false);
|
|
755
786
|
}, true);
|
|
756
|
-
$.append($$anchor$2,
|
|
787
|
+
$.append($$anchor$2, fragment_8);
|
|
757
788
|
};
|
|
758
789
|
$.if(node_2, ($$render) => {
|
|
759
|
-
if ($$props.node.kind === "break") $$render(
|
|
760
|
-
else $$render(
|
|
790
|
+
if ($$props.node.kind === "break") $$render(consequent_4);
|
|
791
|
+
else $$render(alternate_13, false);
|
|
761
792
|
}, true);
|
|
762
793
|
$.append($$anchor$1, fragment_2);
|
|
763
794
|
};
|
|
764
795
|
$.if(node_1, ($$render) => {
|
|
765
796
|
if ($$props.node.kind === "text") $$render(consequent);
|
|
766
|
-
else $$render(
|
|
797
|
+
else $$render(alternate_14, false);
|
|
767
798
|
});
|
|
768
799
|
$.append($$anchor, fragment);
|
|
769
800
|
$.pop();
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as parseMarkdown, i as inferComponentBlocksFromMap, n as Markdown, r as createParser, t as SvmdChildren } from "./SvmdChildren-
|
|
1
|
+
import { a as parseMarkdown, i as inferComponentBlocksFromMap, n as Markdown, r as createParser, t as SvmdChildren } from "./SvmdChildren-D_VMjuB6.js";
|
|
2
2
|
|
|
3
3
|
export { Markdown, SvmdChildren, createParser, inferComponentBlocksFromMap, parseMarkdown };
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svmarkdown",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.2",
|
|
5
5
|
"description": "Runtime markdown renderer for Svelte based on markdown-it and AST blocks.",
|
|
6
6
|
"author": "grtsinry43",
|
|
7
7
|
"license": "MIT",
|
|
@@ -14,14 +14,20 @@
|
|
|
14
14
|
"url": "https://github.com/grtsinry43/svmarkdown/issues"
|
|
15
15
|
},
|
|
16
16
|
"exports": {
|
|
17
|
-
".":
|
|
17
|
+
".": {
|
|
18
|
+
"svelte": "./src/index.ts",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"default": "./dist/index.js"
|
|
21
|
+
},
|
|
18
22
|
"./package.json": "./package.json"
|
|
19
23
|
},
|
|
20
24
|
"main": "./dist/index.js",
|
|
21
25
|
"module": "./dist/index.js",
|
|
22
26
|
"types": "./dist/index.d.ts",
|
|
27
|
+
"svelte": "./src/index.ts",
|
|
23
28
|
"files": [
|
|
24
|
-
"dist"
|
|
29
|
+
"dist",
|
|
30
|
+
"src"
|
|
25
31
|
],
|
|
26
32
|
"publishConfig": {
|
|
27
33
|
"access": "public"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { createParser, inferComponentBlocksFromMap } from './parser'
|
|
3
|
+
import RenderNodes from './internal/RenderNodes.svelte'
|
|
4
|
+
import type {
|
|
5
|
+
SvmdComponentMap,
|
|
6
|
+
SvmdComponentBlocks,
|
|
7
|
+
SvmdParseOptions,
|
|
8
|
+
SvmdRenderOptions,
|
|
9
|
+
SvmdRoot,
|
|
10
|
+
} from './types'
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
content: string
|
|
14
|
+
components?: SvmdComponentMap
|
|
15
|
+
parseOptions?: SvmdParseOptions
|
|
16
|
+
renderOptions?: SvmdRenderOptions
|
|
17
|
+
inferComponentBlocks?: boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let {
|
|
21
|
+
content,
|
|
22
|
+
components = {},
|
|
23
|
+
parseOptions = {},
|
|
24
|
+
renderOptions,
|
|
25
|
+
inferComponentBlocks = true,
|
|
26
|
+
}: Props = $props()
|
|
27
|
+
|
|
28
|
+
const effectiveParseOptions = $derived(resolveParseOptions(parseOptions, components, inferComponentBlocks))
|
|
29
|
+
const parser = $derived(createParser(effectiveParseOptions))
|
|
30
|
+
const ast: SvmdRoot = $derived(parser(content))
|
|
31
|
+
|
|
32
|
+
function resolveParseOptions(
|
|
33
|
+
options: SvmdParseOptions,
|
|
34
|
+
componentMap: SvmdComponentMap,
|
|
35
|
+
shouldInferComponentBlocks: boolean,
|
|
36
|
+
): SvmdParseOptions {
|
|
37
|
+
if (!shouldInferComponentBlocks) {
|
|
38
|
+
return options
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const inferredBlocks = inferComponentBlocksFromMap(componentMap)
|
|
42
|
+
const mergedBlocks: SvmdComponentBlocks = {
|
|
43
|
+
...inferredBlocks,
|
|
44
|
+
...(options.componentBlocks ?? {}),
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
...options,
|
|
49
|
+
componentBlocks: mergedBlocks,
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
{#if ast.children.length > 0}
|
|
55
|
+
<RenderNodes nodes={ast.children} {components} {renderOptions} />
|
|
56
|
+
{/if}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import RenderNodes from './internal/RenderNodes.svelte'
|
|
3
|
+
import type { SvmdComponentMap, SvmdNode, SvmdRenderOptions } from './types'
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
nodes: SvmdNode[]
|
|
7
|
+
components?: SvmdComponentMap
|
|
8
|
+
renderOptions?: SvmdRenderOptions
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { nodes, components = {}, renderOptions }: Props = $props()
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<RenderNodes {nodes} {components} {renderOptions} />
|