@cocoar/vue-markdown 2.13.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { MarkdownDocument } from '@cocoar/vue-markdown-core';
2
2
  import { MarkdownViewerRenderers } from './registry';
3
3
  import { EmbedRegistry } from './embeds';
4
+ import { FenceRegistry } from './fences';
4
5
  export interface CoarMarkdownProps {
5
6
  /** The parsed markdown document to render. */
6
7
  doc: MarkdownDocument;
@@ -17,6 +18,14 @@ export interface CoarMarkdownProps {
17
18
  * default can also be set with `app.provide(MARKDOWN_EMBEDS_KEY, ...)`.
18
19
  */
19
20
  embeds?: EmbedRegistry;
21
+ /**
22
+ * Fenced-code-block renderer registry: maps a fence language (e.g. `mermaid`)
23
+ * to a Vue component that renders it richly instead of as a plain code block.
24
+ * Provided down to `DefaultCodeBlock` via inject; an unregistered language
25
+ * still renders as a normal code block. An app-wide default can also be set
26
+ * with `app.provide(MARKDOWN_FENCE_RENDERERS_KEY, ...)`.
27
+ */
28
+ fenceRenderers?: FenceRegistry;
20
29
  }
21
30
  declare const _default: import('vue').DefineComponent<CoarMarkdownProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CoarMarkdownProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
22
31
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"CoarMarkdown.vue.d.ts","sourceRoot":"","sources":["../src/CoarMarkdown.vue"],"names":[],"mappings":"AAyFA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,GAAG,EAAE,gBAAgB,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;;AAkED,wBAOG"}
1
+ {"version":3,"file":"CoarMarkdown.vue.d.ts","sourceRoot":"","sources":["../src/CoarMarkdown.vue"],"names":[],"mappings":"AAqGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,GAAG,EAAE,gBAAgB,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;;AAqED,wBAOG"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-renderers.d.ts","sourceRoot":"","sources":["../src/default-renderers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-renderers.d.ts","sourceRoot":"","sources":["../src/default-renderers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Component, InjectionKey } from 'vue';
2
+ /**
3
+ * Props every registered fence renderer receives.
4
+ *
5
+ * - `code` — the raw text inside the fence (never HTML-interpolated by the
6
+ * markdown layer; the renderer owns how it treats the string).
7
+ * - `language` — the fence info string, verbatim from the source (e.g.
8
+ * `'mermaid'`). Handy when one component is registered under several keys.
9
+ */
10
+ export interface FenceRendererProps {
11
+ code: string;
12
+ language: string;
13
+ }
14
+ /**
15
+ * Map of fence language → the Vue component that renders it. Keys are matched
16
+ * case-insensitively (see {@link resolveFenceRenderer}); register with a
17
+ * lowercase key by convention (`{ mermaid: … }`).
18
+ */
19
+ export type FenceRegistry = Record<string, Component>;
20
+ /** Vue inject key. Set via `<CoarMarkdown :fenceRenderers>` or `app.provide`. */
21
+ export declare const MARKDOWN_FENCE_RENDERERS_KEY: InjectionKey<FenceRegistry>;
22
+ /**
23
+ * Look up the renderer for a fence language, tolerating an undefined registry.
24
+ * The lookup is case-insensitive so ` ```mermaid `, ` ```Mermaid ` and
25
+ * ` ```MERMAID ` all resolve to a registry entry keyed `mermaid`. Returns
26
+ * `undefined` when nothing is registered — the caller then falls back to the
27
+ * plain code-block presentation.
28
+ */
29
+ export declare function resolveFenceRenderer(registry: FenceRegistry | undefined, language: string): Component | undefined;
30
+ //# sourceMappingURL=fences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fences.d.ts","sourceRoot":"","sources":["../src/fences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtD,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,EAAE,YAAY,CAAC,aAAa,CAEpE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,SAAS,GAAG,SAAS,CAGvB"}
package/dist/index.d.ts CHANGED
@@ -20,5 +20,7 @@ export { defaultMarkdownRenderers, DefaultBlockquote, DefaultCodeBlock, DefaultC
20
20
  export { RenderNode, renderMarkdownNodes } from './RenderNode';
21
21
  export { EmbedRenderer, MARKDOWN_EMBEDS_KEY, resolveEmbed, toEmbedProps, } from './embeds';
22
22
  export type { EmbedDefinition, EmbedEditorController, EmbedEditorProps, EmbedInsertIntegration, EmbedRegistry, } from './embeds';
23
+ export { MARKDOWN_FENCE_RENDERERS_KEY, resolveFenceRenderer } from './fences';
24
+ export type { FenceRegistry, FenceRendererProps } from './fences';
23
25
  export * from './helpers';
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAK/D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,UAAU,CAAC;AAIlB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAK/D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAIlE,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import { Fragment as e, createBlock as t, createElementBlock as n, defineComponent as r, h as i, inject as ee, openBlock as a, provide as o, renderList as te, unref as ne } from "vue";
2
- import { CoarCodeBlock as re } from "@cocoar/vue-ui";
3
- import { sanitizeColor as ie, toEmbedProps as ae } from "@cocoar/vue-markdown-core";
1
+ import { Fragment as e, createBlock as t, createElementBlock as n, defineComponent as r, h as i, inject as a, openBlock as o, provide as s, renderList as ee, unref as te } from "vue";
2
+ import { CoarCodeBlock as ne } from "@cocoar/vue-ui";
3
+ import { sanitizeColor as re, toEmbedProps as c } from "@cocoar/vue-markdown-core";
4
4
  //#region src/embeds.ts
5
- var s = Symbol.for("coar:markdown-embeds");
6
- function c(e, t) {
5
+ var l = Symbol.for("coar:markdown-embeds");
6
+ function ie(e, t) {
7
7
  return e ? e[t] : void 0;
8
8
  }
9
- var l = r({
9
+ var ae = r({
10
10
  name: "CoarMarkdownEmbed",
11
11
  props: {
12
12
  embedKey: {
@@ -23,9 +23,9 @@ var l = r({
23
23
  }
24
24
  },
25
25
  setup(e) {
26
- let t = ee(s, void 0);
26
+ let t = a(l, void 0);
27
27
  return () => {
28
- let n = c(e.registry ?? t, e.embedKey);
28
+ let n = ie(e.registry ?? t, e.embedKey);
29
29
  return n ? i("div", {
30
30
  class: "coar-markdown-embed",
31
31
  "data-embed-key": e.embedKey
@@ -35,99 +35,102 @@ var l = r({
35
35
  }, [i("span", { class: "coar-markdown-embed__icon" }, "🧩"), i("span", { class: "coar-markdown-embed__label" }, `Unknown embed: :::${e.embedKey}`)]);
36
36
  };
37
37
  }
38
- });
38
+ }), u = Symbol.for("coar:markdown-fence-renderers");
39
+ function d(e, t) {
40
+ if (e) return e[t] ?? e[t.toLowerCase()];
41
+ }
39
42
  //#endregion
40
43
  //#region src/helpers.ts
41
- function u(e) {
44
+ function f(e) {
42
45
  let t = e.attrs?.depth;
43
46
  if (typeof t != "number") return 1;
44
47
  let n = Math.trunc(t);
45
48
  return n <= 1 ? 1 : n === 2 ? 2 : n === 3 ? 3 : n === 4 ? 4 : n === 5 ? 5 : 6;
46
49
  }
47
- function d(e) {
50
+ function p(e) {
48
51
  let t = e.attrs?.anchor;
49
52
  return typeof t == "string" && t.length > 0 ? t : null;
50
53
  }
51
- function f(e) {
54
+ function m(e) {
52
55
  let t = e.attrs?.language;
53
56
  return typeof t == "string" && t.trim().length > 0 ? t.trim() : "text";
54
57
  }
55
- function p(e) {
58
+ function h(e) {
56
59
  return !!e.attrs?.ordered;
57
60
  }
58
- function m(e) {
61
+ function g(e) {
59
62
  let t = e.attrs?.start;
60
63
  return typeof t == "number" ? t : null;
61
64
  }
62
- function h(e) {
65
+ function _(e) {
63
66
  return typeof e.attrs?.checked == "boolean";
64
67
  }
65
- function g(e) {
68
+ function v(e) {
66
69
  return e.attrs?.checked === !0;
67
70
  }
68
- function _(e) {
71
+ function y(e) {
69
72
  let t = e.attrs?.url;
70
73
  return typeof t == "string" && t.length > 0 ? t : null;
71
74
  }
72
- function v(e) {
73
- let t = _(e);
75
+ function b(e) {
76
+ let t = y(e);
74
77
  return t ? t.startsWith("#") && typeof window < "u" ? `${window.location.pathname}${window.location.search}${t}` : t : null;
75
78
  }
76
- function y(e) {
77
- let t = _(e);
78
- return t && oe(t) ? "_blank" : null;
79
+ function x(e) {
80
+ let t = y(e);
81
+ return t && N(t) ? "_blank" : null;
79
82
  }
80
- function b(e) {
81
- let t = _(e);
82
- return t && oe(t) ? "noopener noreferrer" : null;
83
+ function S(e) {
84
+ let t = y(e);
85
+ return t && N(t) ? "noopener noreferrer" : null;
83
86
  }
84
- function x(e) {
87
+ function C(e) {
85
88
  let t = e.attrs?.url;
86
89
  return typeof t == "string" && t.trim().length > 0 ? t.trim() : null;
87
90
  }
88
- function S(e) {
91
+ function w(e) {
89
92
  let t = e.attrs?.alt;
90
93
  return typeof t == "string" ? t : "";
91
94
  }
92
- function C(e) {
95
+ function T(e) {
93
96
  let t = e.attrs?.title;
94
97
  return typeof t == "string" && t.trim().length > 0 ? t.trim() : null;
95
98
  }
96
- function w(e, t) {
97
- return A(e, t) === "right";
99
+ function E(e, t) {
100
+ return M(e, t) === "right";
98
101
  }
99
- function T(e, t) {
100
- return A(e, t) === "center";
102
+ function D(e, t) {
103
+ return M(e, t) === "center";
101
104
  }
102
- function E(e) {
105
+ function O(e) {
103
106
  let t = e.attrs?.originalType;
104
107
  return typeof t == "string" ? t : String(e.type);
105
108
  }
106
- function D(e) {
109
+ function k(e) {
107
110
  let t = e.attrs?.entries;
108
111
  return Array.isArray(t) ? t.filter((e) => !!e && typeof e == "object" && typeof e.key == "string" && typeof e.value == "string") : [];
109
112
  }
110
- function O(e) {
113
+ function A(e) {
111
114
  let t = e.attrs?.raw;
112
115
  return typeof t == "string" ? t : "";
113
116
  }
114
- function k(e) {
117
+ function j(e) {
115
118
  let t = e.attrs?.color;
116
- return typeof t == "string" ? ie(t) : null;
119
+ return typeof t == "string" ? re(t) : null;
117
120
  }
118
- function A(e, t) {
121
+ function M(e, t) {
119
122
  let n = e.attrs?.align;
120
123
  if (!Array.isArray(n)) return null;
121
124
  let r = n[t];
122
125
  return r === "left" || r === "right" || r === "center" ? r : null;
123
126
  }
124
- function oe(e) {
127
+ function N(e) {
125
128
  let t = e.trim();
126
129
  return t.startsWith("#") || t.startsWith("/") || t.startsWith("./") || t.startsWith("../") || t.startsWith("mailto:") || t.startsWith("tel:") ? !1 : t.startsWith("http://") || t.startsWith("https://");
127
130
  }
128
131
  //#endregion
129
132
  //#region src/default-renderers.ts
130
- var j = {
133
+ var P = {
131
134
  node: {
132
135
  type: Object,
133
136
  required: !0
@@ -140,16 +143,16 @@ var j = {
140
143
  type: Function,
141
144
  required: !0
142
145
  }
143
- }, M = r({
146
+ }, oe = r({
144
147
  name: "DefaultFrontmatter",
145
- props: j,
148
+ props: P,
146
149
  setup(e) {
147
150
  return () => {
148
- let t = D(e.node);
151
+ let t = k(e.node);
149
152
  return t.length === 0 ? i("div", {
150
153
  class: "coar-markdown-frontmatter",
151
154
  "aria-label": "Document metadata"
152
- }, [i("pre", { class: "coar-markdown-frontmatter__raw" }, O(e.node))]) : i("div", {
155
+ }, [i("pre", { class: "coar-markdown-frontmatter__raw" }, A(e.node))]) : i("div", {
153
156
  class: "coar-markdown-frontmatter",
154
157
  role: "group",
155
158
  "aria-label": "Document metadata"
@@ -163,48 +166,48 @@ var j = {
163
166
  ])));
164
167
  };
165
168
  }
166
- }), N = r({
169
+ }), F = r({
167
170
  name: "DefaultHeading",
168
- props: j,
171
+ props: P,
169
172
  setup(e) {
170
173
  return () => {
171
- let t = u(e.node), n = d(e.node);
174
+ let t = f(e.node), n = p(e.node);
172
175
  return i(`h${t}`, {
173
176
  id: n ?? void 0,
174
177
  class: "coar-markdown-heading"
175
178
  }, e.renderChildren());
176
179
  };
177
180
  }
178
- }), P = r({
181
+ }), I = r({
179
182
  name: "DefaultParagraph",
180
- props: j,
183
+ props: P,
181
184
  setup(e) {
182
185
  return () => i("p", { class: "coar-markdown-paragraph" }, e.renderChildren());
183
186
  }
184
- }), F = r({
187
+ }), L = r({
185
188
  name: "DefaultBlockquote",
186
- props: j,
189
+ props: P,
187
190
  setup(e) {
188
191
  return () => i("blockquote", { class: "coar-markdown-blockquote" }, e.renderChildren());
189
192
  }
190
- }), I = r({
193
+ }), R = r({
191
194
  name: "DefaultList",
192
- props: j,
195
+ props: P,
193
196
  setup(e) {
194
197
  return () => {
195
- let t = p(e.node), n = t ? "ol" : "ul", r = t ? m(e.node) : null;
198
+ let t = h(e.node), n = t ? "ol" : "ul", r = t ? g(e.node) : null;
196
199
  return i(n, {
197
200
  class: ["coar-markdown-list", t ? "coar-markdown-list--ordered" : "coar-markdown-list--unordered"],
198
201
  start: r ?? void 0
199
202
  }, e.renderChildren());
200
203
  };
201
204
  }
202
- }), L = r({
205
+ }), z = r({
203
206
  name: "DefaultListItem",
204
- props: j,
207
+ props: P,
205
208
  setup(e) {
206
209
  return () => {
207
- let t = h(e.node), n = t && g(e.node);
210
+ let t = _(e.node), n = t && v(e.node);
208
211
  return i("li", {
209
212
  class: ["coar-markdown-list-item", t ? "coar-markdown-list-item--task" : null],
210
213
  "data-item-type": t ? "task" : void 0,
@@ -212,21 +215,31 @@ var j = {
212
215
  }, e.renderChildren());
213
216
  };
214
217
  }
215
- }), R = r({
218
+ }), B = r({
216
219
  name: "DefaultCodeBlock",
217
- props: j,
220
+ props: P,
218
221
  setup(e) {
219
- return () => i(re, {
220
- class: "coar-markdown-code-block",
221
- code: e.node.text ?? "",
222
- language: f(e.node),
223
- collapsible: !1,
224
- showCopy: !0
225
- });
222
+ let t = a(u, void 0);
223
+ return () => {
224
+ let n = m(e.node), r = e.node.text ?? "", a = d(t, n);
225
+ return a ? i("div", {
226
+ class: "coar-markdown-fence",
227
+ "data-fence-language": n
228
+ }, [i(a, {
229
+ code: r,
230
+ language: n
231
+ })]) : i(ne, {
232
+ class: "coar-markdown-code-block",
233
+ code: r,
234
+ language: n,
235
+ collapsible: !1,
236
+ showCopy: !0
237
+ });
238
+ };
226
239
  }
227
- }), z = r({
240
+ }), V = r({
228
241
  name: "DefaultTable",
229
- props: j,
242
+ props: P,
230
243
  setup(e) {
231
244
  return () => {
232
245
  let t = e.node.children ?? [];
@@ -234,153 +247,153 @@ var j = {
234
247
  let [n, ...r] = t;
235
248
  return i("table", { class: "coar-markdown-table" }, [i("thead", null, [i("tr", null, (n.children ?? []).map((t, n) => i("th", {
236
249
  key: t.id,
237
- class: [w(e.node, n) ? "text-right" : null, T(e.node, n) ? "text-center" : null]
250
+ class: [E(e.node, n) ? "text-right" : null, D(e.node, n) ? "text-center" : null]
238
251
  }, e.renderNodes(t.children ?? []))))]), i("tbody", null, r.map((t) => i("tr", { key: t.id }, (t.children ?? []).map((t, n) => i("td", {
239
252
  key: t.id,
240
- class: [w(e.node, n) ? "text-right" : null, T(e.node, n) ? "text-center" : null]
253
+ class: [E(e.node, n) ? "text-right" : null, D(e.node, n) ? "text-center" : null]
241
254
  }, e.renderNodes(t.children ?? []))))))]);
242
255
  };
243
256
  }
244
- }), B = r({
257
+ }), H = r({
245
258
  name: "DefaultTableRow",
246
- props: j,
259
+ props: P,
247
260
  setup(e) {
248
261
  return () => i("tr", null, e.renderChildren());
249
262
  }
250
- }), V = r({
263
+ }), U = r({
251
264
  name: "DefaultTableCell",
252
- props: j,
265
+ props: P,
253
266
  setup(e) {
254
267
  return () => i("td", { class: "coar-markdown-table-cell" }, e.renderChildren());
255
268
  }
256
- }), H = r({
269
+ }), W = r({
257
270
  name: "DefaultThematicBreak",
258
- props: j,
271
+ props: P,
259
272
  setup() {
260
273
  return () => i("hr", { class: "coar-markdown-hr" });
261
274
  }
262
- }), U = r({
275
+ }), G = r({
263
276
  name: "DefaultText",
264
- props: j,
277
+ props: P,
265
278
  setup(e) {
266
279
  return () => e.node.text ?? "";
267
280
  }
268
- }), W = r({
281
+ }), K = r({
269
282
  name: "DefaultEmphasis",
270
- props: j,
283
+ props: P,
271
284
  setup(e) {
272
285
  return () => i("em", null, e.renderChildren());
273
286
  }
274
- }), G = r({
287
+ }), q = r({
275
288
  name: "DefaultStrong",
276
- props: j,
289
+ props: P,
277
290
  setup(e) {
278
291
  return () => i("strong", null, e.renderChildren());
279
292
  }
280
- }), K = r({
293
+ }), J = r({
281
294
  name: "DefaultStrikethrough",
282
- props: j,
295
+ props: P,
283
296
  setup(e) {
284
297
  return () => i("del", null, e.renderChildren());
285
298
  }
286
- }), q = r({
299
+ }), Y = r({
287
300
  name: "DefaultInlineCode",
288
- props: j,
301
+ props: P,
289
302
  setup(e) {
290
303
  return () => i("code", { class: "coar-markdown-inline-code" }, e.node.text ?? "");
291
304
  }
292
- }), J = r({
305
+ }), X = r({
293
306
  name: "DefaultLink",
294
- props: j,
307
+ props: P,
295
308
  setup(e) {
296
309
  return () => {
297
- let t = v(e.node);
310
+ let t = b(e.node);
298
311
  return t ? i("a", {
299
312
  class: "coar-markdown-link",
300
313
  href: t,
301
- target: y(e.node) ?? void 0,
302
- rel: b(e.node) ?? void 0
314
+ target: x(e.node) ?? void 0,
315
+ rel: S(e.node) ?? void 0
303
316
  }, e.renderChildren()) : e.renderChildren();
304
317
  };
305
318
  }
306
- }), Y = r({
319
+ }), se = r({
307
320
  name: "DefaultImage",
308
- props: j,
321
+ props: P,
309
322
  setup(e) {
310
323
  return () => {
311
- let t = x(e.node);
324
+ let t = C(e.node);
312
325
  return t ? i("img", {
313
326
  class: "coar-markdown-image",
314
327
  src: t,
315
- alt: S(e.node),
316
- title: C(e.node) ?? void 0,
328
+ alt: w(e.node),
329
+ title: T(e.node) ?? void 0,
317
330
  loading: "lazy"
318
331
  }) : null;
319
332
  };
320
333
  }
321
- }), X = r({
334
+ }), ce = r({
322
335
  name: "DefaultLineBreak",
323
- props: j,
336
+ props: P,
324
337
  setup() {
325
338
  return () => i("br");
326
339
  }
327
340
  }), Z = r({
328
341
  name: "DefaultColorSpan",
329
- props: j,
342
+ props: P,
330
343
  setup(e) {
331
344
  return () => {
332
- let t = k(e.node);
345
+ let t = j(e.node);
333
346
  return i("span", {
334
347
  class: "coar-markdown-color",
335
348
  style: t ? { color: t } : void 0
336
349
  }, e.renderChildren());
337
350
  };
338
351
  }
339
- }), se = r({
352
+ }), le = r({
340
353
  name: "DefaultEmbed",
341
- props: j,
354
+ props: P,
342
355
  setup(e) {
343
- return () => i(l, {
356
+ return () => i(ae, {
344
357
  embedKey: typeof e.node.attrs?.key == "string" ? e.node.attrs.key : "",
345
- embedProps: ae(e.node.attrs?.props)
358
+ embedProps: c(e.node.attrs?.props)
346
359
  });
347
360
  }
348
- }), ce = r({
361
+ }), ue = r({
349
362
  name: "DefaultUnsupported",
350
- props: j,
363
+ props: P,
351
364
  setup(e) {
352
- return () => i("div", { class: "coar-markdown-unsupported" }, `Unsupported markdown node: ${E(e.node)}`);
365
+ return () => i("div", { class: "coar-markdown-unsupported" }, `Unsupported markdown node: ${O(e.node)}`);
353
366
  }
354
- }), le = {
355
- frontmatter: M,
356
- heading: N,
357
- paragraph: P,
358
- blockquote: F,
359
- list: I,
360
- listItem: L,
361
- codeBlock: R,
362
- table: z,
363
- tableRow: B,
364
- tableCell: V,
365
- thematicBreak: H,
366
- text: U,
367
- emphasis: W,
368
- strong: G,
369
- strikethrough: K,
370
- inlineCode: q,
371
- link: J,
372
- image: Y,
373
- lineBreak: X,
367
+ }), de = {
368
+ frontmatter: oe,
369
+ heading: F,
370
+ paragraph: I,
371
+ blockquote: L,
372
+ list: R,
373
+ listItem: z,
374
+ codeBlock: B,
375
+ table: V,
376
+ tableRow: H,
377
+ tableCell: U,
378
+ thematicBreak: W,
379
+ text: G,
380
+ emphasis: K,
381
+ strong: q,
382
+ strikethrough: J,
383
+ inlineCode: Y,
384
+ link: X,
385
+ image: se,
386
+ lineBreak: ce,
374
387
  colorSpan: Z,
375
- embed: se,
376
- unsupported: ce
388
+ embed: le,
389
+ unsupported: ue
377
390
  };
378
391
  //#endregion
379
392
  //#region src/registry.ts
380
- function ue(e) {
381
- return e in de ? e : "unsupported";
393
+ function fe(e) {
394
+ return e in pe ? e : "unsupported";
382
395
  }
383
- var de = {
396
+ var pe = {
384
397
  frontmatter: !0,
385
398
  heading: !0,
386
399
  paragraph: !0,
@@ -416,23 +429,23 @@ var de = {
416
429
  }
417
430
  },
418
431
  setup(e) {
419
- let t = ee(Q, void 0), n = () => e.renderers ?? t ?? le;
420
- e.renderers && o(Q, e.renderers);
432
+ let t = a(Q, void 0), n = () => e.renderers ?? t ?? de;
433
+ e.renderers && s(Q, e.renderers);
421
434
  let r = (e) => e.map((e) => i($, {
422
435
  node: e,
423
436
  key: e.id
424
- })), a = () => r(e.node.children ?? []);
437
+ })), o = () => r(e.node.children ?? []);
425
438
  return () => {
426
- let t = n()[ue(e.node.type)];
439
+ let t = n()[fe(e.node.type)];
427
440
  return i(t, {
428
441
  node: e.node,
429
- renderChildren: a,
442
+ renderChildren: o,
430
443
  renderNodes: r
431
444
  });
432
445
  };
433
446
  }
434
447
  });
435
- function fe(e, t) {
448
+ function me(e, t) {
436
449
  return e.map((e) => i($, {
437
450
  node: e,
438
451
  renderers: t,
@@ -441,16 +454,17 @@ function fe(e, t) {
441
454
  }
442
455
  //#endregion
443
456
  //#region src/CoarMarkdown.vue?vue&type=script&setup=true&lang.ts
444
- var pe = { class: "coar-markdown" }, me = /* @__PURE__ */ r({
457
+ var he = { class: "coar-markdown" }, ge = /* @__PURE__ */ r({
445
458
  __name: "CoarMarkdown",
446
459
  props: {
447
460
  doc: {},
448
461
  renderers: {},
449
- embeds: {}
462
+ embeds: {},
463
+ fenceRenderers: {}
450
464
  },
451
465
  setup(r) {
452
466
  let i = r;
453
- return i.embeds && o(s, i.embeds), (i, ee) => (a(), n("div", pe, [(a(!0), n(e, null, te(r.doc.nodes, (e) => (a(), t(ne($), {
467
+ return i.embeds && s(l, i.embeds), i.fenceRenderers && s(u, i.fenceRenderers), (i, a) => (o(), n("div", he, [(o(!0), n(e, null, ee(r.doc.nodes, (e) => (o(), t(te($), {
454
468
  key: e.id,
455
469
  node: e,
456
470
  renderers: r.renderers
@@ -458,4 +472,4 @@ var pe = { class: "coar-markdown" }, me = /* @__PURE__ */ r({
458
472
  }
459
473
  });
460
474
  //#endregion
461
- export { me as CoarMarkdown, F as DefaultBlockquote, R as DefaultCodeBlock, Z as DefaultColorSpan, se as DefaultEmbed, W as DefaultEmphasis, M as DefaultFrontmatter, N as DefaultHeading, Y as DefaultImage, q as DefaultInlineCode, X as DefaultLineBreak, J as DefaultLink, I as DefaultList, L as DefaultListItem, P as DefaultParagraph, K as DefaultStrikethrough, G as DefaultStrong, z as DefaultTable, V as DefaultTableCell, B as DefaultTableRow, U as DefaultText, H as DefaultThematicBreak, ce as DefaultUnsupported, l as EmbedRenderer, s as MARKDOWN_EMBEDS_KEY, Q as MARKDOWN_RENDERERS_KEY, $ as RenderNode, f as codeBlockLanguage, k as colorSpanColor, le as defaultMarkdownRenderers, D as frontmatterEntries, O as frontmatterRaw, d as headingAnchor, u as headingDepth, S as imageAlt, x as imageSrc, C as imageTitle, p as isOrderedList, T as isTableColumnCenterAligned, w as isTableColumnRightAligned, h as isTaskListItem, v as linkHref, b as linkRel, y as linkTarget, _ as linkUrl, m as listStart, fe as renderMarkdownNodes, ue as rendererNameFor, c as resolveEmbed, g as taskChecked, ae as toEmbedProps, E as unsupportedType };
475
+ export { ge as CoarMarkdown, L as DefaultBlockquote, B as DefaultCodeBlock, Z as DefaultColorSpan, le as DefaultEmbed, K as DefaultEmphasis, oe as DefaultFrontmatter, F as DefaultHeading, se as DefaultImage, Y as DefaultInlineCode, ce as DefaultLineBreak, X as DefaultLink, R as DefaultList, z as DefaultListItem, I as DefaultParagraph, J as DefaultStrikethrough, q as DefaultStrong, V as DefaultTable, U as DefaultTableCell, H as DefaultTableRow, G as DefaultText, W as DefaultThematicBreak, ue as DefaultUnsupported, ae as EmbedRenderer, l as MARKDOWN_EMBEDS_KEY, u as MARKDOWN_FENCE_RENDERERS_KEY, Q as MARKDOWN_RENDERERS_KEY, $ as RenderNode, m as codeBlockLanguage, j as colorSpanColor, de as defaultMarkdownRenderers, k as frontmatterEntries, A as frontmatterRaw, p as headingAnchor, f as headingDepth, w as imageAlt, C as imageSrc, T as imageTitle, h as isOrderedList, D as isTableColumnCenterAligned, E as isTableColumnRightAligned, _ as isTaskListItem, b as linkHref, S as linkRel, x as linkTarget, y as linkUrl, g as listStart, me as renderMarkdownNodes, fe as rendererNameFor, ie as resolveEmbed, d as resolveFenceRenderer, v as taskChecked, c as toEmbedProps, O as unsupportedType };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocoar/vue-markdown",
3
- "version": "2.13.0",
3
+ "version": "2.15.0",
4
4
  "description": "Markdown viewer + shared rendering registry for Vue 3. The viewer (`<CoarMarkdown>`) and the editor (`@cocoar/vue-markdown-editor`) consume the same component map so a code block, table, etc. looks identical in both contexts.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -43,10 +43,10 @@
43
43
  "typecheck": "vue-tsc --noEmit"
44
44
  },
45
45
  "dependencies": {
46
- "@cocoar/vue-markdown-core": "2.13.0"
46
+ "@cocoar/vue-markdown-core": "2.15.0"
47
47
  },
48
48
  "peerDependencies": {
49
- "@cocoar/vue-ui": "2.13.0",
49
+ "@cocoar/vue-ui": "2.15.0",
50
50
  "vue": "^3.5.0"
51
51
  },
52
52
  "devDependencies": {