@docubook/core 1.3.2 → 1.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/dist/compile.d.ts CHANGED
@@ -16,7 +16,6 @@ export type ParseMdxOptions = {
16
16
  */
17
17
  parseFrontmatter?: boolean;
18
18
  };
19
- export declare const handleCodeTitles: () => (tree: Node) => void;
20
19
  export declare const preProcess: () => (tree: Node) => void;
21
20
  export declare const postProcess: () => (tree: Node) => void;
22
21
  export declare function createDefaultRehypePlugins(): unknown[];
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,OAAO,CAAC;AAO1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAkBhD,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,KAAK,iBAAiB,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,KAAK,kBAAkB,GAAG,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,IAAI,SAgChD,CAAC;AAEF,eAAO,MAAM,UAAU,SAAU,MAAM,IAAI,SAa1C,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,MAAM,IAAI,SAS3C,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,OAAO,EAAE,CAUtD;AAED,wBAAgB,0BAA0B,IAAI,OAAO,EAAE,CAEtD;AAED,wBAAsB,QAAQ,CAAC,WAAW,EACtC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAexC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,OAAO,CAAA;AASzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAoB/C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,KAAK,iBAAiB,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;AAChE,KAAK,kBAAkB,GAAG,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;AAEtE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;IAC1C,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAA;IACnD,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAA;IACnD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,UAAU,SAAU,MAAM,IAAI,SAwB1C,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,IAAI,SAe3C,CAAA;AAED,wBAAgB,0BAA0B,IAAI,OAAO,EAAE,CAYtD;AAED,wBAAgB,0BAA0B,IAAI,OAAO,EAAE,CAEtD;AAED,wBAAsB,QAAQ,CAAC,WAAW,EACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAiBxC"}
package/dist/compile.js CHANGED
@@ -5,36 +5,8 @@ import rehypePrism from "rehype-prism-plus";
5
5
  import rehypeAutolinkHeadings from "rehype-autolink-headings";
6
6
  import rehypeSlug from "rehype-slug";
7
7
  import rehypeCodeTitles from "rehype-code-titles";
