@coderminer/vue-markdown 1.0.0 → 1.0.1

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 (179) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/README.md +7 -2
  3. package/README.zh-CN.md +6 -3
  4. package/dist/chunks/MarkdownBlockquote-DVXziX2t.js +0 -2
  5. package/dist/chunks/MarkdownBreak-BwCi2Itt.js +0 -2
  6. package/dist/chunks/MarkdownCode-B1k9tmW5.js +0 -2
  7. package/dist/chunks/MarkdownConfigProvider-5N3ylrIu.js +0 -2
  8. package/dist/chunks/MarkdownContent-BAK6dqo7.js +0 -2
  9. package/dist/chunks/MarkdownCustomTag-lZJHsD6f.js +46 -0
  10. package/dist/chunks/MarkdownEmphasis-CppivOEu.js +0 -2
  11. package/dist/chunks/MarkdownEmpty-Av5k6bqa.js +0 -2
  12. package/dist/chunks/MarkdownError-C0sPs5W0.js +0 -2
  13. package/dist/chunks/MarkdownFootnoteReference-Dy3Khwyj.js +0 -2
  14. package/dist/chunks/MarkdownFootnotes-BRPzkbXv.js +0 -2
  15. package/dist/chunks/MarkdownHeading-DaNcP0_6.js +0 -2
  16. package/dist/chunks/MarkdownHorizontalRule-QNe_cuUI.js +0 -2
  17. package/dist/chunks/MarkdownHtml-66lYkvwM.js +0 -2
  18. package/dist/chunks/MarkdownImage-BRy76svs.js +0 -2
  19. package/dist/chunks/MarkdownInlineCode-MXZYFwex.js +0 -2
  20. package/dist/chunks/MarkdownLink-Dbx3NwgV.js +0 -2
  21. package/dist/chunks/MarkdownList-BJ-_C71k.js +0 -2
  22. package/dist/chunks/MarkdownListItem-Z1EHIY26.js +0 -2
  23. package/dist/chunks/MarkdownLoading-D-RYtXxf.js +0 -2
  24. package/dist/chunks/MarkdownParagraph-BxLSmSaG.js +0 -2
  25. package/dist/chunks/MarkdownRenderer-OlkdsvI3.js +482 -0
  26. package/dist/chunks/MarkdownRoot-DEE6iVfh.js +0 -2
  27. package/dist/chunks/MarkdownStrikethrough-CblvbqDk.js +0 -2
  28. package/dist/chunks/MarkdownStrong-uU5MzAoJ.js +0 -2
  29. package/dist/chunks/MarkdownTable-DmBTg_CR.js +0 -2
  30. package/dist/chunks/MarkdownTableCell-eiCJe847.js +0 -2
  31. package/dist/chunks/MarkdownTableRow-DuJaPntg.js +0 -2
  32. package/dist/chunks/MarkdownTableSection-PFHz-R33.js +0 -2
  33. package/dist/chunks/MarkdownTaskItem-BcmKo1lk.js +0 -2
  34. package/dist/chunks/{MarkdownToc-BdOHF-Yo.js → MarkdownToc-DHWWoH6t.js} +1 -3
  35. package/dist/chunks/MarkdownTocItem-DT9mR3vL.js +0 -2
  36. package/dist/chunks/{MermaidLiveEditor-W-qf3G-5.js → MermaidLiveEditor-1TKkI5bp.js} +1 -3
  37. package/dist/chunks/{VueSyntaxHighlighter-DyLsYMwy.js → VueSyntaxHighlighter-BWpCO-cX.js} +1 -3
  38. package/dist/chunks/adapters-CMwX_NEI.js +0 -2
  39. package/dist/chunks/{blank-line-Cb-JBP_5.js → blank-line-CKKsFeKR.js} +1 -3
  40. package/dist/chunks/codemirror-DyphMAEg.js +0 -2
  41. package/dist/chunks/config-aRYo2R8_.js +0 -2
  42. package/dist/chunks/context-8NfW6fxI.js +0 -2
  43. package/dist/chunks/convert-hast-C4Rg2ZuF.js +6 -0
  44. package/dist/chunks/default-ZQ5aHh-N.js +3 -0
  45. package/dist/chunks/diagnostics-CtHoJyiX.js +0 -2
  46. package/dist/chunks/{export-DZQ3cUry.js → export-BrgMLgUp.js} +13 -14
  47. package/dist/chunks/hast-to-nodes-DuZsi4XT.js +29 -0
  48. package/dist/chunks/{lib-BQiWGWpu.js → hast-util-from-html-D3e_iQ89.js} +495 -494
  49. package/dist/chunks/highlightjs-BxJFpKS1.js +196 -0
  50. package/dist/chunks/{identity-jZEhX2d5.js → identity-Bi27FKyx.js} +7 -8
  51. package/dist/chunks/labels-BtHiUTQI.js +0 -2
  52. package/dist/chunks/lib-CCnkLL6S.js +252 -0
  53. package/dist/chunks/longest-streak-DZE_EqsU.js +0 -2
  54. package/dist/chunks/{micromark-factory-space-Db040TnW.js → micromark-factory-space-CpXAnYUY.js} +2 -4
  55. package/dist/chunks/{normalize-CRYv3Wqt.js → normalize-VKfQXZiK.js} +57 -51
  56. package/dist/chunks/{plugin-DqkFHyny.js → plugin-YWo5uqTh.js} +1 -2
  57. package/dist/chunks/preset-BjaOuJUL.js +0 -2
  58. package/dist/chunks/{registry-DLjr93-V.js → registry-B7BfEkuy.js} +1051 -1045
  59. package/dist/chunks/{render-Cs8iKrgz.js → render-DAqK0w5J.js} +524 -494
  60. package/dist/chunks/{default-DWVS-I_8.js → rolldown-runtime-QGRDbDUS.js} +1 -5
  61. package/dist/chunks/{runtime-DJMnzjah.js → runtime-D95F41zG.js} +145 -117
  62. package/dist/chunks/security-y4EwUyAs.js +0 -2
  63. package/dist/chunks/{shared-DNAvZ-UY.js → shared-NjFDPmkb.js} +18 -27
  64. package/dist/chunks/{space-separated-tokens-CmBjEPdR.js → space-separated-tokens-1ebNqf35.js} +1 -3
  65. package/dist/chunks/url-D2BoivaE.js +0 -2
  66. package/dist/chunks/{useActiveHeading-BaGVMJnB.js → useActiveHeading-CnyGTG1u.js} +165 -122
  67. package/dist/components/CodeBlock.js +1 -1
  68. package/dist/components/MarkdownCustomTag.js +1 -1
  69. package/dist/components/MarkdownMath.js +1 -1
  70. package/dist/components/MarkdownMermaid.d.ts +3 -3
  71. package/dist/components/MarkdownMermaid.js +1 -1
  72. package/dist/components/MarkdownRenderer.d.ts +16 -19
  73. package/dist/components/MarkdownRenderer.js +1 -1
  74. package/dist/components/MarkdownToc.js +1 -1
  75. package/dist/components/MermaidBlock.js +1 -1
  76. package/dist/components/MermaidLiveEditor.js +1 -1
  77. package/dist/components/VueSyntaxHighlighter.js +1 -1
  78. package/dist/components/context.d.ts +2 -2
  79. package/dist/components/index.js +6 -6
  80. package/dist/components/types.d.ts +34 -2
  81. package/dist/composables/useMarkdownDocument.d.ts +2 -0
  82. package/dist/core/hast-nodes.d.ts +0 -3
  83. package/dist/core/hast-to-nodes.d.ts +9 -0
  84. package/dist/core/normalize.d.ts +10 -0
  85. package/dist/core/parts.d.ts +1 -0
  86. package/dist/core/slugger.d.ts +7 -0
  87. package/dist/core/types.d.ts +3 -1
  88. package/dist/headless.js +8 -8
  89. package/dist/highlight/convert-hast.d.ts +8 -0
  90. package/dist/highlight/index.d.ts +2 -1
  91. package/dist/highlight/index.js +4 -3
  92. package/dist/highlight/shared.d.ts +0 -5
  93. package/dist/highlight/shiki.js +2 -3
  94. package/dist/html/index.js +0 -2
  95. package/dist/index.d.ts +1 -1
  96. package/dist/index.js +47 -49
  97. package/dist/math/index.js +18 -16
  98. package/dist/mermaid/index.d.ts +2 -1
  99. package/dist/mermaid/index.js +8 -3
  100. package/dist/mermaid/plugin.d.ts +3 -0
  101. package/dist/mermaid/runtime.d.ts +3 -1
  102. package/dist/mermaid/sanitize-svg-lazy.d.ts +10 -0
  103. package/dist/mermaid/sanitize-svg.d.ts +3 -0
  104. package/dist/mermaid/sanitize.d.ts +6 -2
  105. package/dist/node-components.js +6 -6
  106. package/dist/pipeline.js +1 -1
  107. package/dist/plugins.js +1 -1
  108. package/dist/styles/components.css +25 -0
  109. package/package.json +6 -3
  110. package/dist/chunks/MarkdownBlockquote-DVXziX2t.js.map +0 -1
  111. package/dist/chunks/MarkdownBreak-BwCi2Itt.js.map +0 -1
  112. package/dist/chunks/MarkdownCode-B1k9tmW5.js.map +0 -1
  113. package/dist/chunks/MarkdownConfigProvider-5N3ylrIu.js.map +0 -1
  114. package/dist/chunks/MarkdownContent-BAK6dqo7.js.map +0 -1
  115. package/dist/chunks/MarkdownCustomTag-BBdn3-WO.js +0 -42
  116. package/dist/chunks/MarkdownCustomTag-BBdn3-WO.js.map +0 -1
  117. package/dist/chunks/MarkdownEmphasis-CppivOEu.js.map +0 -1
  118. package/dist/chunks/MarkdownEmpty-Av5k6bqa.js.map +0 -1
  119. package/dist/chunks/MarkdownError-C0sPs5W0.js.map +0 -1
  120. package/dist/chunks/MarkdownFootnoteReference-Dy3Khwyj.js.map +0 -1
  121. package/dist/chunks/MarkdownFootnotes-BRPzkbXv.js.map +0 -1
  122. package/dist/chunks/MarkdownHeading-DaNcP0_6.js.map +0 -1
  123. package/dist/chunks/MarkdownHorizontalRule-QNe_cuUI.js.map +0 -1
  124. package/dist/chunks/MarkdownHtml-66lYkvwM.js.map +0 -1
  125. package/dist/chunks/MarkdownImage-BRy76svs.js.map +0 -1
  126. package/dist/chunks/MarkdownInlineCode-MXZYFwex.js.map +0 -1
  127. package/dist/chunks/MarkdownLink-Dbx3NwgV.js.map +0 -1
  128. package/dist/chunks/MarkdownList-BJ-_C71k.js.map +0 -1
  129. package/dist/chunks/MarkdownListItem-Z1EHIY26.js.map +0 -1
  130. package/dist/chunks/MarkdownLoading-D-RYtXxf.js.map +0 -1
  131. package/dist/chunks/MarkdownParagraph-BxLSmSaG.js.map +0 -1
  132. package/dist/chunks/MarkdownRenderer-DLRRfsdI.js +0 -416
  133. package/dist/chunks/MarkdownRenderer-DLRRfsdI.js.map +0 -1
  134. package/dist/chunks/MarkdownRoot-DEE6iVfh.js.map +0 -1
  135. package/dist/chunks/MarkdownStrikethrough-CblvbqDk.js.map +0 -1
  136. package/dist/chunks/MarkdownStrong-uU5MzAoJ.js.map +0 -1
  137. package/dist/chunks/MarkdownTable-DmBTg_CR.js.map +0 -1
  138. package/dist/chunks/MarkdownTableCell-eiCJe847.js.map +0 -1
  139. package/dist/chunks/MarkdownTableRow-DuJaPntg.js.map +0 -1
  140. package/dist/chunks/MarkdownTableSection-PFHz-R33.js.map +0 -1
  141. package/dist/chunks/MarkdownTaskItem-BcmKo1lk.js.map +0 -1
  142. package/dist/chunks/MarkdownToc-BdOHF-Yo.js.map +0 -1
  143. package/dist/chunks/MarkdownTocItem-DT9mR3vL.js.map +0 -1
  144. package/dist/chunks/MermaidLiveEditor-W-qf3G-5.js.map +0 -1
  145. package/dist/chunks/VueSyntaxHighlighter-DyLsYMwy.js.map +0 -1
  146. package/dist/chunks/adapters-CMwX_NEI.js.map +0 -1
  147. package/dist/chunks/blank-line-Cb-JBP_5.js.map +0 -1
  148. package/dist/chunks/codemirror-DyphMAEg.js.map +0 -1
  149. package/dist/chunks/config-aRYo2R8_.js.map +0 -1
  150. package/dist/chunks/context-8NfW6fxI.js.map +0 -1
  151. package/dist/chunks/default-DWVS-I_8.js.map +0 -1
  152. package/dist/chunks/diagnostics-CtHoJyiX.js.map +0 -1
  153. package/dist/chunks/export-DZQ3cUry.js.map +0 -1
  154. package/dist/chunks/hast-nodes-C0bX3M5Z.js +0 -35
  155. package/dist/chunks/hast-nodes-C0bX3M5Z.js.map +0 -1
  156. package/dist/chunks/highlightjs-BEh-YwEG.js +0 -6041
  157. package/dist/chunks/highlightjs-BEh-YwEG.js.map +0 -1
  158. package/dist/chunks/identity-jZEhX2d5.js.map +0 -1
  159. package/dist/chunks/labels-BtHiUTQI.js.map +0 -1
  160. package/dist/chunks/lib-BQiWGWpu.js.map +0 -1
  161. package/dist/chunks/lib-LwqA_W3J.js +0 -127
  162. package/dist/chunks/lib-LwqA_W3J.js.map +0 -1
  163. package/dist/chunks/longest-streak-DZE_EqsU.js.map +0 -1
  164. package/dist/chunks/micromark-factory-space-Db040TnW.js.map +0 -1
  165. package/dist/chunks/normalize-CRYv3Wqt.js.map +0 -1
  166. package/dist/chunks/plugin-DqkFHyny.js.map +0 -1
  167. package/dist/chunks/preset-BjaOuJUL.js.map +0 -1
  168. package/dist/chunks/registry-DLjr93-V.js.map +0 -1
  169. package/dist/chunks/render-Cs8iKrgz.js.map +0 -1
  170. package/dist/chunks/runtime-DJMnzjah.js.map +0 -1
  171. package/dist/chunks/security-y4EwUyAs.js.map +0 -1
  172. package/dist/chunks/shared-DNAvZ-UY.js.map +0 -1
  173. package/dist/chunks/space-separated-tokens-CmBjEPdR.js.map +0 -1
  174. package/dist/chunks/url-D2BoivaE.js.map +0 -1
  175. package/dist/chunks/useActiveHeading-BaGVMJnB.js.map +0 -1
  176. package/dist/highlight/shiki.js.map +0 -1
  177. package/dist/html/index.js.map +0 -1
  178. package/dist/index.js.map +0 -1
  179. package/dist/math/index.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { n as e, r as t, t as n } from "../chunks/config-aRYo2R8_.js";
