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 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 root_14 = $.from_html(`<code> </code>`);
408
- var root_15 = $.from_html(`<pre>
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 root_24 = $.from_html(`<pre><code> </code></pre>`);
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 alternate_12 = ($$anchor$1) => {
449
+ var alternate_14 = ($$anchor$1) => {
446
450
  var fragment_2 = $.comment();
447
451
  var node_2 = $.first_child(fragment_2);
448
- var consequent_2 = ($$anchor$2) => {
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 alternate = ($$anchor$3) => {
456
- var text_1 = $.text();
457
- text_1.nodeValue = "\n";
458
- $.append($$anchor$3, text_1);
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(alternate, false);
493
+ else $$render(alternate_2, false);
463
494
  });
464
495
  $.append($$anchor$2, fragment_3);
465
496
  };
466
- var alternate_11 = ($$anchor$2) => {
467
- var fragment_5 = $.comment();
468
- var node_4 = $.first_child(fragment_5);
469
- var consequent_4 = ($$anchor$3) => {
470
- var fragment_6 = $.comment();
471
- var node_5 = $.first_child(fragment_6);
472
- var consequent_3 = ($$anchor$4) => {
473
- var fragment_7 = $.comment();
474
- var node_6 = $.first_child(fragment_7);
475
- $.html(node_6, () => $$props.node.value);
476
- $.append($$anchor$4, fragment_7);
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 alternate_1 = ($$anchor$4) => {
479
- var text_2 = $.text();
480
- $.template_effect(() => $.set_text(text_2, $$props.node.value));
481
- $.append($$anchor$4, text_2);
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(node_5, ($$render) => {
484
- if ($$props.renderOptions?.allowDangerousHtml) $$render(consequent_3);
485
- else $$render(alternate_1, false);
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, fragment_6);
518
+ $.append($$anchor$3, fragment_9);
488
519
  };
489
- var alternate_10 = ($$anchor$3) => {
490
- var fragment_9 = $.comment();
491
- var node_7 = $.first_child(fragment_9);
492
- var consequent_7 = ($$anchor$4) => {
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 fragment_10 = $.comment();
495
- var node_8 = $.first_child(fragment_10);
496
- var consequent_5 = ($$anchor$5) => {
497
- var fragment_11 = $.comment();
498
- var node_9 = $.first_child(fragment_11);
499
- $.component(node_9, () => $.get(CodeRenderer), ($$anchor$6, CodeRenderer_1) => {
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, fragment_11);
552
+ $.append($$anchor$5, fragment_14);
522
553
  };
523
- var alternate_3 = ($$anchor$5) => {
524
- var fragment_12 = $.comment();
525
- var node_10 = $.first_child(fragment_12);
526
- var consequent_6 = ($$anchor$6) => {
527
- var code = root_14();
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 text_3 = $.child(code, true);
560
+ var text_4 = $.child(code, true);
530
561
  $.reset(code);
531
- $.template_effect(() => $.set_text(text_3, $$props.node.text));
562
+ $.template_effect(() => $.set_text(text_4, $$props.node.text));
532
563
  $.append($$anchor$6, code);
533
564
  };
534
- var alternate_2 = ($$anchor$6) => {
535
- var pre = root_15();
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 text_4 = $.child(code_1, true);
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(text_4, $$props.node.text));
576
+ $.template_effect(() => $.set_text(text_5, $$props.node.text));
546
577
  $.append($$anchor$6, pre);
547
578
  };
548
- $.if(node_10, ($$render) => {
549
- if ($$props.node.inline) $$render(consequent_6);
550
- else $$render(alternate_2, false);
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, fragment_12);
583
+ $.append($$anchor$5, fragment_15);
553
584
  };
554
- $.if(node_8, ($$render) => {
555
- if ($.get(CodeRenderer)) $$render(consequent_5);
556
- else $$render(alternate_3, false);
585
+ $.if(node_10, ($$render) => {
586
+ if ($.get(CodeRenderer)) $$render(consequent_7);
587
+ else $$render(alternate_5, false);
557
588
  });
558
- $.append($$anchor$4, fragment_10);
589
+ $.append($$anchor$4, fragment_13);
559
590
  };
560
- var alternate_9 = ($$anchor$4) => {
561
- var fragment_13 = $.comment();
562
- var node_11 = $.first_child(fragment_13);
563
- var consequent_12 = ($$anchor$5) => {
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 fragment_14 = $.comment();
566
- var node_12 = $.first_child(fragment_14);
567
- var consequent_9 = ($$anchor$6) => {
568
- var fragment_15 = $.comment();
569
- var node_13 = $.first_child(fragment_15);
570
- $.component(node_13, () => $.get(ComponentRenderer), ($$anchor$7, ComponentRenderer_1) => {
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 fragment_16 = $.comment();
583
- var node_14 = $.first_child(fragment_16);
584
- var consequent_8 = ($$anchor$9) => {
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(node_14, ($$render) => {
598
- if ($$props.node.children.length > 0) $$render(consequent_8);
628
+ $.if(node_16, ($$render) => {
629
+ if ($$props.node.children.length > 0) $$render(consequent_10);
599
630
  });
600
- $.append($$anchor$8, fragment_16);
631
+ $.append($$anchor$8, fragment_19);
601
632
  },
602
633
  $$slots: { default: true }
603
634
  }));
604
635
  });
605
- $.append($$anchor$6, fragment_15);
636
+ $.append($$anchor$6, fragment_18);
606
637
  };
607
- var alternate_5 = ($$anchor$6) => {
608
- var fragment_18 = $.comment();
609
- var node_15 = $.first_child(fragment_18);
610
- var consequent_10 = ($$anchor$7) => {
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 alternate_4 = ($$anchor$7) => {
624
- var fragment_20 = $.comment();
625
- var node_16 = $.first_child(fragment_20);
626
- var consequent_11 = ($$anchor$8) => {
627
- var pre_1 = root_24();
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 text_5 = $.child(code_2, true);
660
+ var text_6 = $.child(code_2, true);
630
661
  $.reset(code_2);
631
662
  $.reset(pre_1);
632
- $.template_effect(() => $.set_text(text_5, $$props.node.source));
663
+ $.template_effect(() => $.set_text(text_6, $$props.node.source));
633
664
  $.append($$anchor$8, pre_1);
634
665
  };
635
- $.if(node_16, ($$render) => {
636
- if ($$props.node.source) $$render(consequent_11);
666
+ $.if(node_18, ($$render) => {
667
+ if ($$props.node.source) $$render(consequent_13);
637
668
  }, true);
638
- $.append($$anchor$7, fragment_20);
669
+ $.append($$anchor$7, fragment_23);
639
670
  };
640
- $.if(node_15, ($$render) => {
641
- if ($$props.node.children.length > 0) $$render(consequent_10);
642
- else $$render(alternate_4, false);
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, fragment_18);
675
+ $.append($$anchor$6, fragment_21);
645
676
  };
646
- $.if(node_12, ($$render) => {
647
- if ($.get(ComponentRenderer)) $$render(consequent_9);
648
- else $$render(alternate_5, false);
677
+ $.if(node_14, ($$render) => {
678
+ if ($.get(ComponentRenderer)) $$render(consequent_11);
679
+ else $$render(alternate_7, false);
649
680
  });
650
- $.append($$anchor$5, fragment_14);
681
+ $.append($$anchor$5, fragment_17);
651
682
  };
652
- var alternate_8 = ($$anchor$5) => {
683
+ var alternate_10 = ($$anchor$5) => {
653
684
  const ElementRenderer = $.derived(() => components()[$$props.node.name]);
654
- var fragment_21 = $.comment();
655
- var node_17 = $.first_child(fragment_21);
656
- var consequent_14 = ($$anchor$6) => {
657
- var fragment_22 = $.comment();
658
- var node_18 = $.first_child(fragment_22);
659
- $.component(node_18, () => $.get(ElementRenderer), ($$anchor$7, ElementRenderer_1) => {
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 fragment_23 = $.comment();
666
- var node_19 = $.first_child(fragment_23);
667
- var consequent_13 = ($$anchor$9) => {
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(node_19, ($$render) => {
681
- if ($$props.node.children.length > 0) $$render(consequent_13);
711
+ $.if(node_21, ($$render) => {
712
+ if ($$props.node.children.length > 0) $$render(consequent_15);
682
713
  });
683
- $.append($$anchor$8, fragment_23);
714
+ $.append($$anchor$8, fragment_26);
684
715
  },
685
716
  $$slots: { default: true }
686
717
  }));
687
718
  });
688
- $.append($$anchor$6, fragment_22);
719
+ $.append($$anchor$6, fragment_25);
689
720
  };
690
- var alternate_7 = ($$anchor$6) => {
691
- var fragment_25 = $.comment();
692
- var node_20 = $.first_child(fragment_25);
693
- var consequent_15 = ($$anchor$7) => {
694
- var fragment_26 = $.comment();
695
- var node_21 = $.first_child(fragment_26);
696
- $.element(node_21, () => $$props.node.name, false, ($$element, $$anchor$8) => {
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, fragment_26);
730
+ $.append($$anchor$7, fragment_29);
700
731
  };
701
- var alternate_6 = ($$anchor$7) => {
702
- var fragment_27 = $.comment();
703
- var node_22 = $.first_child(fragment_27);
704
- $.element(node_22, () => $$props.node.name, false, ($$element_1, $$anchor$8) => {
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 fragment_28 = $.comment();
707
- var node_23 = $.first_child(fragment_28);
708
- var consequent_16 = ($$anchor$9) => {
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(node_23, ($$render) => {
722
- if ($$props.node.children.length > 0) $$render(consequent_16);
752
+ $.if(node_25, ($$render) => {
753
+ if ($$props.node.children.length > 0) $$render(consequent_18);
723
754
  });
724
- $.append($$anchor$8, fragment_28);
755
+ $.append($$anchor$8, fragment_31);
725
756
  });
726
- $.append($$anchor$7, fragment_27);
757
+ $.append($$anchor$7, fragment_30);
727
758
  };
728
- $.if(node_20, ($$render) => {
729
- if (isVoidElement($$props.node)) $$render(consequent_15);
730
- else $$render(alternate_6, false);
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, fragment_25);
763
+ $.append($$anchor$6, fragment_28);
733
764
  };
734
- $.if(node_17, ($$render) => {
735
- if ($.get(ElementRenderer)) $$render(consequent_14);
736
- else $$render(alternate_7, false);
765
+ $.if(node_19, ($$render) => {
766
+ if ($.get(ElementRenderer)) $$render(consequent_16);
767
+ else $$render(alternate_9, false);
737
768
  });
738
- $.append($$anchor$5, fragment_21);
769
+ $.append($$anchor$5, fragment_24);
739
770
  };
740
- $.if(node_11, ($$render) => {
741
- if ($$props.node.kind === "component") $$render(consequent_12);
742
- else $$render(alternate_8, false);
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, fragment_13);
775
+ $.append($$anchor$4, fragment_16);
745
776
  };
746
- $.if(node_7, ($$render) => {
747
- if ($$props.node.kind === "code") $$render(consequent_7);
748
- else $$render(alternate_9, false);
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, fragment_9);
781
+ $.append($$anchor$3, fragment_12);
751
782
  };
752
- $.if(node_4, ($$render) => {
753
- if ($$props.node.kind === "html") $$render(consequent_4);
754
- else $$render(alternate_10, false);
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, fragment_5);
787
+ $.append($$anchor$2, fragment_8);
757
788
  };
758
789
  $.if(node_2, ($$render) => {
759
- if ($$props.node.kind === "break") $$render(consequent_2);
760
- else $$render(alternate_11, false);
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(alternate_12, false);
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-V6hrbwsd.js";
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
@@ -72,5 +72,6 @@ export interface SvmdParseOptions {
72
72
  }
73
73
  export interface SvmdRenderOptions {
74
74
  allowDangerousHtml?: boolean;
75
+ softBreak?: 'space' | 'newline' | 'br';
75
76
  }
76
77
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "svmarkdown",
3
3
  "type": "module",
4
- "version": "0.1.0",
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
- ".": "./dist/index.js",
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} />