8
- export const handleCodeTitles = () => (tree) => {
9
- visit(tree, "element", (node, index, parent) => {
10
- if (!parent || index === null || node.tagName !== "div") {
11
- return;
12
- }
13
- const isTitleDiv = node.properties?.className?.includes("rehype-code-title");
14
- if (!isTitleDiv) {
15
- return;
16
- }
17
- let nextElement = null;
18
- for (let i = index + 1; i < parent.children.length; i++) {
19
- const sibling = parent.children[i];
20
- if (sibling.type === "element") {
21
- nextElement = sibling;
22
- break;
23
- }
24
- }
25
- if (nextElement?.tagName === "pre") {
26
- const titleNode = node.children?.[0];
27
- if (titleNode?.type === "text") {
28
- if (!nextElement.properties) {
29
- nextElement.properties = {};
30
- }
31
- nextElement.properties["data-title"] = titleNode.value;
32
- parent.children.splice(index, 1);
33
- return index;
34
- }
35
- }
36
- });
37
- };
8
+ import { handleCodeTitles } from "./plugins/handleCodeTitles";
9
+ import { handleCodeExpandableRemark, handleCodeExpandable } from "./plugins/handleCodeExpandable";
38
10
  export const preProcess = () => (tree) => {
39
11
  visit(tree, (node) => {
40
12
  const element = node;
@@ -42,6 +14,16 @@ export const preProcess = () => (tree) => {
42
14
  const [codeEl] = element.children;
43
15
  if (codeEl.tagName !== "code" || !codeEl.children?.[0])
44
16
  return;
17
+ const className = codeEl.properties?.className;
18
+ const classList = Array.isArray(className)
19
+ ? className
20
+ : typeof className === "string"
21
+ ? className.split(" ").filter(Boolean)
22
+ : [];
23
+ const languageClass = classList.find((item) => item.startsWith("language-"));
24
+ if (languageClass) {
25
+ element.language = languageClass.replace("language-", "").split(":")[0];
26
+ }
45
27
  const textNode = codeEl.children[0];
46
28
  if (textNode.type === "text" && textNode.value) {
47
29
  element.raw = textNode.value;
@@ -56,6 +38,12 @@ export const postProcess = () => (tree) => {
56
38
  if (element.properties && element.raw) {
57
39
  element.properties.raw = element.raw;
58
40
  }
41
+ if (element.properties && element.language && !element.properties["data-language"]) {
42
+ element.properties["data-language"] = element.language;
43
+ }
44
+ if (element.properties && element.codeTitle && !element.properties["data-title"]) {
45
+ element.properties["data-title"] = element.codeTitle;
46
+ }
59
47
  }
60
48
  });
61
49
  };
@@ -64,14 +52,16 @@ export function createDefaultRehypePlugins() {
64
52
  preProcess,
65
53
  rehypeCodeTitles,
66
54
  handleCodeTitles,
55
+ handleCodeExpandable,
67
56
  rehypePrism,
57
+ handleCodeExpandable,
68
58
  rehypeSlug,
69
59
  rehypeAutolinkHeadings,
70
60
  postProcess,
71
61
  ];
72
62
  }
73
63
  export function createDefaultRemarkPlugins() {
74
- return [remarkGfm];
64
+ return [remarkGfm, handleCodeExpandableRemark];
75
65
  }
76
66
  export async function parseMdx(rawMdx, options = {}) {
77
67
  const rehypePlugins = options.rehypePlugins ?? createDefaultRehypePlugins();
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export type { TocItem, MdxCompileResult } from "./types";
2
- export { parseMdx, preProcess, postProcess, handleCodeTitles, createDefaultRehypePlugins, createDefaultRemarkPlugins, } from "./compile";
2
+ export { parseMdx, preProcess, postProcess, createDefaultRehypePlugins, createDefaultRemarkPlugins, } from "./compile";
3
+ export { handleCodeTitles } from "./plugins/handleCodeTitles";
4
+ export { handleCodeExpandableRemark, handleCodeExpandable } from "./plugins/handleCodeExpandable";
3
5
  export { extractFrontmatter, extractFrontmatterWithContent, extractTocsFromRawMdx, sluggify } from "./extract";
4
6
  export type { ParseMdxOptions } from "./compile";
5
7
  export { readMdxFileBySlug, parseMdxFile, compileParsedMdxFile, createMdxContentService, } from "./content";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACH,QAAQ,EACR,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/G,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACH,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,WAAW,CAAC;AACnB,YAAY,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,8BAA8B,GACjC,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACH,QAAQ,EACR,UAAU,EACV,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/G,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACH,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,WAAW,CAAC;AACnB,YAAY,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,8BAA8B,GACjC,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
- export { parseMdx, preProcess, postProcess, handleCodeTitles, createDefaultRehypePlugins, createDefaultRemarkPlugins, } from "./compile";
1
+ export { parseMdx, preProcess, postProcess, createDefaultRehypePlugins, createDefaultRemarkPlugins, } from "./compile";
2
+ export { handleCodeTitles } from "./plugins/handleCodeTitles";
3
+ export { handleCodeExpandableRemark, handleCodeExpandable } from "./plugins/handleCodeExpandable";
2
4
  export { extractFrontmatter, extractFrontmatterWithContent, extractTocsFromRawMdx, sluggify } from "./extract";
3
5
  export { readMdxFileBySlug, parseMdxFile, compileParsedMdxFile, createMdxContentService, } from "./content";
4
6
  //# 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":"AACA,OAAO,EACH,QAAQ,EACR,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/G,OAAO,EACH,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EACR,UAAU,EACV,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE/G,OAAO,EACH,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Node } from "unist";
2
+ /**
3
+ * Remark plugin to parse expandable metadata from code fences
4
+ * Syntax: ```lang:filename showLineNumbers {lines} Expandable
5
+ *
6
+ * Adds hProperties to code node:
7
+ * - data-expandable: 'true'
8
+ * - data-expandable-lines: total line count
9
+ */
10
+ export declare const handleCodeExpandableRemark: () => (tree: Node) => void;
11
+ /**
12
+ * Rehype plugin to transform expandable code blocks
13
+ * Copies data-expandable metadata from <code> into <pre>
14
+ * so custom React pre components can receive the attributes via props.
15
+ */
16
+ export declare const handleCodeExpandable: () => (tree: Node) => void;
17
+ //# sourceMappingURL=handleCodeExpandable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCodeExpandable.d.ts","sourceRoot":"","sources":["../../src/plugins/handleCodeExpandable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AA2BlC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,SAAU,MAAM,IAAI,SAmD1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,SAAU,MAAM,IAAI,SA0EpD,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { visit } from "unist-util-visit";
2
+ /**
3
+ * Remark plugin to parse expandable metadata from code fences
4
+ * Syntax: ```lang:filename showLineNumbers {lines} Expandable
5
+ *
6
+ * Adds hProperties to code node:
7
+ * - data-expandable: 'true'
8
+ * - data-expandable-lines: total line count
9
+ */
10
+ export const handleCodeExpandableRemark = () => (tree) => {
11
+ visit(tree, "code", (node) => {
12
+ if (!node.meta)
13
+ return;
14
+ const isExpandable = node.meta.includes("Expandable");
15
+ const [languagePart, titlePart] = (node.lang ?? "").split(":");
16
+ const normalizedLanguage = languagePart?.trim();
17
+ const normalizedTitle = titlePart?.trim();
18
+ if (isExpandable) {
19
+ const lineCount = node.value.split("\n").length;
20
+ if (!node.data) {
21
+ node.data = {};
22
+ }
23
+ if (!node.data.hProperties) {
24
+ node.data.hProperties = {};
25
+ }
26
+ node.data.hProperties["data-expandable"] = "true";
27
+ node.data.hProperties["data-expandable-lines"] = lineCount.toString();
28
+ if (normalizedLanguage) {
29
+ node.data.hProperties["data-language"] = normalizedLanguage;
30
+ }
31
+ if (normalizedTitle) {
32
+ node.data.hProperties["data-title"] = normalizedTitle;
33
+ }
34
+ const currentClassName = node.data.hProperties.className;
35
+ const classList = Array.isArray(currentClassName)
36
+ ? currentClassName
37
+ : typeof currentClassName === "string"
38
+ ? currentClassName.split(" ").filter(Boolean)
39
+ : [];
40
+ if (!classList.includes("mdx-expandable-meta")) {
41
+ classList.push("mdx-expandable-meta");
42
+ }
43
+ node.data.hProperties.className = classList;
44
+ if (normalizedLanguage && !node.meta.includes("dbLang(")) {
45
+ node.meta = `${node.meta} dbLang(${normalizedLanguage})`.trim();
46
+ }
47
+ if (normalizedTitle && !node.meta.includes("dbTitle(")) {
48
+ node.meta = `${node.meta} dbTitle(${normalizedTitle})`.trim();
49
+ }
50
+ }
51
+ });
52
+ };
53
+ /**
54
+ * Rehype plugin to transform expandable code blocks
55
+ * Copies data-expandable metadata from <code> into <pre>
56
+ * so custom React pre components can receive the attributes via props.
57
+ */
58
+ export const handleCodeExpandable = () => (tree) => {
59
+ visit(tree, "element", (node) => {
60
+ if (node.tagName !== "pre")
61
+ return;
62
+ const codeElement = node.children?.find((child) => {
63
+ const element = child;
64
+ return element.type === "element" && element.tagName === "code";
65
+ });
66
+ const codeClassName = codeElement?.properties?.className;
67
+ const codeClassList = Array.isArray(codeClassName)
68
+ ? codeClassName
69
+ : typeof codeClassName === "string"
70
+ ? codeClassName.split(" ").filter(Boolean)
71
+ : [];
72
+ const codeMeta = typeof codeElement?.data?.meta === "string" ? codeElement.data.meta : undefined;
73
+ const languageFromMeta = codeMeta?.match(/dbLang\(([^)]+)\)/)?.[1];
74
+ const titleFromMeta = codeMeta?.match(/dbTitle\(([^)]+)\)/)?.[1];
75
+ const isExpandable = codeElement?.properties?.["data-expandable"] === "true" ||
76
+ codeClassList.includes("mdx-expandable-meta") ||
77
+ codeMeta?.includes("Expandable") === true;
78
+ const expandableLines = codeElement?.properties?.["data-expandable-lines"];
79
+ if (!isExpandable)
80
+ return;
81
+ if (!node.properties) {
82
+ node.properties = {};
83
+ }
84
+ node.properties["data-expandable"] = "true";
85
+ if (typeof expandableLines === "string" || typeof expandableLines === "number") {
86
+ node.properties["data-expandable-lines"] = expandableLines.toString();
87
+ }
88
+ else if (node.raw) {
89
+ node.properties["data-expandable-lines"] = node.raw.split("\n").length.toString();
90
+ }
91
+ if (languageFromMeta) {
92
+ node.properties["data-language"] = languageFromMeta;
93
+ }
94
+ else if (node.language) {
95
+ node.properties["data-language"] = node.language;
96
+ }
97
+ if (titleFromMeta) {
98
+ node.properties["data-title"] = titleFromMeta;
99
+ }
100
+ else if (node.codeTitle) {
101
+ node.properties["data-title"] = node.codeTitle;
102
+ }
103
+ const className = node.properties.className;
104
+ if (!className) {
105
+ node.properties.className = [];
106
+ }
107
+ // Ensure className includes expandable marker
108
+ if (Array.isArray(node.properties.className)) {
109
+ if (!node.properties.className.includes("mdx-expandable-code")) {
110
+ node.properties.className.push("mdx-expandable-code");
111
+ }
112
+ }
113
+ else if (typeof className === "string") {
114
+ const hasMarker = className.split(" ").includes("mdx-expandable-code");
115
+ if (!hasMarker) {
116
+ node.properties.className = `${className} mdx-expandable-code`
117
+ .trim()
118
+ .split(" ");
119
+ }
120
+ }
121
+ else {
122
+ node.properties.className = ["mdx-expandable-code"];
123
+ }
124
+ if (codeElement?.properties) {
125
+ const cleanedCodeClassList = codeClassList.filter((className) => className !== "mdx-expandable-meta");
126
+ codeElement.properties.className = cleanedCodeClassList;
127
+ }
128
+ });
129
+ };
130
+ //# sourceMappingURL=handleCodeExpandable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCodeExpandable.js","sourceRoot":"","sources":["../../src/plugins/handleCodeExpandable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Node } from "unist";
2
+ export declare const handleCodeTitles: () => (tree: Node) => void;
3
+ //# sourceMappingURL=handleCodeTitles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCodeTitles.d.ts","sourceRoot":"","sources":["../../src/plugins/handleCodeTitles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,OAAO,CAAC;AAoB1C,eAAO,MAAM,gBAAgB,SAAU,MAAM,IAAI,SAiChD,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { visit } from "unist-util-visit";
2
+ export const handleCodeTitles = () => (tree) => {
3
+ visit(tree, "element", (node, index, parent) => {
4
+ if (!parent || index === null || node.tagName !== "div") {
5
+ return;
6
+ }
7
+ const isTitleDiv = node.properties?.className?.includes("rehype-code-title");
8
+ if (!isTitleDiv) {
9
+ return;
10
+ }
11
+ let nextElement = null;
12
+ for (let i = index + 1; i < parent.children.length; i++) {
13
+ const sibling = parent.children[i];
14
+ if (sibling.type === "element") {
15
+ nextElement = sibling;
16
+ break;
17
+ }
18
+ }
19
+ if (nextElement?.tagName === "pre") {
20
+ const titleNode = node.children?.[0];
21
+ if (titleNode?.type === "text") {
22
+ if (!nextElement.properties) {
23
+ nextElement.properties = {};
24
+ }
25
+ nextElement.properties["data-title"] = titleNode.value;
26
+ nextElement.codeTitle = titleNode.value;
27
+ parent.children.splice(index, 1);
28
+ return index;
29
+ }
30
+ }
31
+ });
32
+ };
33
+ //# sourceMappingURL=handleCodeTitles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCodeTitles.js","sourceRoot":"","sources":["../../src/plugins/handleCodeTitles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAmBzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IACjD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAa,EAAE,KAAoB,EAAE,MAAqB,EAAE,EAAE;QAClF,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACtD,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QAED,IAAI,WAAW,GAAmB,IAAI,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,WAAW,GAAG,OAAkB,CAAC;gBACjC,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,WAAW,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAa,CAAC;YACjD,IAAI,SAAS,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBAC1B,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;gBAChC,CAAC;gBACD,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;gBACvD,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;gBACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACjC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,57 +1,56 @@
1
1
  {
2
- "name": "@docubook/core",
3
- "version": "1.3.2",
4
- "description": "Shared MDX compile pipeline and markdown utilities for DocuBook",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
12
- "default": "./dist/index.js"
13
- }
14
- },
15
- "files": [
16
- "dist"
17
- ],
18
- "scripts": {
19
- "build": "tsc -p tsconfig.json",
20
- "clean": "rm -rf dist",
21
- "prepublishOnly": "pnpm run clean && pnpm run build"
22
- },
23
- "keywords": [
24
- "docubook",
25
- "documentation",
26
- "docs framework",
27
- "mdx compile",
28
- "markdown utilities"
29
- ],
30
- "homepage": "https://docubook.pro/",
31
- "repository": {
32
- "type": "git",
33
- "url": "git+https://github.com/DocuBook/docubook.git"
34
- },
35
- "publishConfig": {
36
- "access": "public"
37
- },
38
- "author": "wildan.nrs",
39
- "author-url": "https://wildan.dev",
40
- "license": "MIT",
41
- "dependencies": {
42
- "gray-matter": "^4.0.3",
43
- "next-mdx-remote": "^6.0.0",
44
- "rehype-autolink-headings": "^7.1.0",
45
- "rehype-code-titles": "^1.2.1",
46
- "rehype-prism-plus": "^2.0.2",
47
- "rehype-slug": "^6.0.0",
48
- "remark-gfm": "^4.0.1",
49
- "unist-util-visit": "^5.1.0"
50
- },
51
- "devDependencies": {
52
- "@types/node": "^20.19.37",
53
- "@types/react": "19.2.8",
54
- "@types/unist": "^3.0.3",
55
- "typescript": "^5.9.3"
2
+ "name": "@docubook/core",
3
+ "version": "1.4.0",
4
+ "description": "Shared MDX compile pipeline and markdown utilities for DocuBook",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
56
13
  }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "keywords": [
19
+ "docubook",
20
+ "documentation",
21
+ "docs framework",
22
+ "mdx compile",
23
+ "markdown utilities"
24
+ ],
25
+ "homepage": "https://docubook.pro/",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/DocuBook/docubook.git"
29
+ },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "author": "wildan.nrs",
34
+ "author-url": "https://wildan.dev",
35
+ "license": "MIT",
36
+ "dependencies": {
37
+ "gray-matter": "^4.0.3",
38
+ "next-mdx-remote": "^6.0.0",
39
+ "rehype-autolink-headings": "^7.1.0",
40
+ "rehype-code-titles": "^1.2.1",
41
+ "rehype-prism-plus": "^2.0.2",
42
+ "rehype-slug": "^6.0.0",
43
+ "remark-gfm": "^4.0.1",
44
+ "unist-util-visit": "^5.1.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^20.19.37",
48
+ "@types/react": "19.2.8",
49
+ "@types/unist": "^3.0.3",
50
+ "typescript": "^5.9.3"
51
+ },
52
+ "scripts": {
53
+ "build": "tsc -p tsconfig.json",
54
+ "clean": "rm -rf dist"
55
+ }
57
56
  }