2
2
  import { n as r, r as i, t as a } from "../chunks/context-8NfW6fxI.js";
3
- import { a as o, i as s, n as c, r as l } from "../chunks/render-Cs8iKrgz.js";
3
+ import { a as o, i as s, n as c, r as l } from "../chunks/render-DAqK0w5J.js";
4
4
  import { t as u } from "../chunks/MarkdownCode-B1k9tmW5.js";
5
5
  import { t as d } from "../chunks/MarkdownBlockquote-DVXziX2t.js";
6
6
  import { t as f } from "../chunks/MarkdownBreak-BwCi2Itt.js";
7
- import { t as p } from "../chunks/MarkdownCustomTag-BBdn3-WO.js";
7
+ import { t as p } from "../chunks/MarkdownCustomTag-lZJHsD6f.js";
8
8
  import { t as m } from "../chunks/MarkdownEmphasis-CppivOEu.js";
9
9
  import { t as h } from "../chunks/MarkdownHeading-DaNcP0_6.js";
10
10
  import { t as g } from "../chunks/MarkdownHorizontalRule-QNe_cuUI.js";
@@ -23,16 +23,16 @@ import { t as O } from "../chunks/MarkdownTable-DmBTg_CR.js";
23
23
  import { t as k } from "../chunks/MarkdownTableCell-eiCJe847.js";
24
24
  import { t as A } from "../chunks/MarkdownTableRow-DuJaPntg.js";
25
25
  import { t as j } from "../chunks/MarkdownTableSection-PFHz-R33.js";
26
- import { n as M, t as N } from "../chunks/MarkdownRenderer-DLRRfsdI.js";
26
+ import { n as M, t as N } from "../chunks/MarkdownRenderer-OlkdsvI3.js";
27
27
  import { t as P } from "../chunks/MarkdownContent-BAK6dqo7.js";
