@incremark/vue 0.2.2 → 0.2.4

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 (59) hide show
  1. package/dist/ThemeProvider.vue.d.ts +25 -0
  2. package/dist/components/AutoScrollContainer.vue.d.ts +31 -0
  3. package/dist/components/Incremark.vue.d.ts +36 -0
  4. package/dist/components/IncremarkBlockquote.vue.d.ts +6 -0
  5. package/dist/components/IncremarkCode.vue.d.ts +23 -0
  6. package/dist/components/IncremarkContainer.vue.d.ts +18 -0
  7. package/dist/components/IncremarkDefault.vue.d.ts +6 -0
  8. package/dist/components/IncremarkFootnotes.vue.d.ts +2 -0
  9. package/dist/components/IncremarkHeading.vue.d.ts +6 -0
  10. package/dist/components/IncremarkHtmlElement.vue.d.ts +20 -0
  11. package/dist/components/IncremarkInline.vue.d.ts +6 -0
  12. package/dist/components/IncremarkList.vue.d.ts +6 -0
  13. package/dist/components/IncremarkMath.vue.d.ts +17 -0
  14. package/dist/components/IncremarkParagraph.vue.d.ts +6 -0
  15. package/dist/components/IncremarkRenderer.vue.d.ts +12 -0
  16. package/dist/components/IncremarkTable.vue.d.ts +6 -0
  17. package/dist/components/IncremarkThematicBreak.vue.d.ts +2 -0
  18. package/{src/components/index.ts → dist/components/index.d.ts} +16 -23
  19. package/dist/composables/index.d.ts +8 -0
  20. package/dist/composables/useBlockTransformer.d.ts +68 -0
  21. package/dist/composables/useDefinationsContext.d.ts +9 -0
  22. package/dist/composables/useDevTools.d.ts +18 -0
  23. package/dist/composables/useIncremark.d.ts +112 -0
  24. package/dist/composables/useProvideDefinations.d.ts +16 -0
  25. package/dist/composables/useStreamRenderer.d.ts +26 -0
  26. package/dist/composables/useTypewriter.d.ts +37 -0
  27. package/dist/index.d.ts +10 -0
  28. package/dist/index.js +428 -222
  29. package/dist/index.js.map +1 -1
  30. package/dist/utils/cursor.d.ts +18 -0
  31. package/package.json +11 -13
  32. package/dist/index.css +0 -6
  33. package/dist/index.css.map +0 -1
  34. package/src/ThemeProvider.vue +0 -41
  35. package/src/components/AutoScrollContainer.vue +0 -164
  36. package/src/components/Incremark.vue +0 -131
  37. package/src/components/IncremarkBlockquote.vue +0 -18
  38. package/src/components/IncremarkCode.vue +0 -236
  39. package/src/components/IncremarkDefault.vue +0 -15
  40. package/src/components/IncremarkFootnotes.vue +0 -78
  41. package/src/components/IncremarkHeading.vue +0 -17
  42. package/src/components/IncremarkHtmlElement.vue +0 -127
  43. package/src/components/IncremarkInline.vue +0 -187
  44. package/src/components/IncremarkList.vue +0 -46
  45. package/src/components/IncremarkMath.vue +0 -105
  46. package/src/components/IncremarkParagraph.vue +0 -14
  47. package/src/components/IncremarkRenderer.vue +0 -50
  48. package/src/components/IncremarkTable.vue +0 -42
  49. package/src/components/IncremarkThematicBreak.vue +0 -8
  50. package/src/composables/index.ts +0 -11
  51. package/src/composables/useBlockTransformer.ts +0 -141
  52. package/src/composables/useDefinationsContext.ts +0 -16
  53. package/src/composables/useDevTools.ts +0 -54
  54. package/src/composables/useIncremark.ts +0 -238
  55. package/src/composables/useProvideDefinations.ts +0 -61
  56. package/src/composables/useStreamRenderer.ts +0 -55
  57. package/src/composables/useTypewriter.ts +0 -205
  58. package/src/index.ts +0 -78
  59. package/src/utils/cursor.ts +0 -46
package/dist/index.js CHANGED
@@ -288,7 +288,7 @@ function useIncremark(options = {}) {
288
288
  footnoteReferenceOrder.value = [];
289
289
  transformer?.reset();
290
290
  }
