mdast-util-to-vnode 0.5.2 → 0.5.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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,14 @@
1
1
  import { Node, Nodes, Root } from 'mdast';
2
2
  import { Component, VNode } from 'vue';
3
+ declare module 'mdast' {
4
+ interface Data {
5
+ vueProps?: Record<string, any>;
6
+ }
7
+ interface TableRowData {
8
+ tableAlign?: AlignType[];
9
+ isHeaderRow?: boolean;
10
+ }
11
+ }
3
12
  export type ComponentReturn = Component | [Component, Record<string, any> | undefined];
4
13
  export interface ToVNodeOptions {
5
14
  components?: Partial<Record<Nodes['type'], ComponentReturn | ((node: Node) => ComponentReturn)>>;
package/dist/index.js CHANGED
@@ -1,225 +1,251 @@
1
- import { h as t, Comment as O, Text as j } from "vue";
2
- function g(r) {
3
- return Array.isArray(r);
4
- }
5
- function C(r) {
6
- return typeof r == "object" && r !== null;
7
- }
8
- function y(r) {
9
- return typeof r == "function";
10
- }
11
- function s(r) {
12
- return C(r) && !g(r) && !y(r);
13
- }
14
- function i(r, ...u) {
15
- if (!s(r))
16
- return r;
17
- const c = u.filter((a) => s(a));
18
- if (!c.length)
19
- return r;
20
- const e = c.shift();
21
- for (const a in e)
22
- s(e[a]) ? (Object.prototype.hasOwnProperty.call(r, a) || Object.assign(r, { [a]: {} }), i(r[a], e[a])) : Object.assign(r, { [a]: e[a] });
23
- return i(r, ...c);
24
- }
25
- function n(r, u) {
26
- return u.reduce((c, e) => (c[e] = r[e], c), {});
27
- }
28
- function N(r, u = {}) {
29
- return v(r, u, {
1
+ import { isFunction as w, merge as c, isNull as A, pick as s } from "es-toolkit";
2
+ import { h as r, Comment as C, Text as R } from "vue";
3
+ function H(a, t = {}) {
4
+ return N(a, t, {
30
5
  index: 0,
31
6
  parent: null
32
7
  });
33
8
  }
34
- function v(r, u = {}, c) {
35
- var f, m, h, b, p;
36
- let e = (f = u.components) == null ? void 0 : f[r.type], a = {};
37
- switch (y(e) && (e = e(r)), g(e) && (a = e[1] ?? {}, e = e[0]), r.type) {
9
+ function N(a, t = {}, f) {
10
+ var h, b, v, k, y;
11
+ let e = (h = t.components) == null ? void 0 : h[a.type], u = {
12
+ ...(b = a.data) == null ? void 0 : b.vueProps
13
+ };
14
+ switch (w(e) && (e = e(a)), Array.isArray(e) && (u = {
15
+ ...u,
16
+ ...e[1]
17
+ }, e = e[0]), a.type) {
38
18
  case "blockquote":
39
- return t(
19
+ return r(
40
20
  e ?? "blockquote",
41
- a,
42
- l(r, u)
21
+ u,
22
+ e ? {
23
+ default: () => l(a, t)
24
+ } : l(a, t)
43
25
  );
44
26
  case "break":
45
- return t(
27
+ return r(
46
28
  e ?? "br",
47
- a
29
+ u
48
30
  );
49
31
  case "code":
50
- return e ? t(
32
+ return e ? r(
51
33
  e,
52
- i(n(r, ["lang", "meta", "value"]), a)
53
- ) : t(
34
+ c(s(a, ["lang", "meta", "value"]), u)
35
+ ) : r(
54
36
  "pre",
55
37
  {
56
- dataLang: r.lang,
57
- dataMeta: r.meta
38
+ "data-lang": a.lang,
39
+ "data-meta": a.meta
58
40
  },
59
- t("code", r.value)
41
+ r("code", a.value)
60
42
  );
61
43
  case "delete":
62
- return t(
44
+ return r(
63
45
  e ?? "s",
64
- a,
65
- l(r, u)
46
+ u,
47
+ e ? {
48
+ default: () => l(a, t)
49
+ } : l(a, t)
66
50
  );
67
51
  case "emphasis":
68
- return t(
52
+ return r(
69
53
  e ?? "em",
70
- a,
71
- l(r, u)
54
+ u,
55
+ e ? {
56
+ default: () => l(a, t)
57
+ } : l(a, t)
72
58
  );
73
59
  case "heading":
74
- return e ? t(
60
+ return e ? r(
75
61
  e,
76
- i(n(r, ["depth"]), a)
77
- ) : t(
78
- `h${r.depth}`,
79
- l(r, u)
62
+ c(s(a, ["depth"]), u)
63
+ ) : r(
64
+ `h${a.depth}`,
65
+ l(a, t)
80
66
  );
81
67
  case "html":
82
- return e ? t(
68
+ return e ? r(
83
69
  e,
84
- i(n(r, ["value"]), a)
85
- ) : t(
86
- "div",
70
+ c(s(a, ["value"]), u)
71
+ ) : r(
72
+ "pre",
87
73
  {
88
- innerHTML: r.value
89
- }
74
+ "data-lang": "html"
75
+ },
76
+ r("code", a.value)
90
77
  );
91
78
  case "image":
92
- return e ? t(
79
+ return e ? r(
93
80
  e,
94
- i(n(r, ["url", "alt", "title"]), a)
95
- ) : t(
81
+ c(s(a, ["url", "alt", "title"]), u)
82
+ ) : r(
96
83
  "img",
97
84
  {
98
- src: r.url,
99
- alt: r.alt,
100
- title: r.title
85
+ src: a.url,
86
+ alt: a.alt,
87
+ title: a.title
101
88
  }
102
89
  );
103
90
  case "inlineCode":
104
- return e ? t(
91
+ return e ? r(
105
92
  e,
106
- i(n(r, ["value"]), a)
107
- ) : t(
93
+ c(s(a, ["value"]), u)
94
+ ) : r(
108
95
  "code",
109
- r.value
96
+ a.value
110
97
  );
111
98
  case "link":
112
- return e ? t(
99
+ return e ? r(
113
100
  e,
114
- i(n(r, ["url", "title"]), a),
115
- l(r, u)
116
- ) : t(
101
+ c(
102
+ {
103
+ target: "_blank",
104
+ ...s(a, ["url", "title"])
105
+ },
106
+ u
107
+ ),
108
+ {
109
+ default: () => l(a, t)
110
+ }
111
+ ) : r(
117
112
  "a",
118
113
  {
119
- href: r.url
114
+ href: a.url,
115
+ target: "_blank"
120
116
  },
121
- l(r, u)
117
+ l(a, t)
122
118
  );
123
119
  case "list":
124
- return e ? t(
120
+ return e ? r(
125
121
  e,
126
- i(n(r, ["ordered", "spread", "start"]), a),
127
- l(r, u)
128
- ) : t(
129
- r.ordered ? "ol" : "ul",
130
- l(r, u)
122
+ c(s(a, ["ordered", "spread", "start"]), u),
123
+ {
124
+ default: () => l(a, t)
125
+ }
126
+ ) : r(
127
+ a.ordered ? "ol" : "ul",
128
+ l(a, t)
131
129
  );
132
130
  case "listItem":
133
- return e ? t(
131
+ return e ? r(
134
132
  e,
135
- i(n(r, ["checked", "spread"]), a),
136
- l(r, u)
137
- ) : t(
133
+ c(s(a, ["checked", "spread"]), u),
134
+ {
135
+ default: () => l(a, t)
136
+ }
137
+ ) : r(
138
138
  "li",
139
- l(r, u)
139
+ l(a, t)
140
140
  );
141
141
  case "paragraph":
142
- return t(
142
+ return r(
143
143
  e ?? "p",
144
- a,
145
- l(r, u)
144
+ u,
145
+ e ? {
146
+ default: () => l(a, t)
147
+ } : l(a, t)
146
148
  );
147
149
  case "root":
148
- return t(
150
+ return r(
149
151
  e ?? "div",
150
- a,
151
- l(r, u)
152
+ u,
153
+ e ? {
154
+ default: () => l(a, t)
155
+ } : l(a, t)
152
156
  );
153
157
  case "strong":
154
- return t(
158
+ return r(
155
159
  e ?? "strong",
156
- a,
157
- l(r, u)
160
+ u,
161
+ e ? {
162
+ default: () => l(a, t)
163
+ } : l(a, t)
158
164
  );
159
165
  case "table":
160
- return t(
166
+ return r(
161
167
  e ?? "table",
162
- a,
163
- l(r, u)
168
+ u,
169
+ e ? {
170
+ default: () => l(a, t)
171
+ } : l(a, t)
172
+ );
173
+ case "tableRow": {
174
+ a.data || (a.data = {});
175
+ const i = a;
176
+ return i.data.tableAlign = f.parent.align ?? [], i.data.isHeaderRow = f.index === 0, r(
177
+ e ?? "tr",
178
+ u,
179
+ e ? {
180
+ default: () => l(a, t)
181
+ } : l(a, t)
164
182
  );
165
- case "tableRow":
166
- return e ? t(
167
- e,
168
- i(a, {
169
- index: c.index,
170
- align: ((m = c.parent.align) == null ? void 0 : m[c.index]) ?? "left"
171
- }),
172
- l(r, u)
173
- ) : t("tr", {
174
- align: ((h = c.parent.align) == null ? void 0 : h[c.index]) ?? "left"
175
- }, l(r, u));
183
+ }
176
184
  case "tableCell": {
177
- const k = ((p = (b = c.parent.position) == null ? void 0 : b.start) == null ? void 0 : p.offset) === 0;
178
- return t(
179
- e ?? (k ? "th" : "td"),
180
- a,
181
- l(r, u)
185
+ const i = !!((v = f.parent.data) != null && v.isHeaderRow), g = (y = (k = f.parent.data) == null ? void 0 : k.tableAlign) == null ? void 0 : y[f.index];
186
+ let m;
187
+ return g === "left" ? m = "start" : g === "right" ? m = "end" : A(g) ? m = void 0 : m = g, r(
188
+ e ?? (i ? "th" : "td"),
189
+ c(u, {
190
+ style: {
191
+ textAlign: m
192
+ }
193
+ }),
194
+ e ? {
195
+ default: () => l(a, t)
196
+ } : l(a, t)
182
197
  );
183
198
  }
184
199
  case "text":
185
- return t(
186
- j,
187
- r.value
200
+ return r(
201
+ R,
202
+ a.value
188
203
  );
189
204
  case "thematicBreak":
190
- return t(
205
+ return r(
191
206
  e ?? "hr",
192
- a
207
+ u
193
208
  );
194
209
  case "yaml":
195
- return e ? t(
210
+ return e ? r(
196
211
  e,
197
- i(
212
+ c(
198
213
  {
199
214
  lang: "yaml",
200
- value: r.value
215
+ value: a.value
201
216
  },
202
- a
217
+ u
203
218
  )
204
- ) : t(
219
+ ) : r(
205
220
  "pre",
206
221
  {
207
- dataLang: "yaml"
222
+ "data-lang": "yaml"
208
223
  },
209
- t("code", r.value)
224
+ r("code", a.value)
225
+ );
226
+ case "footnoteReference":
227
+ return r(
228
+ e ?? "sup",
229
+ u,
230
+ e ? {
231
+ default: () => l(a, t)
232
+ } : l(a, t)
210
233
  );
211
234
  default:
212
- return t(O, JSON.stringify(r));
235
+ return e ? r(
236
+ e,
237
+ u
238
+ ) : r(C, JSON.stringify(a));
213
239
  }
214
240
  }
215
- function l(r, u = {}) {
216
- var c;
217
- return ((c = r.children) == null ? void 0 : c.map((e, a) => v(e, u, {
218
- index: a,
219
- parent: r
241
+ function l(a, t = {}) {
242
+ var f;
243
+ return ((f = a.children) == null ? void 0 : f.map((e, u) => N(e, t, {
244
+ index: u,
245
+ parent: a
220
246
  }))) ?? [];
221
247
  }
222
248
  export {
223
- v as createVNode,
224
- N as toVNode
249
+ N as createVNode,
250
+ H as toVNode
225
251
  };
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "mdast-util-to-vnode",
3
3
  "type": "module",
4
- "version": "0.5.2",
4
+ "version": "0.5.4",
5
5
  "private": false,
6
- "packageManager": "pnpm@10.28.2",
7
6
  "description": "mdast utility to get the vue vnode",
8
7
  "author": "litingyes <luz.liting@gmail.com> (https://litingyes.top/)",
9
8
  "license": "MIT",
@@ -34,14 +33,6 @@
34
33
  "files": [
35
34
  "dist"
36
35
  ],
37
- "scripts": {
38
- "lint": "eslint .",
39
- "format": "eslint --fix .",
40
- "build": "vite build",
41
- "commit": "git-cz",
42
- "release": "bumpp",
43
- "prepare": "husky"
44
- },
45
36
  "peerDependencies": {
46
37
  "vue": "3"
47
38
  },
@@ -80,5 +71,12 @@
80
71
  },
81
72
  "lint-staged": {
82
73
  "*": "eslint --fix"
74
+ },
75
+ "scripts": {
76
+ "lint": "eslint .",
77
+ "format": "eslint --fix .",
78
+ "build": "vite build",
79
+ "commit": "git-cz",
80
+ "release": "bumpp"
83
81
  }
84
- }
82
+ }