28
28
  import { t as F } from "../chunks/MarkdownEmpty-Av5k6bqa.js";
29
29
  import { t as I } from "../chunks/MarkdownError-C0sPs5W0.js";
30
30
  import { t as L } from "../chunks/MarkdownLoading-D-RYtXxf.js";
31
31
  import { t as R } from "../chunks/MarkdownRoot-DEE6iVfh.js";
32
32
  import { t as z } from "../chunks/MarkdownTocItem-DT9mR3vL.js";
33
- import { t as B } from "../chunks/MarkdownToc-BdOHF-Yo.js";
33
+ import { t as B } from "../chunks/MarkdownToc-DHWWoH6t.js";
34
34
  import { t as V } from "../chunks/MarkdownConfigProvider-5N3ylrIu.js";
35
- import { t as H } from "../chunks/VueSyntaxHighlighter-DyLsYMwy.js";
36
- import { t as U } from "../chunks/MermaidLiveEditor-W-qf3G-5.js";
35
+ import { t as H } from "../chunks/VueSyntaxHighlighter-BWpCO-cX.js";
36
+ import { t as U } from "../chunks/MermaidLiveEditor-1TKkI5bp.js";
37
37
  import { t as W } from "../chunks/MarkdownHtml-66lYkvwM.js";
38
38
  export { o as CodeBlock, n as MARKDOWN_CONFIG, d as MarkdownBlockquote, f as MarkdownBreak, M as MarkdownChildren, u as MarkdownCode, V as MarkdownConfigProvider, P as MarkdownContent, p as MarkdownCustomTag, m as MarkdownEmphasis, F as MarkdownEmpty, I as MarkdownError, S as MarkdownFootnoteReference, C as MarkdownFootnotes, h as MarkdownHeading, g as MarkdownHorizontalRule, W as MarkdownHtml, _ as MarkdownImage, v as MarkdownInlineCode, y as MarkdownLink, b as MarkdownList, x as MarkdownListItem, L as MarkdownLoading, s as MarkdownMath, c as MarkdownMermaid, w as MarkdownParagraph, N as MarkdownRenderer, R as MarkdownRoot, T as MarkdownStrikethrough, D as MarkdownStrong, O as MarkdownTable, k as MarkdownTableCell, A as MarkdownTableRow, j as MarkdownTableSection, E as MarkdownTaskItem, B as MarkdownToc, z as MarkdownTocItem, l as MermaidBlock, U as MermaidLiveEditor, a as RENDER_CONTEXT, H as VueSyntaxHighlighter, r as isEmptySlotContent, e as provideMarkdownConfig, t as useMarkdownConfig, i as useRenderContext };
@@ -1,6 +1,38 @@
1
1
  import { Component, VNodeChild } from 'vue';
2
- import { MarkdownDocument, MarkdownNode, MarkdownRegionComponents, TocItem } from '../core/types';
3
- import { RenderContext } from './context';
2
+ import { MarkdownDiagnostic, MarkdownDocument, MarkdownNode, MarkdownRegionComponents, MermaidRenderResult, SearchChangePayload, TocItem } from '../core/types';
3
+ import { CustomTagClickPayload, LinkClickPayload, RenderContext, TaskChangePayload } from './context';
4
+ /**
5
+ * Typed event map for `MarkdownRenderer`. Payloads are library-owned values:
6
+ * document models, diagnostics, primitives, or plain records. They never
7
+ * contain Vue components, VNodes, DOM nodes, or processor objects. Interaction
8
+ * events also carry the originating DOM `MouseEvent` so listeners can cancel
9
+ * the default behavior. Use the map with `defineEmits` in host wrappers when a
10
+ * single typed contract is preferable to learning each event shape separately.
11
+ */
12
+ export interface MarkdownRendererEvents {
13
+ 'update:source': [source: string];
14
+ 'toc-change': [toc: TocItem[]];
15
+ 'link-click': [payload: LinkClickPayload];
16
+ 'custom-tag-click': [payload: CustomTagClickPayload];
17
+ 'task-change': [payload: TaskChangePayload];
18
+ 'search-change': [payload: SearchChangePayload];
19
+ 'math-error': [diagnostic: MarkdownDiagnostic];
20
+ 'render-error': [diagnostic: MarkdownDiagnostic];
21
+ ready: [document: MarkdownDocument];
22
+ }
23
+ /**
24
+ * Typed event map for `MermaidBlock` and `MarkdownMermaid`. Primitive payloads
25
+ * are used for lightweight UI notifications; `rendered` carries the structured
26
+ * render result so a listener can read the sanitized nodes and SVG.
27
+ */
28
+ export interface MermaidBlockEvents {
29
+ rendered: [result: MermaidRenderResult];
30
+ error: [message: string];
31
+ copy: [source: string];
32
+ export: [format: 'png' | 'svg'];
33
+ fullscreen: [active: boolean];
34
+ action: [key: string];
35
+ }
4
36
  export type VueMarkdownTagComponents = Record<string, Component | string | undefined>;
