cudoc-vitepress 0.2.0 → 0.4.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.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Normalize actual VitePress Markdown-it tokens for cudoc syntax, document collect
5
5
  ESM · Node.js 20+
6
6
 
7
7
  ```sh
8
- npm install @cudoment/cudoc cudoc-vitepress
8
+ npm install @cudoment/cudoc cudoc-markdown-it cudoc-vitepress
9
9
  ```
10
10
 
11
11
  ```js
@@ -21,7 +21,7 @@ const markdown = {
21
21
  }
22
22
  ```
23
23
 
24
- Import `@cudoment/cudoc/styles.css` in the theme entry. VitePress accepts `.md`, not React `.mdx`. `createDocumentCompiler(md)` reuses the configured renderer for collection and replacements. Embedding requires a collected library and prepared data. This adapter does not use `cudoc-remark`.
24
+ Import `@cudoment/cudoc/styles.css` in the theme entry. VitePress accepts `.md`, not React `.mdx`. `createDocumentCompiler(md)` reuses the configured renderer for collection and replacements. Embedding requires a collected library and prepared data. This adapter shares `cudoc-markdown-it` with `cudoc-eleventy` and does not use `cudoc-remark`.
25
25
 
26
26
  Choose `host`, `cudoc` or `both` independently for `headingAnchor`, `badge`, `tableCellList`, `callout` and `link`. The representative callout is `> [!NOTE] Title`. Authors do not register cudoc React components in the recommended setup. Syntax-only rendering needs no stored JSON; cross-document embedding requires document collection.
27
27
 
package/dist/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
+ /**
2
+ * VitePress adapter.
3
+ *
4
+ * The arrangement itself is `installHostPlugin`, shared with the Eleventy
5
+ * adapter through `cudoc-markdown-it`. What is specific to VitePress is
6
+ * described in the host definition below: its `<Badge>` element, the
7
+ * `relativePath` its build puts in the markdown-it env, and the fact that it
8
+ * resolves link destinations in renderer rules rather than in a core pass.
9
+ */
1
10
  import type MarkdownIt from "markdown-it";
2
- import type Token from "markdown-it/lib/token.mjs";
3
- import type { Root } from "mdast";
4
- import { type DocumentOptions } from "@cudoment/cudoc/document";
5
- import type { DocumentCompiler, Library } from "@cudoment/cudoc/node/library";
6
- export type VitePressOptions = Omit<DocumentOptions, "host" | "format"> & {
7
- /** Called on the actual VitePress token stream after native Markdown processing. */
8
- onDocument?: (tree: Root, source: string, env: Record<string, unknown>) => void;
9
- library?: Library;
10
- outDir?: string;
11
- };
12
- /** Converts the actual markdown-it tokens; it does not parse Markdown a second time. */
13
- export declare function tokensToAst(tokens: Token[], source: string, options?: DocumentOptions): Root;
11
+ import { type HostPluginOptions } from "cudoc-markdown-it";
12
+ import type { DocumentCompiler } from "@cudoment/cudoc/node/library";
13
+ export type VitePressOptions = HostPluginOptions;
14
14
  /** Install in VitePress markdown.config. Native anchors/links/containers run first. */
15
15
  export default function cudocVitePress(md: MarkdownIt, options?: VitePressOptions): void;
16
16
  /** Reuse the very same configured VitePress renderer for collection and source replacements. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,OAAO,CAAA;AAElD,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAU7E,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;IACxE,oFAAoF;IACpF,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,IAAI,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,EAAE,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,IAAI,CA4MN;AAED,uFAAuF;AACvF,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAE,EAAE,UAAU,EACd,OAAO,GAAE,gBAAqB,GAC7B,IAAI,CAkJN;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,gBAAgB,CAwCvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AAEzC,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAA;AA8ChD,uFAAuF;AACvF,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAE,EAAE,UAAU,EACd,OAAO,GAAE,gBAAqB,GAC7B,IAAI,CAEN;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,gBAAgB,CAEvE"}
package/dist/index.js CHANGED
@@ -1,355 +1,64 @@
1
+ /**
2
+ * VitePress adapter.
3
+ *
4
+ * The arrangement itself is `installHostPlugin`, shared with the Eleventy
5
+ * adapter through `cudoc-markdown-it`. What is specific to VitePress is
6
+ * described in the host definition below: its `<Badge>` element, the
7
+ * `relativePath` its build puts in the markdown-it env, and the fact that it
8
+ * resolves link destinations in renderer rules rather than in a core pass.
9
+ */
1
10
  import { fromHtml } from "hast-util-from-html";