291
- function render17(content) {
291
+ function render18(content) {
292
292
  const update = parser.render(content);
293
293
  markdown.value = parser.getBuffer();
294
294
  completedBlocks.value = parser.getCompletedBlocks().map((b) => markRaw(b));
@@ -325,7 +325,7 @@ function useIncremark(options = {}) {
325
325
  /** 重置解析器和打字机 */
326
326
  reset,
327
327
  /** 一次性渲染(reset + append + finalize) */
328
- render: render17,
328
+ render: render18,
329
329
  /** 解析器实例 */
330
330
  parser,
331
331
  /** 打字机控制 */
@@ -457,7 +457,7 @@ function useDefinationsContext() {
457
457
  }
458
458
 
459
459
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/Incremark.vue?type=script
460
- import { defineComponent as _defineComponent14 } from "vue";
460
+ import { defineComponent as _defineComponent15 } from "vue";
461
461
  import { computed as computed10 } from "vue";
462
462
 
463
463
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkHeading.vue?type=script
@@ -1238,7 +1238,9 @@ var IncremarkCode_default = /* @__PURE__ */ _defineComponent6({
1238
1238
  node: { type: null, required: true },
1239
1239
  theme: { type: String, required: false, default: "github-dark" },
1240
1240
  disableHighlight: { type: Boolean, required: false, default: false },
1241
- mermaidDelay: { type: Number, required: false, default: 500 }
1241
+ mermaidDelay: { type: Number, required: false, default: 500 },
1242
+ customCodeBlocks: { type: Object, required: false, default: () => ({}) },
1243
+ blockStatus: { type: String, required: false, default: "completed" }
1242
1244
  },
1243
1245
  setup(__props, { expose: __expose }) {
1244
1246
  __expose();
@@ -1259,6 +1261,13 @@ var IncremarkCode_default = /* @__PURE__ */ _defineComponent6({
1259
1261
  const language = computed7(() => props.node.lang || "text");
1260
1262
  const code = computed7(() => props.node.value);
1261
1263
  const isMermaid = computed7(() => language.value === "mermaid");
1264
+ const CustomCodeBlock = computed7(() => {
1265
+ if (props.blockStatus === "pending") {
1266
+ return null;
1267
+ }
1268
+ return props.customCodeBlocks?.[language.value] || null;
1269
+ });
1270
+ const useCustomComponent = computed7(() => !!CustomCodeBlock.value);
1262
1271
  const highlighterRef = shallowRef4(null);
1263
1272
  const loadedLanguages = /* @__PURE__ */ new Set();
1264
1273
  const loadedThemes = /* @__PURE__ */ new Set();
@@ -1364,18 +1373,15 @@ var IncremarkCode_default = /* @__PURE__ */ _defineComponent6({
1364
1373
  return mermaidTimer;
1365
1374
  }, set mermaidTimer(v) {
1366
1375
  mermaidTimer = v;
1367
- }, mermaidViewMode, toggleMermaidView, language, code, isMermaid, highlighterRef, loadedLanguages, loadedThemes, scheduleRenderMermaid, doRenderMermaid, highlight, copyCode };
1376
+ }, mermaidViewMode, toggleMermaidView, language, code, isMermaid, CustomCodeBlock, useCustomComponent, highlighterRef, loadedLanguages, loadedThemes, scheduleRenderMermaid, doRenderMermaid, highlight, copyCode };
1368
1377
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1369
1378
  return __returned__;
1370
1379
  }
1371
1380
  });
1372
1381
 
1373
1382
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkCode.vue?type=template
1374
- import { createCommentVNode as _createCommentVNode4, createElementVNode as _createElementVNode4, toDisplayString as _toDisplayString4, openBlock as _openBlock6, createElementBlock as _createElementBlock5, Fragment as _Fragment4 } from "vue";
1375
- var _hoisted_15 = {
1376
- key: 0,
1377
- class: "incremark-mermaid"
1378
- };
1383
+ import { createCommentVNode as _createCommentVNode4, resolveDynamicComponent as _resolveDynamicComponent3, openBlock as _openBlock6, createBlock as _createBlock3, createElementVNode as _createElementVNode4, toDisplayString as _toDisplayString4, createElementBlock as _createElementBlock5, Fragment as _Fragment4 } from "vue";
1384
+ var _hoisted_15 = { class: "incremark-mermaid" };
1379
1385
  var _hoisted_23 = { class: "mermaid-header" };
1380
1386
  var _hoisted_33 = { class: "mermaid-actions" };
1381
1387
  var _hoisted_43 = ["disabled"];
@@ -1403,93 +1409,106 @@ function render6(_ctx, _cache, $props, $setup, $data, $options) {
1403
1409
  _Fragment4,
1404
1410
  null,
1405
1411
  [
1406
- _createCommentVNode4(" Mermaid \u56FE\u8868 "),
1407
- $setup.isMermaid ? (_openBlock6(), _createElementBlock5("div", _hoisted_15, [
1408
- _createElementVNode4("div", _hoisted_23, [
1409
- _cache[0] || (_cache[0] = _createElementVNode4(
1410
- "span",
1411
- { class: "language" },
1412
- "MERMAID",
1413
- -1
1414
- /* CACHED */
1415
- )),
1416
- _createElementVNode4("div", _hoisted_33, [
1417
- _createElementVNode4("button", {
1418
- class: "code-btn",
1419
- onClick: $setup.toggleMermaidView,
1420
- type: "button",
1421
- disabled: !$setup.mermaidSvg
1422
- }, _toDisplayString4($setup.mermaidViewMode === "preview" ? "\u6E90\u7801" : "\u9884\u89C8"), 9, _hoisted_43),
1423
- _createElementVNode4(
1424
- "button",
1425
- {
1426
- class: "code-btn",
1427
- onClick: $setup.copyCode,
1428
- type: "button"
1429
- },
1430
- _toDisplayString4($setup.copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236"),
1431
- 1
1432
- /* TEXT */
1433
- )
1434
- ])
1435
- ]),
1436
- _createElementVNode4("div", _hoisted_53, [
1437
- _createCommentVNode4(" \u52A0\u8F7D\u4E2D "),
1438
- $setup.mermaidLoading && !$setup.mermaidSvg ? (_openBlock6(), _createElementBlock5("div", _hoisted_63, [
1439
- _createElementVNode4(
1440
- "pre",
1441
- _hoisted_72,
1442
- _toDisplayString4($setup.code),
1443
- 1
1444
- /* TEXT */
1445
- )
1446
- ])) : $setup.mermaidViewMode === "source" ? (_openBlock6(), _createElementBlock5(
1447
- _Fragment4,
1448
- { key: 1 },
1449
- [
1450
- _createCommentVNode4(" \u6E90\u7801\u6A21\u5F0F "),
1451
- _createElementVNode4(
1452
- "pre",
1453
- _hoisted_82,
1454
- _toDisplayString4($setup.code),
1455
- 1
1456
- /* TEXT */
1457
- )
1458
- ],
1459
- 2112
1460
- /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1461
- )) : $setup.mermaidSvg ? (_openBlock6(), _createElementBlock5(
1462
- _Fragment4,
1463
- { key: 2 },
1464
- [
1465
- _createCommentVNode4(" \u9884\u89C8\u6A21\u5F0F "),
1466
- _createElementVNode4("div", {
1467
- innerHTML: $setup.mermaidSvg,
1468
- class: "mermaid-svg"
1469
- }, null, 8, _hoisted_92)
1470
- ],
1471
- 2112
1472
- /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1473
- )) : (_openBlock6(), _createElementBlock5(
1474
- _Fragment4,
1475
- { key: 3 },
1476
- [
1477
- _createCommentVNode4(" \u65E0\u6CD5\u6E32\u67D3\u65F6\u663E\u793A\u6E90\u7801 "),
1478
- _createElementVNode4(
1479
- "pre",
1480
- _hoisted_102,
1481
- _toDisplayString4($setup.code),
1482
- 1
1483
- /* TEXT */
1484
- )
1485
- ],
1486
- 2112
1487
- /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1488
- ))
1489
- ])
1490
- ])) : (_openBlock6(), _createElementBlock5(
1412
+ _createCommentVNode4(" \u81EA\u5B9A\u4E49\u4EE3\u7801\u5757\u7EC4\u4EF6 "),
1413
+ $setup.useCustomComponent && $setup.CustomCodeBlock ? (_openBlock6(), _createBlock3(_resolveDynamicComponent3($setup.CustomCodeBlock), {
1414
+ key: 0,
1415
+ "code-str": $setup.code,
1416
+ lang: $setup.language
1417
+ }, null, 8, ["code-str", "lang"])) : $setup.isMermaid ? (_openBlock6(), _createElementBlock5(
1491
1418
  _Fragment4,
1492
1419
  { key: 1 },
1420
+ [
1421
+ _createCommentVNode4(" Mermaid \u56FE\u8868\uFF08\u5982\u679C\u6CA1\u6709\u81EA\u5B9A\u4E49\u7EC4\u4EF6\uFF09 "),
1422
+ _createElementVNode4("div", _hoisted_15, [
1423
+ _createElementVNode4("div", _hoisted_23, [
1424
+ _cache[0] || (_cache[0] = _createElementVNode4(
1425
+ "span",
1426
+ { class: "language" },
1427
+ "MERMAID",
1428
+ -1
1429
+ /* CACHED */
1430
+ )),
1431
+ _createElementVNode4("div", _hoisted_33, [
1432
+ _createElementVNode4("button", {
1433
+ class: "code-btn",
1434
+ onClick: $setup.toggleMermaidView,
1435
+ type: "button",
1436
+ disabled: !$setup.mermaidSvg
1437
+ }, _toDisplayString4($setup.mermaidViewMode === "preview" ? "\u6E90\u7801" : "\u9884\u89C8"), 9, _hoisted_43),
1438
+ _createElementVNode4(
1439
+ "button",
1440
+ {
1441
+ class: "code-btn",
1442
+ onClick: $setup.copyCode,
1443
+ type: "button"
1444
+ },
1445
+ _toDisplayString4($setup.copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236"),
1446
+ 1
1447
+ /* TEXT */
1448
+ )
1449
+ ])
1450
+ ]),
1451
+ _createElementVNode4("div", _hoisted_53, [
1452
+ _createCommentVNode4(" \u52A0\u8F7D\u4E2D "),
1453
+ $setup.mermaidLoading && !$setup.mermaidSvg ? (_openBlock6(), _createElementBlock5("div", _hoisted_63, [
1454
+ _createElementVNode4(
1455
+ "pre",
1456
+ _hoisted_72,
1457
+ _toDisplayString4($setup.code),
1458
+ 1
1459
+ /* TEXT */
1460
+ )
1461
+ ])) : $setup.mermaidViewMode === "source" ? (_openBlock6(), _createElementBlock5(
1462
+ _Fragment4,
1463
+ { key: 1 },
1464
+ [
1465
+ _createCommentVNode4(" \u6E90\u7801\u6A21\u5F0F "),
1466
+ _createElementVNode4(
1467
+ "pre",
1468
+ _hoisted_82,
1469
+ _toDisplayString4($setup.code),
1470
+ 1
1471
+ /* TEXT */
1472
+ )
1473
+ ],
1474
+ 2112
1475
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1476
+ )) : $setup.mermaidSvg ? (_openBlock6(), _createElementBlock5(
1477
+ _Fragment4,
1478
+ { key: 2 },
1479
+ [
1480
+ _createCommentVNode4(" \u9884\u89C8\u6A21\u5F0F "),
1481
+ _createElementVNode4("div", {
1482
+ innerHTML: $setup.mermaidSvg,
1483
+ class: "mermaid-svg"
1484
+ }, null, 8, _hoisted_92)
1485
+ ],
1486
+ 2112
1487
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1488
+ )) : (_openBlock6(), _createElementBlock5(
1489
+ _Fragment4,
1490
+ { key: 3 },
1491
+ [
1492
+ _createCommentVNode4(" \u65E0\u6CD5\u6E32\u67D3\u65F6\u663E\u793A\u6E90\u7801 "),
1493
+ _createElementVNode4(
1494
+ "pre",
1495
+ _hoisted_102,
1496
+ _toDisplayString4($setup.code),
1497
+ 1
1498
+ /* TEXT */
1499
+ )
1500
+ ],
1501
+ 2112
1502
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1503
+ ))
1504
+ ])
1505
+ ])
1506
+ ],
1507
+ 2112
1508
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1509
+ )) : (_openBlock6(), _createElementBlock5(
1510
+ _Fragment4,
1511
+ { key: 2 },
1493
1512
  [
1494
1513
  _createCommentVNode4(" \u666E\u901A\u4EE3\u7801\u5757 "),
1495
1514
  _createElementVNode4("div", _hoisted_11, [
@@ -1576,6 +1595,9 @@ var IncremarkCode_default2 = IncremarkCode_default;
1576
1595
  import { defineComponent as _defineComponent7 } from "vue";
1577
1596
  import { computed as computed8 } from "vue";
1578
1597
  var IncremarkList_default = /* @__PURE__ */ _defineComponent7({
1598
+ ...{
1599
+ name: "IncremarkList"
1600
+ },
1579
1601
  __name: "IncremarkList",
1580
1602
  props: {
1581
1603
  node: { type: null, required: true }
@@ -1584,21 +1606,32 @@ var IncremarkList_default = /* @__PURE__ */ _defineComponent7({
1584
1606
  __expose();
1585
1607
  const props = __props;
1586
1608
  const tag = computed8(() => props.node.ordered ? "ol" : "ul");
1587
- function getItemContent(item) {
1609
+ function getItemInlineContent(item) {
1588
1610
  const firstChild = item.children[0];
1589
1611
  if (firstChild?.type === "paragraph") {
1590
1612
  return firstChild.children;
1591
1613
  }
1592
1614
  return [];
1593
1615
  }
1594
- const __returned__ = { props, tag, getItemContent, IncremarkInline: IncremarkInline_default };
1616
+ function getItemBlockChildren(item) {
1617
+ return item.children.filter((child, index) => {
1618
+ if (index === 0 && child.type === "paragraph") {
1619
+ return false;
1620
+ }
1621
+ return true;
1622
+ });
1623
+ }
1624
+ function hasBlockChildren(item) {
1625
+ return getItemBlockChildren(item).length > 0;
1626
+ }
1627
+ const __returned__ = { props, tag, getItemInlineContent, getItemBlockChildren, hasBlockChildren, IncremarkInline: IncremarkInline_default };
1595
1628
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1596
1629
  return __returned__;
1597
1630
  }
1598
1631
  });
1599
1632
 
1600
1633
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkList.vue?type=template
1601
- import { renderList as _renderList3, Fragment as _Fragment5, openBlock as _openBlock7, createElementBlock as _createElementBlock6, createElementVNode as _createElementVNode5, createVNode as _createVNode5, createBlock as _createBlock3, normalizeClass as _normalizeClass2, resolveDynamicComponent as _resolveDynamicComponent3, withCtx as _withCtx3 } from "vue";
1634
+ import { renderList as _renderList3, Fragment as _Fragment5, openBlock as _openBlock7, createElementBlock as _createElementBlock6, createElementVNode as _createElementVNode5, createVNode as _createVNode5, createCommentVNode as _createCommentVNode5, resolveComponent as _resolveComponent3, createBlock as _createBlock4, normalizeClass as _normalizeClass2, resolveDynamicComponent as _resolveDynamicComponent4, withCtx as _withCtx3 } from "vue";
1602
1635
  var _hoisted_18 = {
1603
1636
  key: 0,
1604
1637
  class: "task-label"
@@ -1606,7 +1639,8 @@ var _hoisted_18 = {
1606
1639
  var _hoisted_24 = ["checked"];
1607
1640
  var _hoisted_34 = { class: "task-content" };
1608
1641
  function render7(_ctx, _cache, $props, $setup, $data, $options) {
1609
- return _openBlock7(), _createBlock3(_resolveDynamicComponent3($setup.tag), {
1642
+ const _component_IncremarkList = _resolveComponent3("IncremarkList", true);
1643
+ return _openBlock7(), _createBlock4(_resolveDynamicComponent4($setup.tag), {
1610
1644
  class: _normalizeClass2(["incremark-list", { "task-list": $props.node.children.some((item) => item.checked !== null && item.checked !== void 0) }])
1611
1645
  }, {
1612
1646
  default: _withCtx3(() => [
@@ -1630,13 +1664,43 @@ function render7(_ctx, _cache, $props, $setup, $data, $options) {
1630
1664
  }, null, 8, _hoisted_24),
1631
1665
  _createElementVNode5("span", _hoisted_34, [
1632
1666
  _createVNode5($setup["IncremarkInline"], {
1633
- nodes: $setup.getItemContent(item)
1667
+ nodes: $setup.getItemInlineContent(item)
1634
1668
  }, null, 8, ["nodes"])
1635
1669
  ])
1636
- ])) : (_openBlock7(), _createBlock3($setup["IncremarkInline"], {
1637
- key: 1,
1638
- nodes: $setup.getItemContent(item)
1639
- }, null, 8, ["nodes"]))
1670
+ ])) : (_openBlock7(), _createElementBlock6(
1671
+ _Fragment5,
1672
+ { key: 1 },
1673
+ [
1674
+ _createVNode5($setup["IncremarkInline"], {
1675
+ nodes: $setup.getItemInlineContent(item)
1676
+ }, null, 8, ["nodes"]),
1677
+ _createCommentVNode5(" \u9012\u5F52\u6E32\u67D3\u5D4C\u5957\u5217\u8868\u548C\u5176\u4ED6\u5757\u7EA7\u5185\u5BB9 "),
1678
+ $setup.hasBlockChildren(item) ? (_openBlock7(true), _createElementBlock6(
1679
+ _Fragment5,
1680
+ { key: 0 },
1681
+ _renderList3($setup.getItemBlockChildren(item), (child, childIndex) => {
1682
+ return _openBlock7(), _createElementBlock6(
1683
+ _Fragment5,
1684
+ { key: childIndex },
1685
+ [
1686
+ _createCommentVNode5(" \u5D4C\u5957\u5217\u8868 "),
1687
+ child.type === "list" ? (_openBlock7(), _createBlock4(_component_IncremarkList, {
1688
+ key: 0,
1689
+ node: child
1690
+ }, null, 8, ["node"])) : _createCommentVNode5("v-if", true),
1691
+ _createCommentVNode5(" \u5176\u4ED6\u5757\u7EA7\u5185\u5BB9\u53EF\u4EE5\u5728\u8FD9\u91CC\u6269\u5C55 ")
1692
+ ],
1693
+ 64
1694
+ /* STABLE_FRAGMENT */
1695
+ );
1696
+ }),
1697
+ 128
1698
+ /* KEYED_FRAGMENT */
1699
+ )) : _createCommentVNode5("v-if", true)
1700
+ ],
1701
+ 64
1702
+ /* STABLE_FRAGMENT */
1703
+ ))
1640
1704
  ],
1641
1705
  2
1642
1706
  /* CLASS */
@@ -1767,7 +1831,7 @@ var IncremarkBlockquote_default = /* @__PURE__ */ _defineComponent9({
1767
1831
  });
1768
1832
 
1769
1833
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkBlockquote.vue?type=template
1770
- import { renderList as _renderList5, Fragment as _Fragment7, openBlock as _openBlock9, createElementBlock as _createElementBlock8, createBlock as _createBlock4, toDisplayString as _toDisplayString5 } from "vue";
1834
+ import { renderList as _renderList5, Fragment as _Fragment7, openBlock as _openBlock9, createElementBlock as _createElementBlock8, createBlock as _createBlock5, toDisplayString as _toDisplayString5 } from "vue";
1771
1835
  var _hoisted_110 = { class: "incremark-blockquote" };
1772
1836
  var _hoisted_26 = {
1773
1837
  key: 1,
@@ -1783,7 +1847,7 @@ function render9(_ctx, _cache, $props, $setup, $data, $options) {
1783
1847
  _Fragment7,
1784
1848
  { key: index },
1785
1849
  [
1786
- child.type === "paragraph" ? (_openBlock9(), _createBlock4($setup["IncremarkParagraph"], {
1850
+ child.type === "paragraph" ? (_openBlock9(), _createBlock5($setup["IncremarkParagraph"], {
1787
1851
  key: 0,
1788
1852
  node: child
1789
1853
  }, null, 8, ["node"])) : (_openBlock9(), _createElementBlock8(
@@ -1833,9 +1897,127 @@ IncremarkThematicBreak_default.render = render10;
1833
1897
  IncremarkThematicBreak_default.__file = "src/components/IncremarkThematicBreak.vue";
1834
1898
  var IncremarkThematicBreak_default2 = IncremarkThematicBreak_default;
1835
1899
 
1836
- // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkDefault.vue?type=script
1900
+ // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkFootnotes.vue?type=script
1901
+ import { defineComponent as _defineComponent14 } from "vue";
1902
+ import { computed as computed9 } from "vue";
1903
+
1904
+ // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkRenderer.vue?type=script
1905
+ import { defineComponent as _defineComponent13 } from "vue";
1906
+
1907
+ // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkContainer.vue?type=script
1837
1908
  import { defineComponent as _defineComponent11 } from "vue";
1838
- var IncremarkDefault_default = /* @__PURE__ */ _defineComponent11({
1909
+ var IncremarkContainer_default = /* @__PURE__ */ _defineComponent11({
1910
+ __name: "IncremarkContainer",
1911
+ props: {
1912
+ node: { type: Object, required: true },
1913
+ customContainers: { type: Object, required: false }
1914
+ },
1915
+ setup(__props, { expose: __expose }) {
1916
+ __expose();
1917
+ const props = __props;
1918
+ function parseOptions(attributes) {
1919
+ if (!attributes) return {};
1920
+ const options2 = {};
1921
+ for (const [key, value] of Object.entries(attributes)) {
1922
+ try {
1923
+ options2[key] = JSON.parse(value);
1924
+ } catch {
1925
+ options2[key] = value;
1926
+ }
1927
+ }
1928
+ return options2;
1929
+ }
1930
+ const containerName = props.node.name;
1931
+ const options = parseOptions(props.node.attributes);
1932
+ const CustomContainer = props.customContainers?.[containerName];
1933
+ const hasCustomContainer = !!CustomContainer;
1934
+ const __returned__ = { props, parseOptions, containerName, options, CustomContainer, hasCustomContainer, IncremarkRenderer: IncremarkRenderer_default };
1935
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1936
+ return __returned__;
1937
+ }
1938
+ });
1939
+
1940
+ // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkContainer.vue?type=template
1941
+ import { createCommentVNode as _createCommentVNode8, renderList as _renderList6, Fragment as _Fragment8, openBlock as _openBlock11, createElementBlock as _createElementBlock10, createBlock as _createBlock6, resolveDynamicComponent as _resolveDynamicComponent5, withCtx as _withCtx4, normalizeClass as _normalizeClass3, createElementVNode as _createElementVNode7 } from "vue";
1942
+ var _hoisted_112 = {
1943
+ key: 0,
1944
+ class: "incremark-container-content"
1945
+ };
1946
+ function render11(_ctx, _cache, $props, $setup, $data, $options) {
1947
+ return _openBlock11(), _createElementBlock10(
1948
+ _Fragment8,
1949
+ null,
1950
+ [
1951
+ _createCommentVNode8(" \u5982\u679C\u6709\u81EA\u5B9A\u4E49\u5BB9\u5668\u7EC4\u4EF6\uFF0C\u4F7F\u7528\u81EA\u5B9A\u4E49\u7EC4\u4EF6 "),
1952
+ $setup.hasCustomContainer ? (_openBlock11(), _createBlock6(_resolveDynamicComponent5($setup.CustomContainer), {
1953
+ key: 0,
1954
+ name: $setup.containerName,
1955
+ options: $setup.options
1956
+ }, {
1957
+ default: _withCtx4(() => [
1958
+ _createCommentVNode8(" \u5C06\u5BB9\u5668\u5185\u5BB9\u4F5C\u4E3A\u9ED8\u8BA4 slot \u4F20\u9012 "),
1959
+ $props.node.children && $props.node.children.length > 0 ? (_openBlock11(true), _createElementBlock10(
1960
+ _Fragment8,
1961
+ { key: 0 },
1962
+ _renderList6($props.node.children, (child, index) => {
1963
+ return _openBlock11(), _createBlock6($setup["IncremarkRenderer"], {
1964
+ key: index,
1965
+ node: child
1966
+ }, null, 8, ["node"]);
1967
+ }),
1968
+ 128
1969
+ /* KEYED_FRAGMENT */
1970
+ )) : _createCommentVNode8("v-if", true)
1971
+ ]),
1972
+ _: 1
1973
+ /* STABLE */
1974
+ }, 8, ["name", "options"])) : (_openBlock11(), _createElementBlock10(
1975
+ _Fragment8,
1976
+ { key: 1 },
1977
+ [
1978
+ _createCommentVNode8(" \u5982\u679C\u6CA1\u6709\u81EA\u5B9A\u4E49\u5BB9\u5668\u7EC4\u4EF6\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u6E32\u67D3 "),
1979
+ _createElementVNode7(
1980
+ "div",
1981
+ {
1982
+ class: _normalizeClass3(["incremark-container", `incremark-container-${$setup.containerName}`])
1983
+ },
1984
+ [
1985
+ $props.node.children && $props.node.children.length > 0 ? (_openBlock11(), _createElementBlock10("div", _hoisted_112, [
1986
+ (_openBlock11(true), _createElementBlock10(
1987
+ _Fragment8,
1988
+ null,
1989
+ _renderList6($props.node.children, (child, index) => {
1990
+ return _openBlock11(), _createBlock6($setup["IncremarkRenderer"], {
1991
+ key: index,
1992
+ node: child
1993
+ }, null, 8, ["node"]);
1994
+ }),
1995
+ 128
1996
+ /* KEYED_FRAGMENT */
1997
+ ))
1998
+ ])) : _createCommentVNode8("v-if", true)
1999
+ ],
2000
+ 2
2001
+ /* CLASS */
2002
+ )
2003
+ ],
2004
+ 2112
2005
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
2006
+ ))
2007
+ ],
2008
+ 2112
2009
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
2010
+ );
2011
+ }
2012
+
2013
+ // src/components/IncremarkContainer.vue
2014
+ IncremarkContainer_default.render = render11;
2015
+ IncremarkContainer_default.__file = "src/components/IncremarkContainer.vue";
2016
+ var IncremarkContainer_default2 = IncremarkContainer_default;
2017
+
2018
+ // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkDefault.vue?type=script
2019
+ import { defineComponent as _defineComponent12 } from "vue";
2020
+ var IncremarkDefault_default = /* @__PURE__ */ _defineComponent12({
1839
2021
  __name: "IncremarkDefault",
1840
2022
  props: {
1841
2023
  node: { type: null, required: true }
@@ -1849,19 +2031,19 @@ var IncremarkDefault_default = /* @__PURE__ */ _defineComponent11({
1849
2031
  });
1850
2032
 
1851
2033
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkDefault.vue?type=template
1852
- import { toDisplayString as _toDisplayString6, createElementVNode as _createElementVNode7, openBlock as _openBlock11, createElementBlock as _createElementBlock10 } from "vue";
1853
- var _hoisted_112 = { class: "incremark-default" };
2034
+ import { toDisplayString as _toDisplayString6, createElementVNode as _createElementVNode8, openBlock as _openBlock12, createElementBlock as _createElementBlock11 } from "vue";
2035
+ var _hoisted_113 = { class: "incremark-default" };
1854
2036
  var _hoisted_27 = { class: "type-badge" };
1855
- function render11(_ctx, _cache, $props, $setup, $data, $options) {
1856
- return _openBlock11(), _createElementBlock10("div", _hoisted_112, [
1857
- _createElementVNode7(
2037
+ function render12(_ctx, _cache, $props, $setup, $data, $options) {
2038
+ return _openBlock12(), _createElementBlock11("div", _hoisted_113, [
2039
+ _createElementVNode8(
1858
2040
  "span",
1859
2041
  _hoisted_27,
1860
2042
  _toDisplayString6($props.node.type),
1861
2043
  1
1862
2044
  /* TEXT */
1863
2045
  ),
1864
- _createElementVNode7(
2046
+ _createElementVNode8(
1865
2047
  "pre",
1866
2048
  null,
1867
2049
  _toDisplayString6(JSON.stringify($props.node, null, 2)),
@@ -1872,20 +2054,18 @@ function render11(_ctx, _cache, $props, $setup, $data, $options) {
1872
2054
  }
1873
2055
 
1874
2056
  // src/components/IncremarkDefault.vue
1875
- IncremarkDefault_default.render = render11;
2057
+ IncremarkDefault_default.render = render12;
1876
2058
  IncremarkDefault_default.__file = "src/components/IncremarkDefault.vue";
1877
2059
  var IncremarkDefault_default2 = IncremarkDefault_default;
1878
2060
 
1879
- // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkFootnotes.vue?type=script
1880
- import { defineComponent as _defineComponent13 } from "vue";
1881
- import { computed as computed9 } from "vue";
1882
-
1883
2061
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkRenderer.vue?type=script
1884
- import { defineComponent as _defineComponent12 } from "vue";
1885
- var IncremarkRenderer_default = /* @__PURE__ */ _defineComponent12({
2062
+ var IncremarkRenderer_default2 = /* @__PURE__ */ _defineComponent13({
1886
2063
  __name: "IncremarkRenderer",
1887
2064
  props: {
1888
- node: { type: null, required: true }
2065
+ node: { type: null, required: true },
2066
+ customContainers: { type: Object, required: false },
2067
+ customCodeBlocks: { type: Object, required: false },
2068
+ blockStatus: { type: String, required: false }
1889
2069
  },
1890
2070
  setup(__props, { expose: __expose }) {
1891
2071
  __expose();
@@ -1900,46 +2080,79 @@ var IncremarkRenderer_default = /* @__PURE__ */ _defineComponent12({
1900
2080
  thematicBreak: IncremarkThematicBreak_default2,
1901
2081
  math: IncremarkMath_default2,
1902
2082
  inlineMath: IncremarkMath_default2,
1903
- htmlElement: IncremarkHtmlElement_default2
2083
+ htmlElement: IncremarkHtmlElement_default2,
2084
+ containerDirective: IncremarkContainer_default2,
2085
+ leafDirective: IncremarkContainer_default2,
2086
+ textDirective: IncremarkContainer_default2
1904
2087
  };
1905
2088
  function getComponent(type) {
1906
2089
  return componentMap[type] || IncremarkDefault_default2;
1907
2090
  }
2091
+ function isContainerNode(node) {
2092
+ return node.type === "containerDirective" || node.type === "leafDirective" || node.type === "textDirective";
2093
+ }
1908
2094
  function isHtmlNode2(node) {
1909
2095
  return node.type === "html";
1910
2096
  }
1911
- const __returned__ = { props, componentMap, getComponent, isHtmlNode: isHtmlNode2 };
2097
+ const __returned__ = { props, componentMap, getComponent, isContainerNode, isHtmlNode: isHtmlNode2, IncremarkCode: IncremarkCode_default2, IncremarkContainer: IncremarkContainer_default2 };
1912
2098
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1913
2099
  return __returned__;
1914
2100
  }
1915
2101
  });
1916
2102
 
1917
2103
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkRenderer.vue?type=template
1918
- import { createCommentVNode as _createCommentVNode8, toDisplayString as _toDisplayString7, createElementVNode as _createElementVNode8, openBlock as _openBlock12, createElementBlock as _createElementBlock11, resolveDynamicComponent as _resolveDynamicComponent4, createBlock as _createBlock5, Fragment as _Fragment8 } from "vue";
1919
- var _hoisted_113 = {
2104
+ import { createCommentVNode as _createCommentVNode9, toDisplayString as _toDisplayString7, createElementVNode as _createElementVNode9, openBlock as _openBlock13, createElementBlock as _createElementBlock12, createVNode as _createVNode7, Fragment as _Fragment9, resolveDynamicComponent as _resolveDynamicComponent6, createBlock as _createBlock7 } from "vue";
2105
+ var _hoisted_114 = {
1920
2106
  key: 0,
1921
2107
  class: "incremark-html-code"
1922
2108
  };
1923
- function render12(_ctx, _cache, $props, $setup, $data, $options) {
1924
- return _openBlock12(), _createElementBlock11(
1925
- _Fragment8,
2109
+ function render13(_ctx, _cache, $props, $setup, $data, $options) {
2110
+ return _openBlock13(), _createElementBlock12(
2111
+ _Fragment9,
1926
2112
  null,
1927
2113
  [
1928
- _createCommentVNode8(" HTML \u8282\u70B9\uFF1A\u6E32\u67D3\u4E3A\u4EE3\u7801\u5757\u663E\u793A\u6E90\u4EE3\u7801 "),
1929
- $setup.isHtmlNode($props.node) ? (_openBlock12(), _createElementBlock11("pre", _hoisted_113, [
1930
- _createElementVNode8(
2114
+ _createCommentVNode9(" HTML \u8282\u70B9\uFF1A\u6E32\u67D3\u4E3A\u4EE3\u7801\u5757\u663E\u793A\u6E90\u4EE3\u7801 "),
2115
+ $setup.isHtmlNode($props.node) ? (_openBlock13(), _createElementBlock12("pre", _hoisted_114, [
2116
+ _createElementVNode9(
1931
2117
  "code",
1932
2118
  null,
1933
2119
  _toDisplayString7($props.node.value),
1934
2120
  1
1935
2121
  /* TEXT */
1936
2122
  )
1937
- ])) : (_openBlock12(), _createElementBlock11(
1938
- _Fragment8,
2123
+ ])) : $setup.isContainerNode($props.node) ? (_openBlock13(), _createElementBlock12(
2124
+ _Fragment9,
1939
2125
  { key: 1 },
1940
2126
  [
1941
- _createCommentVNode8(" \u5176\u4ED6\u8282\u70B9\uFF1A\u4F7F\u7528\u5BF9\u5E94\u7EC4\u4EF6 "),
1942
- (_openBlock12(), _createBlock5(_resolveDynamicComponent4($setup.getComponent($props.node.type)), { node: $props.node }, null, 8, ["node"]))
2127
+ _createCommentVNode9(" \u5BB9\u5668\u8282\u70B9\uFF1A\u4F7F\u7528\u5BB9\u5668\u7EC4\u4EF6\uFF0C\u4F20\u9012 customContainers "),
2128
+ _createVNode7($setup["IncremarkContainer"], {
2129
+ node: $props.node,
2130
+ "custom-containers": $props.customContainers
2131
+ }, null, 8, ["node", "custom-containers"])
2132
+ ],
2133
+ 2112
2134
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
2135
+ )) : $props.node.type === "code" ? (_openBlock13(), _createElementBlock12(
2136
+ _Fragment9,
2137
+ { key: 2 },
2138
+ [
2139
+ _createCommentVNode9(" \u4EE3\u7801\u8282\u70B9\uFF1A\u7279\u6B8A\u5904\u7406\uFF0C\u4F20\u9012 customCodeBlocks \u548C blockStatus "),
2140
+ _createVNode7($setup["IncremarkCode"], {
2141
+ node: $props.node,
2142
+ "custom-code-blocks": $props.customCodeBlocks,
2143
+ "block-status": $props.blockStatus
2144
+ }, null, 8, ["node", "custom-code-blocks", "block-status"])
2145
+ ],
2146
+ 2112
2147
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
2148
+ )) : (_openBlock13(), _createElementBlock12(
2149
+ _Fragment9,
2150
+ { key: 3 },
2151
+ [
2152
+ _createCommentVNode9(" \u5176\u4ED6\u8282\u70B9\uFF1A\u4F7F\u7528\u5BF9\u5E94\u7EC4\u4EF6 "),
2153
+ (_openBlock13(), _createBlock7(_resolveDynamicComponent6($setup.getComponent($props.node.type)), {
2154
+ node: $props.node
2155
+ }, null, 8, ["node"]))
1943
2156
  ],
1944
2157
  2112
1945
2158
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -1951,16 +2164,16 @@ function render12(_ctx, _cache, $props, $setup, $data, $options) {
1951
2164
  }
1952
2165
 
1953
2166
  // src/components/IncremarkRenderer.vue
1954
- IncremarkRenderer_default.render = render12;
1955
- IncremarkRenderer_default.__file = "src/components/IncremarkRenderer.vue";
1956
- var IncremarkRenderer_default2 = IncremarkRenderer_default;
2167
+ IncremarkRenderer_default2.render = render13;
2168
+ IncremarkRenderer_default2.__file = "src/components/IncremarkRenderer.vue";
2169
+ var IncremarkRenderer_default = IncremarkRenderer_default2;
1957
2170
 
1958
2171
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkFootnotes.vue?type=script
1959
- var IncremarkFootnotes_default = /* @__PURE__ */ _defineComponent13({
2172
+ var IncremarkFootnotes_default = /* @__PURE__ */ _defineComponent14({
1960
2173
  __name: "IncremarkFootnotes",
1961
2174
  setup(__props, { expose: __expose }) {
1962
2175
  __expose();
1963
- const { definations, footnoteDefinitions, footnoteReferenceOrder } = useDefinationsContext();
2176
+ const { footnoteDefinitions, footnoteReferenceOrder } = useDefinationsContext();
1964
2177
  const orderedFootnotes = computed9(() => {
1965
2178
  return footnoteReferenceOrder.value.map((identifier) => ({
1966
2179
  identifier,
@@ -1968,15 +2181,15 @@ var IncremarkFootnotes_default = /* @__PURE__ */ _defineComponent13({
1968
2181
  })).filter((item) => item.definition !== void 0);
1969
2182
  });
1970
2183
  const hasFootnotes = computed9(() => orderedFootnotes.value.length > 0);
1971
- const __returned__ = { definations, footnoteDefinitions, footnoteReferenceOrder, orderedFootnotes, hasFootnotes, IncremarkRenderer: IncremarkRenderer_default2 };
2184
+ const __returned__ = { footnoteDefinitions, footnoteReferenceOrder, orderedFootnotes, hasFootnotes, IncremarkRenderer: IncremarkRenderer_default };
1972
2185
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1973
2186
  return __returned__;
1974
2187
  }
1975
2188
  });
1976
2189
 
1977
2190
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/IncremarkFootnotes.vue?type=template
1978
- import { createElementVNode as _createElementVNode9, renderList as _renderList6, Fragment as _Fragment9, openBlock as _openBlock13, createElementBlock as _createElementBlock12, createCommentVNode as _createCommentVNode9, toDisplayString as _toDisplayString8, createBlock as _createBlock6 } from "vue";
1979
- var _hoisted_114 = {
2191
+ import { createElementVNode as _createElementVNode10, renderList as _renderList7, Fragment as _Fragment10, openBlock as _openBlock14, createElementBlock as _createElementBlock13, createCommentVNode as _createCommentVNode10, toDisplayString as _toDisplayString8, createBlock as _createBlock8 } from "vue";
2192
+ var _hoisted_115 = {
1980
2193
  key: 0,
1981
2194
  class: "incremark-footnotes"
1982
2195
  };
@@ -1986,41 +2199,41 @@ var _hoisted_44 = { class: "incremark-footnote-content" };
1986
2199
  var _hoisted_54 = { class: "incremark-footnote-number" };
1987
2200
  var _hoisted_64 = { class: "incremark-footnote-body" };
1988
2201
  var _hoisted_73 = ["href"];
1989
- function render13(_ctx, _cache, $props, $setup, $data, $options) {
1990
- return $setup.hasFootnotes ? (_openBlock13(), _createElementBlock12("section", _hoisted_114, [
1991
- _cache[0] || (_cache[0] = _createElementVNode9(
2202
+ function render14(_ctx, _cache, $props, $setup, $data, $options) {
2203
+ return $setup.hasFootnotes ? (_openBlock14(), _createElementBlock13("section", _hoisted_115, [
2204
+ _cache[0] || (_cache[0] = _createElementVNode10(
1992
2205
  "hr",
1993
2206
  { class: "incremark-footnotes-divider" },
1994
2207
  null,
1995
2208
  -1
1996
2209
  /* CACHED */
1997
2210
  )),
1998
- _createElementVNode9("ol", _hoisted_28, [
1999
- (_openBlock13(true), _createElementBlock12(
2000
- _Fragment9,
2211
+ _createElementVNode10("ol", _hoisted_28, [
2212
+ (_openBlock14(true), _createElementBlock13(
2213
+ _Fragment10,
2001
2214
  null,
2002
- _renderList6($setup.orderedFootnotes, (item, index) => {
2003
- return _openBlock13(), _createElementBlock12("li", {
2215
+ _renderList7($setup.orderedFootnotes, (item, index) => {
2216
+ return _openBlock14(), _createElementBlock13("li", {
2004
2217
  key: item.identifier,
2005
2218
  id: `fn-${item.identifier}`,
2006
2219
  class: "incremark-footnote-item"
2007
2220
  }, [
2008
- _createElementVNode9("div", _hoisted_44, [
2009
- _createCommentVNode9(" \u811A\u6CE8\u5E8F\u53F7 "),
2010
- _createElementVNode9(
2221
+ _createElementVNode10("div", _hoisted_44, [
2222
+ _createCommentVNode10(" \u811A\u6CE8\u5E8F\u53F7 "),
2223
+ _createElementVNode10(
2011
2224
  "span",
2012
2225
  _hoisted_54,
2013
2226
  _toDisplayString8(index + 1) + ".",
2014
2227
  1
2015
2228
  /* TEXT */
2016
2229
  ),
2017
- _createCommentVNode9(" \u811A\u6CE8\u5185\u5BB9 "),
2018
- _createElementVNode9("div", _hoisted_64, [
2019
- (_openBlock13(true), _createElementBlock12(
2020
- _Fragment9,
2230
+ _createCommentVNode10(" \u811A\u6CE8\u5185\u5BB9 "),
2231
+ _createElementVNode10("div", _hoisted_64, [
2232
+ (_openBlock14(true), _createElementBlock13(
2233
+ _Fragment10,
2021
2234
  null,
2022
- _renderList6(item.definition.children, (child, childIndex) => {
2023
- return _openBlock13(), _createBlock6($setup["IncremarkRenderer"], {
2235
+ _renderList7(item.definition.children, (child, childIndex) => {
2236
+ return _openBlock14(), _createBlock8($setup["IncremarkRenderer"], {
2024
2237
  key: childIndex,
2025
2238
  node: child
2026
2239
  }, null, 8, ["node"]);
@@ -2030,8 +2243,8 @@ function render13(_ctx, _cache, $props, $setup, $data, $options) {
2030
2243
  ))
2031
2244
  ])
2032
2245
  ]),
2033
- _createCommentVNode9(" \u8FD4\u56DE\u94FE\u63A5 "),
2034
- _createElementVNode9("a", {
2246
+ _createCommentVNode10(" \u8FD4\u56DE\u94FE\u63A5 "),
2247
+ _createElementVNode10("a", {
2035
2248
  href: `#fnref-${item.identifier}`,
2036
2249
  class: "incremark-footnote-backref",
2037
2250
  "aria-label": "\u8FD4\u56DE\u5F15\u7528\u4F4D\u7F6E"
@@ -2042,20 +2255,22 @@ function render13(_ctx, _cache, $props, $setup, $data, $options) {
2042
2255
  /* KEYED_FRAGMENT */
2043
2256
  ))
2044
2257
  ])
2045
- ])) : _createCommentVNode9("v-if", true);
2258
+ ])) : _createCommentVNode10("v-if", true);
2046
2259
  }
2047
2260
 
2048
2261
  // src/components/IncremarkFootnotes.vue
2049
- IncremarkFootnotes_default.render = render13;
2262
+ IncremarkFootnotes_default.render = render14;
2050
2263
  IncremarkFootnotes_default.__file = "src/components/IncremarkFootnotes.vue";
2051
2264
  var IncremarkFootnotes_default2 = IncremarkFootnotes_default;
2052
2265
 
2053
2266
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/Incremark.vue?type=script
2054
- var Incremark_default = /* @__PURE__ */ _defineComponent14({
2267
+ var Incremark_default = /* @__PURE__ */ _defineComponent15({
2055
2268
  __name: "Incremark",
2056
2269
  props: {
2057
2270
  blocks: { type: Array, required: false, default: () => [] },
2058
2271
  components: { type: Object, required: false, default: () => ({}) },
2272
+ customContainers: { type: Object, required: false, default: () => ({}) },
2273
+ customCodeBlocks: { type: Object, required: false, default: () => ({}) },
2059
2274
  pendingClass: { type: String, required: false, default: "incremark-pending" },
2060
2275
  completedClass: { type: String, required: false, default: "incremark-completed" },
2061
2276
  showBlockStatus: { type: Boolean, required: false, default: false },
@@ -2067,13 +2282,9 @@ var Incremark_default = /* @__PURE__ */ _defineComponent14({
2067
2282
  return node.type === "html";
2068
2283
  }
2069
2284
  const props = __props;
2070
- let footnoteReferenceOrder;
2071
- try {
2072
- const context = useDefinationsContext();
2073
- footnoteReferenceOrder = context.footnoteReferenceOrder;
2074
- } catch {
2075
- footnoteReferenceOrder = computed10(() => []);
2076
- }
2285
+ const {
2286
+ footnoteReferenceOrder
2287
+ } = useDefinationsContext();
2077
2288
  const actualBlocks = computed10(() => props.incremark?.blocks.value || props.blocks || []);
2078
2289
  const actualIsFinalized = computed10(() => {
2079
2290
  if (props.incremark) {
@@ -2098,42 +2309,35 @@ var Incremark_default = /* @__PURE__ */ _defineComponent14({
2098
2309
  ...defaultComponents,
2099
2310
  ...props.components
2100
2311
  }));
2101
- function getComponent(type) {
2102
- return mergedComponents.value[type] || props.components?.default || IncremarkDefault_default2;
2103
- }
2104
- const __returned__ = { isHtmlNode: isHtmlNode2, props, get footnoteReferenceOrder() {
2105
- return footnoteReferenceOrder;
2106
- }, set footnoteReferenceOrder(v) {
2107
- footnoteReferenceOrder = v;
2108
- }, actualBlocks, actualIsFinalized, defaultComponents, mergedComponents, getComponent, IncremarkFootnotes: IncremarkFootnotes_default2 };
2312
+ const __returned__ = { isHtmlNode: isHtmlNode2, props, footnoteReferenceOrder, actualBlocks, actualIsFinalized, defaultComponents, mergedComponents, IncremarkFootnotes: IncremarkFootnotes_default2, IncremarkRenderer: IncremarkRenderer_default };
2109
2313
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
2110
2314
  return __returned__;
2111
2315
  }
2112
2316
  });
2113
2317
 
2114
2318
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/Incremark.vue?type=template
2115
- import { createCommentVNode as _createCommentVNode10, renderList as _renderList7, Fragment as _Fragment10, openBlock as _openBlock14, createElementBlock as _createElementBlock13, toDisplayString as _toDisplayString9, createElementVNode as _createElementVNode10, resolveDynamicComponent as _resolveDynamicComponent5, createBlock as _createBlock7, normalizeClass as _normalizeClass3 } from "vue";
2116
- var _hoisted_115 = { class: "incremark" };
2319
+ import { createCommentVNode as _createCommentVNode11, renderList as _renderList8, Fragment as _Fragment11, openBlock as _openBlock15, createElementBlock as _createElementBlock14, toDisplayString as _toDisplayString9, createElementVNode as _createElementVNode11, createVNode as _createVNode8, normalizeClass as _normalizeClass4, createBlock as _createBlock9 } from "vue";
2320
+ var _hoisted_116 = { class: "incremark" };
2117
2321
  var _hoisted_29 = {
2118
2322
  key: 0,
2119
2323
  class: "incremark-html-code"
2120
2324
  };
2121
- function render14(_ctx, _cache, $props, $setup, $data, $options) {
2122
- return _openBlock14(), _createElementBlock13("div", _hoisted_115, [
2123
- _createCommentVNode10(" \u4E3B\u8981\u5185\u5BB9\u5757 "),
2124
- (_openBlock14(true), _createElementBlock13(
2125
- _Fragment10,
2325
+ function render15(_ctx, _cache, $props, $setup, $data, $options) {
2326
+ return _openBlock15(), _createElementBlock14("div", _hoisted_116, [
2327
+ _createCommentVNode11(" \u4E3B\u8981\u5185\u5BB9\u5757 "),
2328
+ (_openBlock15(true), _createElementBlock14(
2329
+ _Fragment11,
2126
2330
  null,
2127
- _renderList7($setup.actualBlocks, (block) => {
2128
- return _openBlock14(), _createElementBlock13(
2129
- _Fragment10,
2331
+ _renderList8($setup.actualBlocks, (block) => {
2332
+ return _openBlock15(), _createElementBlock14(
2333
+ _Fragment11,
2130
2334
  null,
2131
2335
  [
2132
- block.node.type !== "definition" && block.node.type !== "footnoteDefinition" ? (_openBlock14(), _createElementBlock13(
2336
+ block.node.type !== "definition" && block.node.type !== "footnoteDefinition" ? (_openBlock15(), _createElementBlock14(
2133
2337
  "div",
2134
2338
  {
2135
2339
  key: block.stableId,
2136
- class: _normalizeClass3([
2340
+ class: _normalizeClass4([
2137
2341
  "incremark-block",
2138
2342
  block.status === "completed" ? $props.completedClass : $props.pendingClass,
2139
2343
  { "incremark-show-status": $props.showBlockStatus },
@@ -2141,23 +2345,26 @@ function render14(_ctx, _cache, $props, $setup, $data, $options) {
2141
2345
  ])
2142
2346
  },
2143
2347
  [
2144
- _createCommentVNode10(" HTML \u8282\u70B9\uFF1A\u6E32\u67D3\u4E3A\u4EE3\u7801\u5757\u663E\u793A\u6E90\u4EE3\u7801 "),
2145
- $setup.isHtmlNode(block.node) ? (_openBlock14(), _createElementBlock13("pre", _hoisted_29, [
2146
- _createElementVNode10(
2348
+ _createCommentVNode11(" HTML \u8282\u70B9\uFF1A\u6E32\u67D3\u4E3A\u4EE3\u7801\u5757\u663E\u793A\u6E90\u4EE3\u7801 "),
2349
+ $setup.isHtmlNode(block.node) ? (_openBlock15(), _createElementBlock14("pre", _hoisted_29, [
2350
+ _createElementVNode11(
2147
2351
  "code",
2148
2352
  null,
2149
2353
  _toDisplayString9(block.node.value),
2150
2354
  1
2151
2355
  /* TEXT */
2152
2356
  )
2153
- ])) : (_openBlock14(), _createElementBlock13(
2154
- _Fragment10,
2357
+ ])) : (_openBlock15(), _createElementBlock14(
2358
+ _Fragment11,
2155
2359
  { key: 1 },
2156
2360
  [
2157
- _createCommentVNode10(" \u5176\u4ED6\u8282\u70B9\uFF1A\u4F7F\u7528\u5BF9\u5E94\u7EC4\u4EF6 "),
2158
- (_openBlock14(), _createBlock7(_resolveDynamicComponent5($setup.getComponent(block.node.type)), {
2159
- node: block.node
2160
- }, null, 8, ["node"]))
2361
+ _createCommentVNode11(" \u5176\u4ED6\u8282\u70B9\uFF1A\u4F7F\u7528\u5BF9\u5E94\u7EC4\u4EF6\uFF0C\u4F20\u9012 customContainers \u548C customCodeBlocks "),
2362
+ _createVNode8($setup["IncremarkRenderer"], {
2363
+ node: block.node,
2364
+ "block-status": block.status,
2365
+ "custom-containers": $props.customContainers,
2366
+ "custom-code-blocks": $props.customCodeBlocks
2367
+ }, null, 8, ["node", "block-status", "custom-containers", "custom-code-blocks"])
2161
2368
  ],
2162
2369
  2112
2163
2370
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -2165,7 +2372,7 @@ function render14(_ctx, _cache, $props, $setup, $data, $options) {
2165
2372
  ],
2166
2373
  2
2167
2374
  /* CLASS */
2168
- )) : _createCommentVNode10("v-if", true)
2375
+ )) : _createCommentVNode11("v-if", true)
2169
2376
  ],
2170
2377
  64
2171
2378
  /* STABLE_FRAGMENT */
@@ -2174,20 +2381,20 @@ function render14(_ctx, _cache, $props, $setup, $data, $options) {
2174
2381
  256
2175
2382
  /* UNKEYED_FRAGMENT */
2176
2383
  )),
2177
- _createCommentVNode10(" \u811A\u6CE8\u5217\u8868\uFF08\u4EC5\u5728 finalize \u540E\u663E\u793A\uFF09 "),
2178
- $setup.actualIsFinalized && $setup.footnoteReferenceOrder.value?.length > 0 ? (_openBlock14(), _createBlock7($setup["IncremarkFootnotes"], { key: 0 })) : _createCommentVNode10("v-if", true)
2384
+ _createCommentVNode11(" \u811A\u6CE8\u5217\u8868\uFF08\u4EC5\u5728 finalize \u540E\u663E\u793A\uFF09 "),
2385
+ $setup.actualIsFinalized && $setup.footnoteReferenceOrder.length > 0 ? (_openBlock15(), _createBlock9($setup["IncremarkFootnotes"], { key: 0 })) : _createCommentVNode11("v-if", true)
2179
2386
  ]);
2180
2387
  }
2181
2388
 
2182
2389
  // src/components/Incremark.vue
2183
- Incremark_default.render = render14;
2390
+ Incremark_default.render = render15;
2184
2391
  Incremark_default.__file = "src/components/Incremark.vue";
2185
2392
  var Incremark_default2 = Incremark_default;
2186
2393
 
2187
2394
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/AutoScrollContainer.vue?type=script
2188
- import { defineComponent as _defineComponent15 } from "vue";
2395
+ import { defineComponent as _defineComponent16 } from "vue";
2189
2396
  import { ref as ref8, onMounted as onMounted2, onUnmounted as onUnmounted6, nextTick } from "vue";
2190
- var AutoScrollContainer_default = /* @__PURE__ */ _defineComponent15({
2397
+ var AutoScrollContainer_default = /* @__PURE__ */ _defineComponent16({
2191
2398
  __name: "AutoScrollContainer",
2192
2399
  props: {
2193
2400
  enabled: { type: Boolean, required: false, default: true },
@@ -2295,9 +2502,9 @@ var AutoScrollContainer_default = /* @__PURE__ */ _defineComponent15({
2295
2502
  });
2296
2503
 
2297
2504
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/components/AutoScrollContainer.vue?type=template
2298
- import { renderSlot as _renderSlot, openBlock as _openBlock15, createElementBlock as _createElementBlock14 } from "vue";
2299
- function render15(_ctx, _cache, $props, $setup, $data, $options) {
2300
- return _openBlock15(), _createElementBlock14(
2505
+ import { renderSlot as _renderSlot, openBlock as _openBlock16, createElementBlock as _createElementBlock15 } from "vue";
2506
+ function render16(_ctx, _cache, $props, $setup, $data, $options) {
2507
+ return _openBlock16(), _createElementBlock15(
2301
2508
  "div",
2302
2509
  {
2303
2510
  ref: "containerRef",
@@ -2305,7 +2512,7 @@ function render15(_ctx, _cache, $props, $setup, $data, $options) {
2305
2512
  onScroll: $setup.handleScroll
2306
2513
  },
2307
2514
  [
2308
- _renderSlot(_ctx.$slots, "default", {}, void 0, true)
2515
+ _renderSlot(_ctx.$slots, "default")
2309
2516
  ],
2310
2517
  544
2311
2518
  /* NEED_HYDRATION, NEED_PATCH */
@@ -2313,16 +2520,15 @@ function render15(_ctx, _cache, $props, $setup, $data, $options) {
2313
2520
  }
2314
2521
 
2315
2522
  // src/components/AutoScrollContainer.vue
2316
- AutoScrollContainer_default.render = render15;
2523
+ AutoScrollContainer_default.render = render16;
2317
2524
  AutoScrollContainer_default.__file = "src/components/AutoScrollContainer.vue";
2318
- AutoScrollContainer_default.__scopeId = "data-v-e0d180b8";
2319
2525
  var AutoScrollContainer_default2 = AutoScrollContainer_default;
2320
2526
 
2321
2527
  // sfc-script:/Users/yishuai/develop/ai/markdown/packages/vue/src/ThemeProvider.vue?type=script
2322
- import { defineComponent as _defineComponent16 } from "vue";
2528
+ import { defineComponent as _defineComponent17 } from "vue";
2323
2529
  import { ref as ref9, watch as watch6 } from "vue";
2324
2530
  import { applyTheme } from "@incremark/theme";
2325
- var ThemeProvider_default = /* @__PURE__ */ _defineComponent16({
2531
+ var ThemeProvider_default = /* @__PURE__ */ _defineComponent17({
2326
2532
  __name: "ThemeProvider",
2327
2533
  props: {
2328
2534
  theme: { type: null, required: true },
@@ -2348,13 +2554,13 @@ var ThemeProvider_default = /* @__PURE__ */ _defineComponent16({
2348
2554
  });
2349
2555
 
2350
2556
  // sfc-template:/Users/yishuai/develop/ai/markdown/packages/vue/src/ThemeProvider.vue?type=template
2351
- import { renderSlot as _renderSlot2, normalizeClass as _normalizeClass4, openBlock as _openBlock16, createElementBlock as _createElementBlock15 } from "vue";
2352
- function render16(_ctx, _cache, $props, $setup, $data, $options) {
2353
- return _openBlock16(), _createElementBlock15(
2557
+ import { renderSlot as _renderSlot2, normalizeClass as _normalizeClass5, openBlock as _openBlock17, createElementBlock as _createElementBlock16 } from "vue";
2558
+ function render17(_ctx, _cache, $props, $setup, $data, $options) {
2559
+ return _openBlock17(), _createElementBlock16(
2354
2560
  "div",
2355
2561
  {
2356
2562
  ref: "containerRef",
2357
- class: _normalizeClass4([$setup.props.class, "incremark-theme-provider"])
2563
+ class: _normalizeClass5([$setup.props.class, "incremark-theme-provider"])
2358
2564
  },
2359
2565
  [
2360
2566
  _renderSlot2(_ctx.$slots, "default")
@@ -2365,7 +2571,7 @@ function render16(_ctx, _cache, $props, $setup, $data, $options) {
2365
2571
  }
2366
2572
 
2367
2573
  // src/ThemeProvider.vue
2368
- ThemeProvider_default.render = render16;
2574
+ ThemeProvider_default.render = render17;
2369
2575
  ThemeProvider_default.__file = "src/ThemeProvider.vue";
2370
2576
  var ThemeProvider_default2 = ThemeProvider_default;
2371
2577
 
@@ -2406,7 +2612,7 @@ export {
2406
2612
  IncremarkList_default2 as IncremarkList,
2407
2613
  IncremarkMath_default2 as IncremarkMath,
2408
2614
  IncremarkParagraph_default2 as IncremarkParagraph,
2409
- IncremarkRenderer_default2 as IncremarkRenderer,
2615
+ IncremarkRenderer_default as IncremarkRenderer,
2410
2616
  IncremarkTable_default2 as IncremarkTable,
2411
2617
  IncremarkThematicBreak_default2 as IncremarkThematicBreak,
2412
2618
  ThemeProvider_default2 as ThemeProvider,