5
37
  export interface MarkdownNodeRenderContext {
6
38
  node: MarkdownNode;
@@ -19,5 +19,7 @@ export interface UseMarkdownDocumentReturn {
19
19
  /** Design tokens contributed by plugins. */
20
20
  resolvedTokens: ComputedRef<Record<string, string>>;
21
21
  refresh: () => Promise<void>;
22
+ /** Clear the published diagnostics without changing the document. */
23
+ clearDiagnostics: () => void;
22
24
  }
23
25
  export declare function useMarkdownDocument(source: MaybeRefOrGetter<string>, options?: MaybeRefOrGetter<MarkdownDocumentOptions>): UseMarkdownDocumentReturn;
@@ -1,6 +1,3 @@
1
- import { RootContent } from 'hast';
2
1
  import { MarkdownNode } from './types';
3
- /** Convert an already-parsed trusted hast subtree into normalized nodes. */
4
- export declare function hastToMarkdownNodes(nodes: readonly RootContent[]): MarkdownNode[];
5
2
  /** Convert trusted engine HTML into normalized nodes. */
6
3
  export declare function htmlToMarkdownNodes(html: string): MarkdownNode[];
@@ -0,0 +1,9 @@
1
+ import { RootContent } from 'hast';
2
+ import { MarkdownNode } from './types';
3
+ /**
4
+ * Convert an already-parsed trusted hast subtree into normalized nodes.
5
+ *
6
+ * This module deliberately has no HTML parser import so adapters that already
7
+ * produce hast (Shiki) do not pull one into their entry.
8
+ */
9
+ export declare function hastToMarkdownNodes(nodes: readonly RootContent[]): MarkdownNode[];
@@ -11,6 +11,16 @@ export interface NormalizeOptions {
11
11
  allowElement?: AllowElement;
12
12
  diagnostics?: MarkdownDiagnostic[];
13
13
  }
14
+ /**
15
+ * Convert custom-tag attributes into the camelCase props hosts receive.
16
+ *
17
+ * HTML parsing lowercases raw attribute names, so a camelCase attribute written
18
+ * in raw HTML (`startLine`) cannot be recovered. Authors should use kebab-case
19
+ * (`start-line`), which normalizes to `startLine`. `data-*` and `aria-*` keep
20
+ * their hyphenated form because they are DOM attributes rather than component
21
+ * props.
22
+ */
23
+ export declare function normalizeCustomTagProps(attrs: Record<string, string>): Record<string, string>;
14
24
  export interface NormalizeResult {
15
25
  nodes: MarkdownNode[];
16
26
  toc: TocItem[];
@@ -64,6 +64,7 @@ export declare const PARTS: {
64
64
  readonly mermaidPending: "mermaid-pending";
65
65
  readonly mermaidError: "mermaid-error";
66
66
  readonly mermaidFallback: "mermaid-fallback";
67
+ readonly mermaidRetry: "mermaid-retry";
67
68
  readonly mermaidFullscreen: "mermaid-fullscreen";
68
69
  readonly editor: "editor";
69
70
  readonly editorPane: "editor-pane";
@@ -1,4 +1,11 @@
1
1
  import { MarkdownSlugger } from './types';
2
+ /**
3
+ * Create the default heading slugger. `github-slugger` maps every space to a
4
+ * hyphen, so `My Heading` would become `my---heading`. Collapsing whitespace
5
+ * before slugging (and hyphen runs after) keeps IDs readable while preserving
6
+ * GitHub-compatible punctuation handling.
7
+ */
8
+ export declare function createDefaultSlugger(): MarkdownSlugger;
2
9
  /**
3
10
  * Ensure a host slugger still produces unique heading IDs. The wrapper keeps
4
11
  * the host's formatting and appends a numeric suffix for duplicates.
@@ -363,6 +363,8 @@ export interface MarkdownPipeline {
363
363
  processSync?(source: string, ctx: PipelineContext): PipelineResult;
364
364
  dispose?(): void;
365
365
  }
366
+ /** Target applied to links whose destination is outside the current base URL. */
367
+ export type MarkdownExternalLinkTarget = '_self' | '_blank';
366
368
  export interface MarkdownDocumentOptions {
367
369
  components?: MarkdownTagComponents;
368
370
  nodeComponents?: MarkdownNodeComponents;
@@ -382,7 +384,7 @@ export interface MarkdownDocumentOptions {
382
384
  allowElement?: AllowElement;
383
385
  urlTransform?: MarkdownUrlTransform;
384
386
  linkTarget?: string;
385
- externalLinkTarget?: string;
387
+ externalLinkTarget?: MarkdownExternalLinkTarget;
386
388
  baseUrl?: string;
387
389
  idPrefix?: string;
388
390
  /** Host-provided search state; search segments are recomputed when set. */
package/dist/headless.js CHANGED
@@ -1,12 +1,12 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./chunks/export-DZQ3cUry.js";
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./chunks/export-BrgMLgUp.js";
2
2
  import { n as p, t as m } from "./chunks/labels-BtHiUTQI.js";
3
3
  import { n as h, t as g } from "./chunks/diagnostics-CtHoJyiX.js";
4
4
  import { n as _, r as v, t as y } from "./chunks/url-D2BoivaE.js";
5
- import { a as b, i as x, n as S, r as C, t as w } from "./chunks/normalize-CRYv3Wqt.js";
6
- import { a as T, d as E, f as D, i as O, n as k, o as A, p as j, r as M, s as N, t as P } from "./chunks/useActiveHeading-BaGVMJnB.js";
7
- import { _ as F, a as I, c as L, d as R, f as z, g as B, h as V, i as H, l as U, n as W, o as G, p as K, r as q, s as J, t as Y, u as X } from "./chunks/registry-DLjr93-V.js";
8
- import { a as Z, i as Q, n as $, r as ee, t as te } from "./chunks/preset-BjaOuJUL.js";
9
- import { a as ne, i as re, n as ie, o as ae, r as oe, t as se } from "./chunks/adapters-CMwX_NEI.js";
10
- import { a as ce, i as le, n as ue, o as de, r as fe, s as pe, t as me } from "./chunks/identity-jZEhX2d5.js";
5
+ import { a as b, i as x, n as S, o as C, r as w, t as T } from "./chunks/normalize-VKfQXZiK.js";
6
+ import { a as E, d as D, f as O, i as k, n as A, o as j, p as M, r as N, s as P, t as F, u as I } from "./chunks/useActiveHeading-CnyGTG1u.js";
7
+ import { _ as L, a as R, c as z, d as B, f as V, g as H, h as U, i as W, l as G, n as K, o as q, p as J, r as Y, s as X, t as Z, u as Q } from "./chunks/registry-B7BfEkuy.js";
8
+ import { a as $, i as ee, n as te, r as ne, t as re } from "./chunks/preset-BjaOuJUL.js";
9
+ import { a as ie, i as ae, n as oe, o as se, r as ce, t as le } from "./chunks/adapters-CMwX_NEI.js";
10
+ import { a as ue, i as de, n as fe, o as pe, r as me, s as he, t as ge } from "./chunks/identity-Bi27FKyx.js";
11
11
  import "./pipeline.js";
12
- export { l as COMPONENT_MANIFESTS, m as DEFAULT_LABELS, u as PARTS, t as PART_NAMES, a as TOKENS, f as TOKEN_NAMES, n as VMD_CLASS_PREFIX, fe as assertPipelineResult, D as buildDocument, W as codePlugin, w as collectCustomTags, te as composePresets, V as countSearchMatches, g as createDiagnostic, me as createMemoKey, pe as createOfficialPipeline, ue as createPipelineIdentity, R as createPluginContext, q as customTagsPlugin, H as defaultPlugins, y as defaultUrlTransform, le as defineMarkdownPipeline, z as defineMarkdownPlugin, $ as defineMarkdownPreset, h as errorMessage, d as exportMarkdownHtml, o as exportMarkdownHtmlSync, S as extractToc, C as filterTocByDepth, P as findElementById, I as frontmatterPlugin, G as fullPlugins, i as getComponentManifest, J as gfmPlugin, _ as isExternalUrl, se as isValidDiagnosticFormatter, ie as isValidHighlighter, oe as isValidMathEngine, re as isValidMermaidRenderer, ne as isValidSlugger, ae as isValidUrlTransform, L as linkPlugin, O as memoClear, T as memoGet, A as memoSet, N as memoSize, Q as mergeMarkdownConfig, Z as mergeMarkdownPreset, x as normalizeHast, r as partAttrs, c as partClass, p as resolveLabel, ce as resolvePipeline, Y as resolvePlugins, ee as resolvePreset, v as resolveUrl, B as searchDocument, U as searchPlugin, F as segmentSearch, X as tocPlugin, k as useActiveHeading, M as useMarkdownDocument, e as validateManifest, s as validateManifestRegistry, de as validatePipeline, K as validatePlugin, b as walkNodes, j as withDerivedDocument, E as withUniqueSlugs };
12
+ export { l as COMPONENT_MANIFESTS, m as DEFAULT_LABELS, u as PARTS, t as PART_NAMES, a as TOKENS, f as TOKEN_NAMES, n as VMD_CLASS_PREFIX, me as assertPipelineResult, O as buildDocument, K as codePlugin, T as collectCustomTags, re as composePresets, U as countSearchMatches, I as createDefaultSlugger, g as createDiagnostic, ge as createMemoKey, he as createOfficialPipeline, fe as createPipelineIdentity, B as createPluginContext, Y as customTagsPlugin, W as defaultPlugins, y as defaultUrlTransform, de as defineMarkdownPipeline, V as defineMarkdownPlugin, te as defineMarkdownPreset, h as errorMessage, d as exportMarkdownHtml, o as exportMarkdownHtmlSync, S as extractToc, w as filterTocByDepth, F as findElementById, R as frontmatterPlugin, q as fullPlugins, i as getComponentManifest, X as gfmPlugin, _ as isExternalUrl, le as isValidDiagnosticFormatter, oe as isValidHighlighter, ce as isValidMathEngine, ae as isValidMermaidRenderer, ie as isValidSlugger, se as isValidUrlTransform, z as linkPlugin, k as memoClear, E as memoGet, j as memoSet, P as memoSize, ee as mergeMarkdownConfig, $ as mergeMarkdownPreset, x as normalizeCustomTagProps, b as normalizeHast, r as partAttrs, c as partClass, p as resolveLabel, ue as resolvePipeline, Z as resolvePlugins, ne as resolvePreset, v as resolveUrl, H as searchDocument, G as searchPlugin, L as segmentSearch, Q as tocPlugin, A as useActiveHeading, N as useMarkdownDocument, e as validateManifest, s as validateManifestRegistry, pe as validatePipeline, J as validatePlugin, C as walkNodes, M as withDerivedDocument, D as withUniqueSlugs };
@@ -0,0 +1,8 @@
1
+ import { MarkdownNode } from '../core/types';
2
+ import { hastToMarkdownNodes } from '../core/hast-to-nodes';
3
+ /**
4
+ * Convert an already-parsed hast subtree into normalized nodes. This path has
5
+ * no HTML parser dependency, which keeps hast-first adapters such as Shiki
6
+ * parser-free.
7
+ */
8
+ export declare function highlightedNodesFromHast(nodes: Parameters<typeof hastToMarkdownNodes>[0]): MarkdownNode[];
@@ -1,3 +1,4 @@
1
1
  export { highlightjs } from './highlightjs';
2
2
  export { default } from './highlightjs';
3
- export { clearHighlightCache, highlightedNodesFromHast, highlightedNodesFromHtml, plaintextHighlight, runHighlighter, splitHighlightLines, } from './shared';
3
+ export { highlightedNodesFromHast } from './convert-hast';
4
+ export { clearHighlightCache, plaintextHighlight, runHighlighter, splitHighlightLines, } from './shared';
@@ -1,3 +1,4 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "../chunks/shared-DNAvZ-UY.js";
2
- import { t as o } from "../chunks/highlightjs-BEh-YwEG.js";
3
- export { a as clearHighlightCache, o as default, o as highlightjs, n as highlightedNodesFromHast, i as highlightedNodesFromHtml, t as plaintextHighlight, e as runHighlighter, r as splitHighlightLines };
1
+ import { i as e, n as t, r as n, t as r } from "../chunks/shared-NjFDPmkb.js";
2
+ import { t as i } from "../chunks/highlightjs-BxJFpKS1.js";
3
+ import { t as a } from "../chunks/convert-hast-C4Rg2ZuF.js";
4
+ export { r as clearHighlightCache, i as default, i as highlightjs, a as highlightedNodesFromHast, t as plaintextHighlight, n as runHighlighter, e as splitHighlightLines };
@@ -1,10 +1,5 @@
1
1
  import { HighlightOptions, HighlightResult, MarkdownHighlighter, MarkdownNode } from '../core/types';
2
- import { hastToMarkdownNodes } from '../core/hast-nodes';
3
2
  export declare function plaintextHighlight(code: string, language?: string): HighlightResult;
4
- /** Convert trusted engine HTML into normalized nodes. */
5
- export declare function highlightedNodesFromHtml(html: string): MarkdownNode[];
6
- /** Convert an already-parsed hast subtree into normalized nodes. */
7
- export declare function highlightedNodesFromHast(nodes: Parameters<typeof hastToMarkdownNodes>[0]): MarkdownNode[];
8
3
  export declare function cacheKey(highlighter: MarkdownHighlighter, code: string, language: string, options: HighlightOptions): string;
9
4
  export declare function clearHighlightCache(): void;
10
5
  /**
@@ -1,6 +1,7 @@
1
1
  import { t as e } from "../chunks/objectSpread2-CtBNx0TF.js";
2
2
  import { t } from "../chunks/asyncToGenerator-ChigusFD.js";
3
- import { i as n, n as r } from "../chunks/shared-DNAvZ-UY.js";
3
+ import { n } from "../chunks/shared-NjFDPmkb.js";
4
+ import { t as r } from "../chunks/convert-hast-C4Rg2ZuF.js";
4
5
  import { createHighlighter as i } from "shiki";
5
6
  // src/highlight/shiki.ts
6
7
  var a = {
@@ -72,5 +73,3 @@ var f = {
72
73
  }
73
74
  };
74
75
  export { f as default, f as shiki };
75
-
76
- //# sourceMappingURL=shiki.js.map
@@ -9,5 +9,3 @@ function t(t = {}) {
9
9
  };
10
10
  }
11
11
  export { t as htmlPlugin };
12
-
13
- //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const version = "1.0.0";
1
+ export declare const version = "1.0.1";
2
2
  export * from './core/types';
3
3
  export * from './core/parts';
4
4
  export * from './core/labels';
package/dist/index.js CHANGED
@@ -1,55 +1,53 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./chunks/export-DZQ3cUry.js";
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./chunks/export-BrgMLgUp.js";
2
2
  import { n as p, t as m } from "./chunks/labels-BtHiUTQI.js";
3
3
  import { n as h, t as g } from "./chunks/diagnostics-CtHoJyiX.js";
4
4
  import { n as _, r as v, t as y } from "./chunks/url-D2BoivaE.js";
5
- import { a as b, i as x, n as S, r as C, t as w } from "./chunks/normalize-CRYv3Wqt.js";
6
- import { a as T, d as E, f as D, i as O, n as k, o as A, p as j, r as M, s as N, t as P } from "./chunks/useActiveHeading-BaGVMJnB.js";
7
- import { _ as F, a as I, c as L, d as R, f as z, g as B, h as V, i as H, l as U, n as W, o as G, p as K, r as q, s as J, t as Y, u as X } from "./chunks/registry-DLjr93-V.js";
8
- import { a as Z, i as Q, n as $, r as ee, t as te } from "./chunks/preset-BjaOuJUL.js";
9
- import { a as ne, i as re, n as ie, o as ae, r as oe, t as se } from "./chunks/adapters-CMwX_NEI.js";
10
- import { a as ce, i as le, n as ue, o as de, r as fe, s as pe, t as me } from "./chunks/identity-jZEhX2d5.js";
5
+ import { a as b, i as x, n as S, o as C, r as w, t as T } from "./chunks/normalize-VKfQXZiK.js";
6
+ import { a as E, d as D, f as O, i as k, n as A, o as j, p as M, r as N, s as P, t as F, u as I } from "./chunks/useActiveHeading-CnyGTG1u.js";
7
+ import { _ as L, a as R, c as z, d as B, f as V, g as H, h as U, i as W, l as G, n as K, o as q, p as J, r as Y, s as X, t as Z, u as Q } from "./chunks/registry-B7BfEkuy.js";
8
+ import { a as $, i as ee, n as te, r as ne, t as re } from "./chunks/preset-BjaOuJUL.js";
9
+ import { a as ie, i as ae, n as oe, o as se, r as ce, t as le } from "./chunks/adapters-CMwX_NEI.js";
10
+ import { a as ue, i as de, n as fe, o as pe, r as me, s as he, t as ge } from "./chunks/identity-Bi27FKyx.js";
11
11
  import "./pipeline.js";
12
- import { t as he } from "./chunks/plugin-DqkFHyny.js";
13
- import { n as ge, r as _e, t as ve } from "./chunks/config-aRYo2R8_.js";
14
- import { n as ye, r as be, t as xe } from "./chunks/context-8NfW6fxI.js";
15
- import { a as Se, i as Ce, n as we, r as Te } from "./chunks/render-Cs8iKrgz.js";
16
- import { t as Ee } from "./chunks/MarkdownCode-B1k9tmW5.js";
17
- import { t as De } from "./chunks/MarkdownBlockquote-DVXziX2t.js";
18
- import { t as Oe } from "./chunks/MarkdownBreak-BwCi2Itt.js";
19
- import { t as ke } from "./chunks/MarkdownCustomTag-BBdn3-WO.js";
20
- import { t as Ae } from "./chunks/MarkdownEmphasis-CppivOEu.js";
21
- import { t as je } from "./chunks/MarkdownHeading-DaNcP0_6.js";
22
- import { t as Me } from "./chunks/MarkdownHorizontalRule-QNe_cuUI.js";
23
- import { t as Ne } from "./chunks/MarkdownImage-BRy76svs.js";
24
- import { t as Pe } from "./chunks/MarkdownInlineCode-MXZYFwex.js";
25
- import { t as Fe } from "./chunks/MarkdownLink-Dbx3NwgV.js";
26
- import { t as Ie } from "./chunks/MarkdownList-BJ-_C71k.js";
27
- import { t as Le } from "./chunks/MarkdownListItem-Z1EHIY26.js";
28
- import { t as Re } from "./chunks/MarkdownFootnoteReference-Dy3Khwyj.js";
29
- import { t as ze } from "./chunks/MarkdownFootnotes-BRPzkbXv.js";
30
- import { t as Be } from "./chunks/MarkdownParagraph-BxLSmSaG.js";
31
- import { t as Ve } from "./chunks/MarkdownStrikethrough-CblvbqDk.js";
32
- import { t as He } from "./chunks/MarkdownTaskItem-BcmKo1lk.js";
33
- import { t as Ue } from "./chunks/MarkdownStrong-uU5MzAoJ.js";
34
- import { t as We } from "./chunks/MarkdownTable-DmBTg_CR.js";
35
- import { t as Ge } from "./chunks/MarkdownTableCell-eiCJe847.js";
36
- import { t as Ke } from "./chunks/MarkdownTableRow-DuJaPntg.js";
37
- import { t as qe } from "./chunks/MarkdownTableSection-PFHz-R33.js";
38
- import { n as Je, t as Ye } from "./chunks/MarkdownRenderer-DLRRfsdI.js";
39
- import { t as Xe } from "./chunks/MarkdownContent-BAK6dqo7.js";
40
- import { t as Ze } from "./chunks/MarkdownEmpty-Av5k6bqa.js";
41
- import { t as Qe } from "./chunks/MarkdownError-C0sPs5W0.js";
42
- import { t as $e } from "./chunks/MarkdownLoading-D-RYtXxf.js";
43
- import { t as et } from "./chunks/MarkdownRoot-DEE6iVfh.js";
44
- import { t as tt } from "./chunks/MarkdownTocItem-DT9mR3vL.js";
45
- import { t as nt } from "./chunks/MarkdownToc-BdOHF-Yo.js";
46
- import { t as rt } from "./chunks/MarkdownConfigProvider-5N3ylrIu.js";
47
- import { t as it } from "./chunks/VueSyntaxHighlighter-DyLsYMwy.js";
48
- import { t as at } from "./chunks/MermaidLiveEditor-W-qf3G-5.js";
49
- import { t as ot } from "./chunks/MarkdownHtml-66lYkvwM.js";
12
+ import { t as _e } from "./chunks/plugin-YWo5uqTh.js";
13
+ import { n as ve, r as ye, t as be } from "./chunks/config-aRYo2R8_.js";
14
+ import { n as xe, r as Se, t as Ce } from "./chunks/context-8NfW6fxI.js";
15
+ import { a as we, i as Te, n as Ee, r as De } from "./chunks/render-DAqK0w5J.js";
16
+ import { t as Oe } from "./chunks/MarkdownCode-B1k9tmW5.js";
17
+ import { t as ke } from "./chunks/MarkdownBlockquote-DVXziX2t.js";
18
+ import { t as Ae } from "./chunks/MarkdownBreak-BwCi2Itt.js";
19
+ import { t as je } from "./chunks/MarkdownCustomTag-lZJHsD6f.js";
20
+ import { t as Me } from "./chunks/MarkdownEmphasis-CppivOEu.js";
21
+ import { t as Ne } from "./chunks/MarkdownHeading-DaNcP0_6.js";
22
+ import { t as Pe } from "./chunks/MarkdownHorizontalRule-QNe_cuUI.js";
23
+ import { t as Fe } from "./chunks/MarkdownImage-BRy76svs.js";
24
+ import { t as Ie } from "./chunks/MarkdownInlineCode-MXZYFwex.js";
25
+ import { t as Le } from "./chunks/MarkdownLink-Dbx3NwgV.js";
26
+ import { t as Re } from "./chunks/MarkdownList-BJ-_C71k.js";
27
+ import { t as ze } from "./chunks/MarkdownListItem-Z1EHIY26.js";
28
+ import { t as Be } from "./chunks/MarkdownFootnoteReference-Dy3Khwyj.js";
29
+ import { t as Ve } from "./chunks/MarkdownFootnotes-BRPzkbXv.js";
30
+ import { t as He } from "./chunks/MarkdownParagraph-BxLSmSaG.js";
31
+ import { t as Ue } from "./chunks/MarkdownStrikethrough-CblvbqDk.js";
32
+ import { t as We } from "./chunks/MarkdownTaskItem-BcmKo1lk.js";
33
+ import { t as Ge } from "./chunks/MarkdownStrong-uU5MzAoJ.js";
34
+ import { t as Ke } from "./chunks/MarkdownTable-DmBTg_CR.js";
35
+ import { t as qe } from "./chunks/MarkdownTableCell-eiCJe847.js";
36
+ import { t as Je } from "./chunks/MarkdownTableRow-DuJaPntg.js";
37
+ import { t as Ye } from "./chunks/MarkdownTableSection-PFHz-R33.js";
38
+ import { n as Xe, t as Ze } from "./chunks/MarkdownRenderer-OlkdsvI3.js";
39
+ import { t as Qe } from "./chunks/MarkdownContent-BAK6dqo7.js";
40
+ import { t as $e } from "./chunks/MarkdownEmpty-Av5k6bqa.js";
41
+ import { t as et } from "./chunks/MarkdownError-C0sPs5W0.js";
42
+ import { t as tt } from "./chunks/MarkdownLoading-D-RYtXxf.js";
43
+ import { t as nt } from "./chunks/MarkdownRoot-DEE6iVfh.js";
44
+ import { t as rt } from "./chunks/MarkdownTocItem-DT9mR3vL.js";
45
+ import { t as it } from "./chunks/MarkdownToc-DHWWoH6t.js";
46
+ import { t as at } from "./chunks/MarkdownConfigProvider-5N3ylrIu.js";
47
+ import { t as ot } from "./chunks/VueSyntaxHighlighter-BWpCO-cX.js";
48
+ import { t as st } from "./chunks/MermaidLiveEditor-1TKkI5bp.js";
49
+ import { t as ct } from "./chunks/MarkdownHtml-66lYkvwM.js";
50
50
  import "./components/index.js";
51
51
  // src/index.ts
52
- var st = "1.0.0";
53
- export { l as COMPONENT_MANIFESTS, Se as CodeBlock, m as DEFAULT_LABELS, ve as MARKDOWN_CONFIG, De as MarkdownBlockquote, Oe as MarkdownBreak, Je as MarkdownChildren, Ee as MarkdownCode, rt as MarkdownConfigProvider, Xe as MarkdownContent, ke as MarkdownCustomTag, Ae as MarkdownEmphasis, Ze as MarkdownEmpty, Qe as MarkdownError, Re as MarkdownFootnoteReference, ze as MarkdownFootnotes, je as MarkdownHeading, Me as MarkdownHorizontalRule, ot as MarkdownHtml, Ne as MarkdownImage, Pe as MarkdownInlineCode, Fe as MarkdownLink, Ie as MarkdownList, Le as MarkdownListItem, $e as MarkdownLoading, Ce as MarkdownMath, we as MarkdownMermaid, Be as MarkdownParagraph, Ye as MarkdownRenderer, et as MarkdownRoot, Ve as MarkdownStrikethrough, Ue as MarkdownStrong, We as MarkdownTable, Ge as MarkdownTableCell, Ke as MarkdownTableRow, qe as MarkdownTableSection, He as MarkdownTaskItem, nt as MarkdownToc, tt as MarkdownTocItem, Te as MermaidBlock, at as MermaidLiveEditor, u as PARTS, t as PART_NAMES, xe as RENDER_CONTEXT, a as TOKENS, f as TOKEN_NAMES, n as VMD_CLASS_PREFIX, it as VueSyntaxHighlighter, fe as assertPipelineResult, D as buildDocument, W as codePlugin, w as collectCustomTags, te as composePresets, V as countSearchMatches, g as createDiagnostic, me as createMemoKey, pe as createOfficialPipeline, ue as createPipelineIdentity, R as createPluginContext, q as customTagsPlugin, H as defaultPlugins, y as defaultUrlTransform, le as defineMarkdownPipeline, z as defineMarkdownPlugin, $ as defineMarkdownPreset, h as errorMessage, d as exportMarkdownHtml, o as exportMarkdownHtmlSync, S as extractToc, C as filterTocByDepth, P as findElementById, I as frontmatterPlugin, G as fullPlugins, i as getComponentManifest, J as gfmPlugin, ye as isEmptySlotContent, _ as isExternalUrl, se as isValidDiagnosticFormatter, ie as isValidHighlighter, oe as isValidMathEngine, re as isValidMermaidRenderer, ne as isValidSlugger, ae as isValidUrlTransform, L as linkPlugin, O as memoClear, T as memoGet, A as memoSet, N as memoSize, Q as mergeMarkdownConfig, Z as mergeMarkdownPreset, he as mermaidPlugin, x as normalizeHast, r as partAttrs, c as partClass, ge as provideMarkdownConfig, p as resolveLabel, ce as resolvePipeline, Y as resolvePlugins, ee as resolvePreset, v as resolveUrl, B as searchDocument, U as searchPlugin, F as segmentSearch, X as tocPlugin, k as useActiveHeading, _e as useMarkdownConfig, M as useMarkdownDocument, be as useRenderContext, e as validateManifest, s as validateManifestRegistry, de as validatePipeline, K as validatePlugin, st as version, b as walkNodes, j as withDerivedDocument, E as withUniqueSlugs };
54
-
55
- //# sourceMappingURL=index.js.map
52
+ var lt = "1.0.1";
53
+ export { l as COMPONENT_MANIFESTS, we as CodeBlock, m as DEFAULT_LABELS, be as MARKDOWN_CONFIG, ke as MarkdownBlockquote, Ae as MarkdownBreak, Xe as MarkdownChildren, Oe as MarkdownCode, at as MarkdownConfigProvider, Qe as MarkdownContent, je as MarkdownCustomTag, Me as MarkdownEmphasis, $e as MarkdownEmpty, et as MarkdownError, Be as MarkdownFootnoteReference, Ve as MarkdownFootnotes, Ne as MarkdownHeading, Pe as MarkdownHorizontalRule, ct as MarkdownHtml, Fe as MarkdownImage, Ie as MarkdownInlineCode, Le as MarkdownLink, Re as MarkdownList, ze as MarkdownListItem, tt as MarkdownLoading, Te as MarkdownMath, Ee as MarkdownMermaid, He as MarkdownParagraph, Ze as MarkdownRenderer, nt as MarkdownRoot, Ue as MarkdownStrikethrough, Ge as MarkdownStrong, Ke as MarkdownTable, qe as MarkdownTableCell, Je as MarkdownTableRow, Ye as MarkdownTableSection, We as MarkdownTaskItem, it as MarkdownToc, rt as MarkdownTocItem, De as MermaidBlock, st as MermaidLiveEditor, u as PARTS, t as PART_NAMES, Ce as RENDER_CONTEXT, a as TOKENS, f as TOKEN_NAMES, n as VMD_CLASS_PREFIX, ot as VueSyntaxHighlighter, me as assertPipelineResult, O as buildDocument, K as codePlugin, T as collectCustomTags, re as composePresets, U as countSearchMatches, I as createDefaultSlugger, g as createDiagnostic, ge as createMemoKey, he as createOfficialPipeline, fe as createPipelineIdentity, B as createPluginContext, Y as customTagsPlugin, W as defaultPlugins, y as defaultUrlTransform, de as defineMarkdownPipeline, V as defineMarkdownPlugin, te as defineMarkdownPreset, h as errorMessage, d as exportMarkdownHtml, o as exportMarkdownHtmlSync, S as extractToc, w as filterTocByDepth, F as findElementById, R as frontmatterPlugin, q as fullPlugins, i as getComponentManifest, X as gfmPlugin, xe as isEmptySlotContent, _ as isExternalUrl, le as isValidDiagnosticFormatter, oe as isValidHighlighter, ce as isValidMathEngine, ae as isValidMermaidRenderer, ie as isValidSlugger, se as isValidUrlTransform, z as linkPlugin, k as memoClear, E as memoGet, j as memoSet, P as memoSize, ee as mergeMarkdownConfig, $ as mergeMarkdownPreset, _e as mermaidPlugin, x as normalizeCustomTagProps, b as normalizeHast, r as partAttrs, c as partClass, ve as provideMarkdownConfig, p as resolveLabel, ue as resolvePipeline, Z as resolvePlugins, ne as resolvePreset, v as resolveUrl, H as searchDocument, G as searchPlugin, L as segmentSearch, Q as tocPlugin, A as useActiveHeading, ye as useMarkdownConfig, N as useMarkdownDocument, Se as useRenderContext, e as validateManifest, s as validateManifestRegistry, pe as validatePipeline, J as validatePlugin, lt as version, C as walkNodes, M as withDerivedDocument, D as withUniqueSlugs };
@@ -1,9 +1,9 @@
1
- import "../chunks/default-DWVS-I_8.js";
2
1
  import { t as e } from "../chunks/objectSpread2-CtBNx0TF.js";
3
- import { a as t, i as n, m as r, o as i, r as a, t as o } from "../chunks/micromark-factory-space-Db040TnW.js";
2
+ import "../chunks/default-ZQ5aHh-N.js";
3
+ import { a as t, i as n, m as r, o as i, r as a, t as o } from "../chunks/micromark-factory-space-CpXAnYUY.js";
4
4
  import { t as s } from "../chunks/longest-streak-DZE_EqsU.js";
5
- import { t as c } from "../chunks/lib-BQiWGWpu.js";
6
- import { n as l } from "../chunks/hast-nodes-C0bX3M5Z.js";
5
+ import { t as c } from "../chunks/hast-to-nodes-DuZsi4XT.js";
6
+ import { n as l } from "../chunks/hast-util-from-html-D3e_iQ89.js";
7
7
  import u from "katex";
8
8
  // node_modules/mdast-util-math/lib/index.js
9
9
  function d() {
@@ -270,7 +270,7 @@ function ee(e) {
270
270
  i.push(b(n)), a.push(d()), o.push(f(n));
271
271
  }
272
272
  // node_modules/unist-util-remove-position/lib/index.js
273
- function te(e, t) {
273
+ function S(e, t) {
274
274
  let n = (t || {}).force || !1;
275
275
  a(e, r);
276
276
  function r(e) {
@@ -278,9 +278,9 @@ function te(e, t) {
278
278
  }
279
279
  }
280
280
  // node_modules/hast-util-from-html-isomorphic/lib/index.js
281
- function S(e, t) {
282
- let n = c(e, t);
283
- return te(n, { force: !0 }), delete n.data, n;
281
+ function te(e, t) {
282
+ let n = l(e, t);
283
+ return S(n, { force: !0 }), delete n.data, n;
284
284
  }
285
285
  // node_modules/unist-util-find-after/lib/index.js
286
286
  var C = (function(e, t, n) {
@@ -474,7 +474,7 @@ function G(r) {
474
474
  }];
475
475
  }
476
476
  }
477
- typeof h == "string" && (h = S(h, { fragment: !0 }).children);
477
+ typeof h == "string" && (h = te(h, { fragment: !0 }).children);
478
478
  let g = f.children.indexOf(p);
479
479
  return f.children.splice(g, 1, ...h), n;
480
480
  });
@@ -541,9 +541,13 @@ function le(e = {}) {
541
541
  transformSource: (t) => ce(t, e)
542
542
  };
543
543
  }
544
+ // src/core/hast-nodes.ts
545
+ function ue(e) {
546
+ return c(l(e, { fragment: !0 }).children);
547
+ }
544
548
  // src/math/katex.ts
545
- var Q = /* @__PURE__ */ new Map(), ue = 256;
546
- function de(t) {
549
+ var Q = /* @__PURE__ */ new Map(), de = 256;
550
+ function fe(t) {
547
551
  return e({
548
552
  displayMode: !!t.displayMode,
549
553
  throwOnError: !1,
@@ -557,10 +561,10 @@ var $ = {
557
561
  render(e, t) {
558
562
  let n = `${e}\u001e${JSON.stringify(t)}`, r = Q.get(n);
559
563
  if (r) return r;
560
- let i = de(t);
564
+ let i = fe(t);
561
565
  try {
562
- let t = u.renderToString(e, i), r = { nodes: l(t) };
563
- if (t.includes("katex-error") && (r.error = "Invalid TeX expression."), Q.set(n, r), Q.size > ue) {
566
+ let t = u.renderToString(e, i), r = { nodes: ue(t) };
567
+ if (t.includes("katex-error") && (r.error = "Invalid TeX expression."), Q.set(n, r), Q.size > de) {
564
568
  let e = Q.keys().next().value;
565
569
  e !== void 0 && Q.delete(e);
566
570
  }
@@ -579,5 +583,3 @@ var $ = {
579
583
  }
580
584
  };
581
585
  export { $ as default, $ as katexEngine, le as mathPlugin };
582
-
583
- //# sourceMappingURL=index.js.map
@@ -1,5 +1,6 @@
1
1
  export { renderMermaid, resetMermaidRuntime } from './runtime';
2
- export { sanitizeSvg, MERMAID_ALLOWED_TAGS } from './sanitize';
2
+ export { sanitizeSvg } from './sanitize-svg';
3
+ export { MERMAID_ALLOWED_TAGS } from './sanitize';
3
4
  export { mermaidPlugin } from './plugin';
4
5
  export type { MermaidPluginOptions } from './plugin';
5
6
  export { default } from './runtime';
@@ -1,3 +1,8 @@
1
- import { t as e } from "../chunks/plugin-DqkFHyny.js";
2
- import { i as t, n, o as r, r as i } from "../chunks/runtime-DJMnzjah.js";
3
- export { t as MERMAID_ALLOWED_TAGS, n as default, n as renderMermaid, e as mermaidPlugin, i as resetMermaidRuntime, r as sanitizeSvg };
1
+ import { t as e } from "../chunks/plugin-YWo5uqTh.js";
2
+ import { a as t, n, o as r, r as i } from "../chunks/runtime-D95F41zG.js";
3
+ import { n as a } from "../chunks/hast-util-from-html-D3e_iQ89.js";
4
+ // src/mermaid/sanitize-svg.ts
5
+ function o(e) {
6
+ return r(a(e, { fragment: !0 }).children);
7
+ }
8
+ export { t as MERMAID_ALLOWED_TAGS, n as default, n as renderMermaid, e as mermaidPlugin, i as resetMermaidRuntime, o as sanitizeSvg };
@@ -3,6 +3,9 @@ export interface MermaidPluginOptions {
3
3
  /**
4
4
  * Fence languages that become Mermaid nodes. Defaults to `mermaid` and
5
5
  * `mmd`. Language matching is case-insensitive.
6
+ *
7
+ * This is the only option the plugin reads. Configure the Mermaid renderer
8
+ * and theme on `MarkdownRenderer` through `mermaidRenderer` and `theme`.
6
9
  */
7
10
  languages?: string | string[];
8
11
  }
@@ -5,7 +5,9 @@ export declare function classifyMermaidError(error: unknown): string;
5
5
  export declare function createMermaidRenderId(): string;
6
6
  /**
7
7
  * Render one diagram through a single lazy Mermaid instance. Renders are
8
- * serialized so Mermaid's global state cannot interleave.
8
+ * serialized so Mermaid's global configuration cannot be changed while another
9
+ * diagram is rendering. The configuration key is checked inside that queue, so
10
+ * blocks with different themes cannot reuse a stale initialization.
9
11
  */
10
12
  export declare function renderMermaid(source: string, options?: MermaidRenderOptions): Promise<MermaidRenderResult>;
11
13
  export declare function resetMermaidRuntime(): void;
@@ -0,0 +1,10 @@
1
+ import { MarkdownNode } from '../core/types';
2
+ /**
3
+ * Sanitize SVG markup without pulling the HTML parser into the initial graph.
4
+ *
5
+ * The renderer and the default Mermaid runtime only need this after a diagram
6
+ * has actually rendered, so the parser can stay in a lazy chunk. The
7
+ * synchronous `sanitizeSvg` export remains available from the Mermaid entry for
8
+ * hosts that need it during their own render pass.
9
+ */
10
+ export declare function sanitizeSvgAsync(svg: string): Promise<MarkdownNode[]>;
@@ -0,0 +1,3 @@
1
+ import { MarkdownNode } from '../core/types';
2
+ /** Sanitize Mermaid SVG output into normalized nodes. */
3
+ export declare function sanitizeSvg(svg: string): MarkdownNode[];
@@ -1,7 +1,11 @@
1
+ import { RootContent } from 'hast';
1
2
  import { MarkdownNode } from '../core/types';
2
3
  declare const ALLOWED_TAGS: Set<string>;
3
- /** Sanitize Mermaid SVG output into normalized nodes. */
4
- export declare function sanitizeSvg(svg: string): MarkdownNode[];
4
+ /**
5
+ * Sanitize parsed SVG markup into normalized nodes. Prefer the root SVG
6
+ * element so the stylesheet scope is derived from its id.
7
+ */
8
+ export declare function sanitizeHastNodes(nodes: readonly RootContent[]): MarkdownNode[];
5
9
  /**
6
10
  * Sanitize nodes returned by an injected Mermaid renderer. Renderer output is
7
11
  * treated as untrusted even when it looks like normalized SVG nodes. A
@@ -1,10 +1,10 @@
1
1
  import { n as e, r as t, t as n } from "./chunks/config-aRYo2R8_.js";
2
2
  import { n as r, r as i, t as a } from "./chunks/context-8NfW6fxI.js";
3
- import { a as o, i as s, n as c, r as l } from "./chunks/render-Cs8iKrgz.js";
3
+ import { a as o, i as s, n as c, r as l } from "./chunks/render-DAqK0w5J.js";
4
4
  import { t as u } from "./chunks/MarkdownCode-B1k9tmW5.js";
5
5
  import { t as d } from "./chunks/MarkdownBlockquote-DVXziX2t.js";
6
6
  import { t as f } from "./chunks/MarkdownBreak-BwCi2Itt.js";
7
- import { t as p } from "./chunks/MarkdownCustomTag-BBdn3-WO.js";
7
+ import { t as p } from "./chunks/MarkdownCustomTag-lZJHsD6f.js";
8
8
  import { t as m } from "./chunks/MarkdownEmphasis-CppivOEu.js";
9
9
  import { t as h } from "./chunks/MarkdownHeading-DaNcP0_6.js";
10
10
  import { t as g } from "./chunks/MarkdownHorizontalRule-QNe_cuUI.js";
@@ -23,17 +23,17 @@ import { t as O } from "./chunks/MarkdownTable-DmBTg_CR.js";
23
23
  import { t as k } from "./chunks/MarkdownTableCell-eiCJe847.js";
24
24
  import { t as A } from "./chunks/MarkdownTableRow-DuJaPntg.js";
25
25
  import { t as j } from "./chunks/MarkdownTableSection-PFHz-R33.js";
26
- import { n as M, t as N } from "./chunks/MarkdownRenderer-DLRRfsdI.js";
26
+ import { n as M, t as N } from "./chunks/MarkdownRenderer-OlkdsvI3.js";
27
27
  import { t as P } from "./chunks/MarkdownContent-BAK6dqo7.js";
28
28
  import { t as F } from "./chunks/MarkdownEmpty-Av5k6bqa.js";
29
29
  import { t as I } from "./chunks/MarkdownError-C0sPs5W0.js";
30
30
  import { t as L } from "./chunks/MarkdownLoading-D-RYtXxf.js";
31
31
  import { t as R } from "./chunks/MarkdownRoot-DEE6iVfh.js";
32
32
  import { t as z } from "./chunks/MarkdownTocItem-DT9mR3vL.js";
33
- import { t as B } from "./chunks/MarkdownToc-BdOHF-Yo.js";
33
+ import { t as B } from "./chunks/MarkdownToc-DHWWoH6t.js";
34
34
  import { t as V } from "./chunks/MarkdownConfigProvider-5N3ylrIu.js";
35
- import { t as H } from "./chunks/VueSyntaxHighlighter-DyLsYMwy.js";
36
- import { t as U } from "./chunks/MermaidLiveEditor-W-qf3G-5.js";
35
+ import { t as H } from "./chunks/VueSyntaxHighlighter-BWpCO-cX.js";
36
+ import { t as U } from "./chunks/MermaidLiveEditor-1TKkI5bp.js";
37
37
  import { t as W } from "./chunks/MarkdownHtml-66lYkvwM.js";
38
38
  import "./components/index.js";
39
39
  export { o as CodeBlock, n as MARKDOWN_CONFIG, d as MarkdownBlockquote, f as MarkdownBreak, M as MarkdownChildren, u as MarkdownCode, V as MarkdownConfigProvider, P as MarkdownContent, p as MarkdownCustomTag, m as MarkdownEmphasis, F as MarkdownEmpty, I as MarkdownError, S as MarkdownFootnoteReference, C as MarkdownFootnotes, h as MarkdownHeading, g as MarkdownHorizontalRule, W as MarkdownHtml, _ as MarkdownImage, v as MarkdownInlineCode, y as MarkdownLink, b as MarkdownList, x as MarkdownListItem, L as MarkdownLoading, s as MarkdownMath, c as MarkdownMermaid, w as MarkdownParagraph, N as MarkdownRenderer, R as MarkdownRoot, T as MarkdownStrikethrough, D as MarkdownStrong, O as MarkdownTable, k as MarkdownTableCell, A as MarkdownTableRow, j as MarkdownTableSection, E as MarkdownTaskItem, B as MarkdownToc, z as MarkdownTocItem, l as MermaidBlock, U as MermaidLiveEditor, a as RENDER_CONTEXT, H as VueSyntaxHighlighter, r as isEmptySlotContent, e as provideMarkdownConfig, t as useMarkdownConfig, i as useRenderContext };
package/dist/pipeline.js CHANGED
@@ -1 +1 @@
1
- export { r as assertPipelineResult, t as createMemoKey, s as createOfficialPipeline, n as createPipelineIdentity, i as defineMarkdownPipeline, a as resolvePipeline, o as validatePipeline } from "./chunks/identity-jZEhX2d5.js";
1
+ export { r as assertPipelineResult, t as createMemoKey, s as createOfficialPipeline, n as createPipelineIdentity, i as defineMarkdownPipeline, a as resolvePipeline, o as validatePipeline } from "./chunks/identity-Bi27FKyx.js";
package/dist/plugins.js CHANGED
@@ -1 +1 @@
1
- export { n as codePlugin, d as createPluginContext, r as customTagsPlugin, i as defaultPlugins, f as defineMarkdownPlugin, a as frontmatterPlugin, o as fullPlugins, s as gfmPlugin, c as linkPlugin, t as resolvePlugins, l as searchPlugin, u as tocPlugin, p as validatePlugin } from "./chunks/registry-DLjr93-V.js";
1
+ export { n as codePlugin, d as createPluginContext, r as customTagsPlugin, i as defaultPlugins, f as defineMarkdownPlugin, a as frontmatterPlugin, o as fullPlugins, s as gfmPlugin, c as linkPlugin, t as resolvePlugins, l as searchPlugin, u as tocPlugin, p as validatePlugin } from "./chunks/registry-B7BfEkuy.js";