2
- import { normalizeDocument, makeCallout, nodeText, resolveSyntax, isHost, } from "@cudoment/cudoc/document";
3
- import { renderDocument } from "@cudoment/cudoc/render";
4
- import { resolveEmbed, parseEmbedSpec, } from "@cudoment/cudoc/node/resolve-embed";
5
- import { readPreparedEmbeds, embedKey, } from "@cudoment/cudoc/node/prepare-embeds";
6
- /** Converts the actual markdown-it tokens; it does not parse Markdown a second time. */
7
- export function tokensToAst(tokens, source, options = {}) {
8
- const root = { type: "root", children: [] };
9
- const stack = [root];
10
- const offsets = [0];
11
- for (let i = 0; i < source.length; i++)
12
- if (source[i] === "\n")
13
- offsets.push(i + 1);
14
- const position = (token) => token.map
15
- ? {
16
- start: {
17
- line: token.map[0] + 1,
18
- column: 1,
19
- offset: offsets[token.map[0]],
20
- },
21
- end: {
22
- line: token.map[1] + 1,
23
- column: 1,
24
- offset: offsets[token.map[1]] ?? source.length,
25
- },
26
- }
27
- : undefined;
28
- const parent = () => stack.at(-1);
29
- const add = (node) => {
30
- parent().children.push(node);
11
+ import { installHostPlugin, createHostCompiler, } from "cudoc-markdown-it";
12
+ import { resolveSyntax, isHost } from "@cudoment/cudoc/document";
13
+ /**
14
+ * `<Badge type="tip" text="1.0" />` normalized into cudoc's badge.
15
+ *
16
+ * Only the static form is converted. A badge carrying a Vue binding is left as
17
+ * raw HTML, because its text is not known until the component runs.
18
+ */
19
+ const badgeToken = (token, { options }) => {
20
+ if (!["html_inline", "html_block"].includes(token.type))
21
+ return undefined;
22
+ if (!isHost(resolveSyntax(options.syntax).badge))
23
+ return undefined;
24
+ if (!/^<Badge\s/.test(token.content))
25
+ return undefined;
26
+ if (/\s(?:[:@]|v-)/.test(token.content))
27
+ return undefined;
28
+ const element = fromHtml(token.content, { fragment: true }).children[0];
29
+ if (element?.type !== "element" ||
30
+ typeof element.properties.text !== "string")
31
+ return undefined;
32
+ return {
33
+ type: "strong",
34
+ children: [{ type: "text", value: element.properties.text }],
35
+ data: {
36
+ hName: "span",
37
+ hProperties: { className: ["cudoc-badge"] },
38
+ cudoc: { kind: "badge" },
39
+ },
31
40
  };
32
- const consume = (token) => {
33
- if (token.nesting === -1) {
34
- stack.pop();
35
- return;
36
- }
37
- if (token.type === "inline") {
38
- if (parent().type === "tableCell") {
39
- const row = [...stack].reverse().find((n) => n.type === "tableRow");
40
- const start = source.indexOf(token.content, row?.position?.start.offset ?? 0);
41
- if (start >= 0)
42
- parent().position = {
43
- start: {
44
- line: row?.position?.start.line ?? 1,
45
- column: 1,
46
- offset: start,
47
- },
48
- end: {
49
- line: row?.position?.start.line ?? 1,
50
- column: 1,
51
- offset: start + token.content.length,
52
- },
53
- };
54
- }
55
- token.children?.forEach(consume);
56
- return;
57
- }
58
- const attrs = Object.fromEntries(token.attrs ?? []);
59
- let node;
60
- const common = {
61
- position: position(token),
62
- ...(token.attrs?.length ? { data: { hProperties: attrs } } : {}),
63
- };
64
- if (["text", "text_special"].includes(token.type))
65
- node = { type: "text", value: token.content };
66
- else if (token.type === "softbreak")
67
- node = { type: "text", value: "\n" };
68
- else if (token.type === "hardbreak")
69
- node = { type: "break" };
70
- else if (token.type === "code_inline")
71
- node = { type: "inlineCode", value: token.content };
72
- else if (["fence", "code_block"].includes(token.type))
73
- node = {
74
- type: "code",
75
- value: token.content.replace(/\n$/, ""),
76
- lang: token.info.split(/\s+/)[0] || null,
77
- meta: token.info.split(/\s+/).slice(1).join(" "),
78
- ...common,
79
- };
80
- else if (token.type === "image")
81
- node = {
82
- type: "image",
83
- url: String(attrs.src ?? ""),
84
- alt: token.content,
85
- title: attrs.title ?? null,
86
- ...common,
87
- };
88
- else if (["html_inline", "html_block"].includes(token.type)) {
89
- node = { type: "html", value: token.content, ...common };
90
- if (isHost(resolveSyntax(options.syntax).badge) &&
91
- /^<Badge\s/.test(token.content) &&
92
- !/\s(?:[:@]|v-)/.test(token.content)) {
93
- const element = fromHtml(token.content, { fragment: true }).children[0];
94
- if (element?.type === "element" &&
95
- typeof element.properties.text === "string")
96
- node = {
97
- type: "strong",
98
- children: [{ type: "text", value: element.properties.text }],
99
- data: {
100
- hName: "span",
101
- hProperties: { className: ["cudoc-badge"] },
102
- cudoc: { kind: "badge" },
103
- },
104
- };
105
- }
106
- }
107
- else if (token.type === "hr")
108
- node = { type: "thematicBreak", ...common };
109
- else if (token.type === "github_alert_open") {
110
- node = makeCallout(token.meta.type, token.meta.title ? [{ type: "text", value: token.meta.title }] : [], [], position(token));
111
- }
112
- else if (token.type.startsWith("container_") && token.nesting === 1) {
113
- const type = token.type.slice(10, -5);
114
- const title = token.info.trim().slice(type.length).trim();
115
- node =
116
- type === "details"
117
- ? {
118
- type: "blockquote",
119
- data: { hName: "details" },
120
- position: position(token),
121
- children: [
122
- {
123
- type: "paragraph",
124
- data: { hName: "summary" },
125
- children: [{ type: "text", value: title || "Details" }],
126
- },
127
- ],
128
- }
129
- : makeCallout(type, title ? [{ type: "text", value: title }] : [], [], position(token));
130
- if (type !== "details" &&
131
- !isHost(resolveSyntax(options.syntax).callout)) {
132
- node.data = {
133
- hName: "div",
134
- hProperties: { className: ["custom-block", type] },
135
- };
136
- node.children[0].data = {
137
- hProperties: { className: ["custom-block-title"] },
138
- };
139
- }
140
- }
141
- else {
142
- const types = {
143
- paragraph_open: "paragraph",
144
- heading_open: "heading",
145
- blockquote_open: "blockquote",
146
- bullet_list_open: "list",
147
- ordered_list_open: "list",
148
- list_item_open: "listItem",
149
- table_open: "table",
150
- tr_open: "tableRow",
151
- th_open: "tableCell",
152
- td_open: "tableCell",
153
- strong_open: "strong",
154
- em_open: "emphasis",
155
- s_open: "delete",
156
- link_open: "link",
157
- };
158
- if (["thead_open", "tbody_open"].includes(token.type)) {
159
- stack.push(parent());
160
- return;
161
- }
162
- if (!types[token.type])
163
- throw new Error(`cudoc-vitepress: unsupported token ${token.type}; provide a token adapter before exporting`);
164
- node = { type: types[token.type], children: [], ...common };
165
- if (node.type === "heading") {
166
- node.depth = Number(token.tag.slice(1));
167
- node.data = {
168
- ...node.data,
169
- cudoc: {
170
- kind: "heading",
171
- explicitId: /\{#[^}]+\}/.test(source.slice(node.position?.start.offset, node.position?.end.offset)),
172
- },
173
- };
174
- }
175
- if (node.type === "link")
176
- node.url = String(attrs.href ?? "");
177
- if (node.type === "list") {
178
- node.ordered = token.type === "ordered_list_open";
179
- node.start = node.ordered ? Number(attrs.start ?? 1) : null;
180
- node.spread = false;
181
- }
182
- if (node.type === "listItem") {
183
- node.spread = false;
184
- node.checked = null;
185
- }
186
- }
187
- add(node);
188
- if (token.nesting === 1)
189
- stack.push(node);
190
- };
191
- tokens.forEach(consume);
192
- return root;
193
- }
41
+ };
42
+ const vitePress = {
43
+ adapter: "cudoc-vitepress",
44
+ host: "vitepress",
45
+ documentId: (env) => String(env.relativePath ?? env.path ?? "index.md")
46
+ .replace(/^\//, "")
47
+ .replace(/\.md$/, ""),
48
+ token: badgeToken,
49
+ // VitePress resolves links in renderer rules, after its core token passes.
50
+ resolveInlineAttributes: true,
51
+ compilerEnv: ({ id, filePath }) => ({
52
+ path: filePath,
53
+ relativePath: `${id}.md`,
54
+ }),
55
+ };
194
56
  /** Install in VitePress markdown.config. Native anchors/links/containers run first. */
195
57
  export default function cudocVitePress(md, options = {}) {
196
- const nativeFence = md.renderer.rules.fence;
197
- md.renderer.rules.fence = (tokens, index, renderOptions, env, self) => tokens[index].info.trim() === "cudoc-embed" &&
198
- env.cudocRendered !== undefined
199
- ? ""
200
- : nativeFence
201
- ? nativeFence(tokens, index, renderOptions, env, self)
202
- : self.renderToken(tokens, index, renderOptions);
203
- const nativeRender = md.renderer.render.bind(md.renderer);
204
- md.renderer.render = (tokens, renderOptions, env) => {
205
- const nativeHtml = nativeRender(tokens, renderOptions, env);
206
- return env.cudocRendered ?? nativeHtml;
207
- };
208
- md.core.ruler.push("cudoc", (state) => {
209
- // VitePress resolves links in renderer rules, after its core token passes.
210
- // Render cloned inline tokens so those final attributes reach the AST without
211
- // applying base paths twice to the original host tokens.
212
- const cloneToken = (token) => Object.assign(Object.create(Object.getPrototypeOf(token)), token, {
213
- attrs: token.attrs?.map((pair) => [...pair]) ?? null,
214
- children: token.children?.map(cloneToken) ?? null,
215
- });
216
- const tokens = state.tokens.map(cloneToken);
217
- for (const token of tokens)
218
- if (token.type === "inline" && token.children)
219
- md.renderer.renderInline(token.children, md.options, {
220
- ...state.env,
221
- links: [],
222
- });
223
- const tree = tokensToAst(tokens, state.src, options);
224
- const diagnostics = normalizeDocument(tree, state.src, { ...options, host: "vitepress", format: "md", headingIds: "host" }, (source) => {
225
- const inline = [];
226
- const env = { ...state.env, links: [] };
227
- md.inline.parse(source, md, env, inline);
228
- for (const token of inline)
229
- if (token.type === "text_special")
230
- token.type = "text";
231
- md.renderer.renderInline(inline, md.options, env);
232
- return tokensToAst(inline, source, options)
233
- .children;
234
- });
235
- const updateHeading = (node) => {
236
- if (node.type === "heading")
237
- for (const child of node.children ?? []) {
238
- if (child.type === "link" &&
239
- child.data?.hProperties?.class === "header-anchor") {
240
- child.url = `#${node.data?.hProperties?.id}`;
241
- child.data.hProperties.href = child.url;
242
- child.data.cudoc = { kind: "permalink" };
243
- }
244
- }
245
- node.children?.forEach(updateHeading);
246
- };
247
- updateHeading(tree);
248
- const headingMap = new Map();
249
- const collectHeadings = (node) => {
250
- if (node.type === "heading" && node.position)
251
- headingMap.set(node.position.start.line, node);
252
- node.children?.forEach(collectHeadings);
253
- };
254
- collectHeadings(tree);
255
- state.tokens.forEach((token, index) => {
256
- if (token.type !== "heading_open")
257
- return;
258
- const heading = headingMap.get((token.map?.[0] ?? -1) + 1);
259
- if (!heading)
260
- return;
261
- token.attrSet("id", String(heading.data?.hProperties?.id));
262
- const inline = state.tokens[index + 1];
263
- const title = heading.children
264
- ?.filter((n) => !["badge", "permalink"].includes(n.data?.cudoc?.kind ?? ""))
265
- .map(nodeText)
266
- .join("")
267
- .trim() ?? "";
268
- inline.content = title;
269
- const label = new state.Token("text", "", 0);
270
- label.content = title;
271
- inline.children = [label];
272
- });
273
- state.env.cudoc = {
274
- tree: structuredClone(tree),
275
- source: state.src,
276
- diagnostics,
277
- };
278
- options.onDocument?.(structuredClone(tree), state.src, state.env);
279
- let index = 0;
280
- const expand = (node) => {
281
- if (!node.children)
282
- return;
283
- node.children = node.children.flatMap((child) => {
284
- if (child.type === "code" && child.lang === "cudoc-embed") {
285
- if (!options.library)
286
- throw new Error("cudoc-vitepress: build documents and provide library before rendering embeds");
287
- const documentId = String(state.env.relativePath ?? state.env.path ?? "index.md")
288
- .replace(/^\//, "")
289
- .replace(/\.md$/, "");
290
- const snapshot = options.library.documents.find((d) => d.id === documentId);
291
- if (snapshot && !snapshot.source.text.endsWith(state.src))
292
- throw new Error(`cudoc-vitepress: stale collected source ${documentId}; recollect documents`);
293
- if (!options.library.compiler) {
294
- const prepared = readPreparedEmbeds(options.outDir ?? ".cudoc/documents", documentId, snapshot?.source.text ?? state.src);
295
- const result = prepared.blocks[embedKey(documentId, child.value, ++index)];
296
- if (!result)
297
- throw new Error(`cudoc-vitepress: missing prepared embed in ${documentId}`);
298
- return structuredClone(result.children);
299
- }
300
- return resolveEmbed(options.library, parseEmbedSpec(child.value), {
301
- documentId,
302
- prefix: `embed-${++index}`,
303
- }).children;
304
- }
305
- expand(child);
306
- return [child];
307
- });
308
- };
309
- if (!state.env.cudocCollect)
310
- expand(tree);
311
- const html = renderDocument(tree, {
312
- highlight: (code, lang) => lang === "cudoc-embed"
313
- ? ""
314
- : (md.options.highlight?.(code, lang ?? "", "") ?? ""),
315
- });
316
- state.env.cudocRendered = html;
317
- });
58
+ installHostPlugin(md, options, vitePress);
318
59
  }
319
60
  /** Reuse the very same configured VitePress renderer for collection and source replacements. */
320
61
  export function createDocumentCompiler(md) {
321
- return (source, context) => {
322
- if (context.options.format === "mdx")
323
- throw new Error("cudoc-vitepress: VitePress accepts Markdown/Vue .md documents, not React .mdx");
324
- const env = {
325
- path: context.filePath,
326
- relativePath: context.id + ".md",
327
- cudocCollect: true,
328
- };
329
- md.render(source, env);
330
- const captured = env.cudoc;
331
- if (!captured)
332
- throw new Error("cudoc-vitepress: install the plugin on the supplied renderer");
333
- const tree = structuredClone(captured.tree);
334
- const offset = source.indexOf(captured.source);
335
- if (offset < 0)
336
- throw new Error("cudoc-vitepress: cannot map processed Markdown back to source");
337
- const lines = source.slice(0, offset).split("\n").length - 1;
338
- const adjust = (node) => {
339
- if (node.position)
340
- for (const point of [node.position.start, node.position.end]) {
341
- if (point.offset !== undefined)
342
- point.offset += offset;
343
- point.line += lines;
344
- }
345
- node.children?.forEach(adjust);
346
- };
347
- adjust(tree);
348
- return {
349
- tree,
350
- frontmatter: env.frontmatter ?? {},
351
- diagnostics: captured.diagnostics,
352
- };
353
- };
62
+ return createHostCompiler(md, vitePress);
354
63
  }
355
64
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAKhE;;;;;GAKG;AACH,MAAM,UAAU,GAA4B,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACjE,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACzE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IACtD,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvE,IACE,OAAO,EAAE,IAAI,KAAK,SAAS;QAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ;QAE3C,OAAO,SAAS,CAAA;IAClB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE;YAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SACzB;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAmB;IAChC,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC;SAC/C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IACzB,KAAK,EAAE,UAAU;IACjB,2EAA2E;IAC3E,uBAAuB,EAAE,IAAI;IAC7B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,GAAG,EAAE,KAAK;KACzB,CAAC;CACH,CAAA;AAED,uFAAuF;AACvF,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAc,EACd,UAA4B,EAAE;IAE9B,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAC3C,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,sBAAsB,CAAC,EAAc;IACnD,OAAO,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;AAC1C,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,25 @@
1
1
  {
2
2
  "name": "cudoc-vitepress",
3
- "version": "0.2.0",
4
- "type": "module",
5
- "license": "MIT",
6
- "author": "cudoment",
3
+ "version": "0.4.0",
7
4
  "description": "VitePress Markdown integration for cudoc",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/cudoment/cudoc.git",
9
+ "directory": "packages/cudoc-vitepress"
10
+ },
11
+ "homepage": "https://github.com/cudoment/cudoc/tree/main/packages/cudoc-vitepress#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/cudoment/cudoc/issues"
14
+ },
15
+ "keywords": [
16
+ "cudoc",
17
+ "vitepress",
18
+ "vitepress-plugin",
19
+ "markdown",
20
+ "documentation"
21
+ ],
22
+ "type": "module",
8
23
  "main": "./dist/index.js",
9
24
  "types": "./dist/index.d.ts",
10
25
  "exports": {
@@ -18,16 +33,18 @@
18
33
  "README.md",
19
34
  "LICENSE"
20
35
  ],
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
21
39
  "scripts": {
22
- "build": "tsc --build"
40
+ "build": "tsc --build",
41
+ "clean": "rm -rf dist *.tsbuildinfo"
23
42
  },
24
43
  "dependencies": {
25
- "@cudoment/cudoc": "0.2.0",
44
+ "@cudoment/cudoc": "0.4.0",
45
+ "cudoc-markdown-it": "0.4.0",
26
46
  "hast-util-from-html": "^2.0.3"
27
47
  },
28
- "engines": {
29
- "node": ">=20"
30
- },
31
48
  "peerDependencies": {
32
49
  "markdown-it": "^14.1.0",
33
50
  "vitepress": "^1.6.4"
@@ -35,13 +52,8 @@
35
52
  "devDependencies": {
36
53
  "@types/markdown-it": "^14.2.0"
37
54
  },
38
- "homepage": "https://github.com/cudoment/cudoc/tree/main/packages/cudoc-vitepress#readme",
39
- "repository": {
40
- "type": "git",
41
- "url": "git+https://github.com/cudoment/cudoc.git",
42
- "directory": "packages/cudoc-vitepress"
43
- },
44
- "publishConfig": {
45
- "access": "public"
55
+ "author": "cudoment",
56
+ "engines": {
57
+ "node": ">=20"
46
58
  }
47
59
  }