@dogsbay/format-mkdocs 0.2.0-beta.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.
Files changed (145) hide show
  1. package/dist/autodoc/markdown-generator.d.ts +6 -0
  2. package/dist/autodoc/markdown-generator.d.ts.map +1 -0
  3. package/dist/autodoc/markdown-generator.js +242 -0
  4. package/dist/autodoc/markdown-generator.js.map +1 -0
  5. package/dist/autodoc/module-resolver.d.ts +8 -0
  6. package/dist/autodoc/module-resolver.d.ts.map +1 -0
  7. package/dist/autodoc/module-resolver.js +218 -0
  8. package/dist/autodoc/module-resolver.js.map +1 -0
  9. package/dist/autodoc/python-docstring.d.ts +7 -0
  10. package/dist/autodoc/python-docstring.d.ts.map +1 -0
  11. package/dist/autodoc/python-docstring.js +324 -0
  12. package/dist/autodoc/python-docstring.js.map +1 -0
  13. package/dist/autodoc/python-parser.d.ts +10 -0
  14. package/dist/autodoc/python-parser.d.ts.map +1 -0
  15. package/dist/autodoc/python-parser.js +541 -0
  16. package/dist/autodoc/python-parser.js.map +1 -0
  17. package/dist/autodoc/tree-builder.d.ts +9 -0
  18. package/dist/autodoc/tree-builder.d.ts.map +1 -0
  19. package/dist/autodoc/tree-builder.js +279 -0
  20. package/dist/autodoc/tree-builder.js.map +1 -0
  21. package/dist/autodoc/types.d.ts +128 -0
  22. package/dist/autodoc/types.d.ts.map +1 -0
  23. package/dist/autodoc/types.js +2 -0
  24. package/dist/autodoc/types.js.map +1 -0
  25. package/dist/cli.d.ts +3 -0
  26. package/dist/cli.d.ts.map +1 -0
  27. package/dist/cli.js +32 -0
  28. package/dist/cli.js.map +1 -0
  29. package/dist/export/to-astro.d.ts +26 -0
  30. package/dist/export/to-astro.d.ts.map +1 -0
  31. package/dist/export/to-astro.js +551 -0
  32. package/dist/export/to-astro.js.map +1 -0
  33. package/dist/export/to-mkdocs-project.d.ts +27 -0
  34. package/dist/export/to-mkdocs-project.d.ts.map +1 -0
  35. package/dist/export/to-mkdocs-project.js +192 -0
  36. package/dist/export/to-mkdocs-project.js.map +1 -0
  37. package/dist/export/to-mkdocs.d.ts +6 -0
  38. package/dist/export/to-mkdocs.d.ts.map +1 -0
  39. package/dist/export/to-mkdocs.js +178 -0
  40. package/dist/export/to-mkdocs.js.map +1 -0
  41. package/dist/importer.d.ts +30 -0
  42. package/dist/importer.d.ts.map +1 -0
  43. package/dist/importer.js +376 -0
  44. package/dist/importer.js.map +1 -0
  45. package/dist/index.d.ts +57 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +170 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/inline-walker.d.ts +17 -0
  50. package/dist/inline-walker.d.ts.map +1 -0
  51. package/dist/inline-walker.js +167 -0
  52. package/dist/inline-walker.js.map +1 -0
  53. package/dist/loader.d.ts +42 -0
  54. package/dist/loader.d.ts.map +1 -0
  55. package/dist/loader.js +765 -0
  56. package/dist/loader.js.map +1 -0
  57. package/dist/parse.d.ts +12 -0
  58. package/dist/parse.d.ts.map +1 -0
  59. package/dist/parse.js +46 -0
  60. package/dist/parse.js.map +1 -0
  61. package/dist/renderers/mermaid.d.ts +9 -0
  62. package/dist/renderers/mermaid.d.ts.map +1 -0
  63. package/dist/renderers/mermaid.js +117 -0
  64. package/dist/renderers/mermaid.js.map +1 -0
  65. package/dist/rules/admonition.d.ts +6 -0
  66. package/dist/rules/admonition.d.ts.map +1 -0
  67. package/dist/rules/admonition.js +73 -0
  68. package/dist/rules/admonition.js.map +1 -0
  69. package/dist/rules/annotations.d.ts +6 -0
  70. package/dist/rules/annotations.d.ts.map +1 -0
  71. package/dist/rules/annotations.js +57 -0
  72. package/dist/rules/annotations.js.map +1 -0
  73. package/dist/rules/autodoc.d.ts +7 -0
  74. package/dist/rules/autodoc.d.ts.map +1 -0
  75. package/dist/rules/autodoc.js +102 -0
  76. package/dist/rules/autodoc.js.map +1 -0
  77. package/dist/rules/blocks.d.ts +6 -0
  78. package/dist/rules/blocks.d.ts.map +1 -0
  79. package/dist/rules/blocks.js +172 -0
  80. package/dist/rules/blocks.js.map +1 -0
  81. package/dist/rules/content-tabs.d.ts +6 -0
  82. package/dist/rules/content-tabs.d.ts.map +1 -0
  83. package/dist/rules/content-tabs.js +67 -0
  84. package/dist/rules/content-tabs.js.map +1 -0
  85. package/dist/rules/docusaurus-admonitions.d.ts +7 -0
  86. package/dist/rules/docusaurus-admonitions.d.ts.map +1 -0
  87. package/dist/rules/docusaurus-admonitions.js +101 -0
  88. package/dist/rules/docusaurus-admonitions.js.map +1 -0
  89. package/dist/rules/file-include.d.ts +28 -0
  90. package/dist/rules/file-include.d.ts.map +1 -0
  91. package/dist/rules/file-include.js +198 -0
  92. package/dist/rules/file-include.js.map +1 -0
  93. package/dist/rules/footnotes.d.ts +6 -0
  94. package/dist/rules/footnotes.d.ts.map +1 -0
  95. package/dist/rules/footnotes.js +161 -0
  96. package/dist/rules/footnotes.js.map +1 -0
  97. package/dist/rules/icon-shortcode.d.ts +30 -0
  98. package/dist/rules/icon-shortcode.d.ts.map +1 -0
  99. package/dist/rules/icon-shortcode.js +169 -0
  100. package/dist/rules/icon-shortcode.js.map +1 -0
  101. package/dist/rules/keys.d.ts +6 -0
  102. package/dist/rules/keys.d.ts.map +1 -0
  103. package/dist/rules/keys.js +30 -0
  104. package/dist/rules/keys.js.map +1 -0
  105. package/dist/rules/link-rewrite.d.ts +7 -0
  106. package/dist/rules/link-rewrite.d.ts.map +1 -0
  107. package/dist/rules/link-rewrite.js +93 -0
  108. package/dist/rules/link-rewrite.js.map +1 -0
  109. package/dist/rules/math.d.ts +14 -0
  110. package/dist/rules/math.d.ts.map +1 -0
  111. package/dist/rules/math.js +114 -0
  112. package/dist/rules/math.js.map +1 -0
  113. package/dist/rules/md-in-html.d.ts +6 -0
  114. package/dist/rules/md-in-html.d.ts.map +1 -0
  115. package/dist/rules/md-in-html.js +135 -0
  116. package/dist/rules/md-in-html.js.map +1 -0
  117. package/dist/rules/snippets.d.ts +10 -0
  118. package/dist/rules/snippets.d.ts.map +1 -0
  119. package/dist/rules/snippets.js +109 -0
  120. package/dist/rules/snippets.js.map +1 -0
  121. package/dist/rules/templates.d.ts +15 -0
  122. package/dist/rules/templates.d.ts.map +1 -0
  123. package/dist/rules/templates.js +105 -0
  124. package/dist/rules/templates.js.map +1 -0
  125. package/dist/rules/variants.d.ts +12 -0
  126. package/dist/rules/variants.d.ts.map +1 -0
  127. package/dist/rules/variants.js +148 -0
  128. package/dist/rules/variants.js.map +1 -0
  129. package/dist/tree.d.ts +2 -0
  130. package/dist/tree.d.ts.map +1 -0
  131. package/dist/tree.js +2 -0
  132. package/dist/tree.js.map +1 -0
  133. package/dist/utils/indent.d.ts +18 -0
  134. package/dist/utils/indent.d.ts.map +1 -0
  135. package/dist/utils/indent.js +56 -0
  136. package/dist/utils/indent.js.map +1 -0
  137. package/dist/utils/types.d.ts +19 -0
  138. package/dist/utils/types.d.ts.map +1 -0
  139. package/dist/utils/types.js +63 -0
  140. package/dist/utils/types.js.map +1 -0
  141. package/dist/walker.d.ts +8 -0
  142. package/dist/walker.d.ts.map +1 -0
  143. package/dist/walker.js +193 -0
  144. package/dist/walker.js.map +1 -0
  145. package/package.json +71 -0
@@ -0,0 +1,192 @@
1
+ import { treeToMkdocs } from "./to-mkdocs.js";
2
+ /**
3
+ * Export a set of pages + navigation to a complete MkDocs project.
4
+ * Returns file map (path → content) including mkdocs.yml and all .md files.
5
+ */
6
+ export function exportMkdocsProject(pages, nav, options) {
7
+ const files = new Map();
8
+ // Generate markdown files
9
+ const allTrees = [];
10
+ for (const page of pages) {
11
+ const md = treeToMkdocs(page.tree);
12
+ const filePath = `docs/${page.slug}.md`;
13
+ files.set(filePath, md);
14
+ allTrees.push(page.tree);
15
+ }
16
+ // Auto-detect required extensions from tree content
17
+ const extensions = detectExtensions(allTrees, options.extraExtensions);
18
+ // Convert nav to mkdocs.yml nav format
19
+ const navYaml = navToYaml(nav, pages);
20
+ // Generate mkdocs.yml
21
+ const yml = buildMkdocsYml(options, extensions, navYaml);
22
+ files.set("mkdocs.yml", yml);
23
+ return { files, mkdocsYml: yml };
24
+ }
25
+ // ── Extension Detection ─────────────────────────────────────────
26
+ /**
27
+ * Walk all trees and detect which MkDocs extensions are needed
28
+ * based on which TreeNode types appear.
29
+ */
30
+ function detectExtensions(allTrees, extra) {
31
+ const found = new Set();
32
+ // Always include these basics
33
+ found.add("toc:\n permalink: true");
34
+ for (const tree of allTrees) {
35
+ walkForExtensions(tree, found);
36
+ }
37
+ if (extra) {
38
+ for (const e of extra)
39
+ found.add(e);
40
+ }
41
+ return [...found];
42
+ }
43
+ function walkForExtensions(nodes, found) {
44
+ for (const node of nodes) {
45
+ switch (node.type) {
46
+ case "callout":
47
+ found.add("admonition");
48
+ break;
49
+ case "details":
50
+ found.add("admonition");
51
+ found.add("pymdownx.details");
52
+ break;
53
+ case "tabs":
54
+ case "tab":
55
+ found.add("pymdownx.tabbed:\n alternate_style: true");
56
+ break;
57
+ case "code": {
58
+ found.add("pymdownx.highlight:\n anchor_linenums: true");
59
+ found.add("pymdownx.superfences");
60
+ if (node.props?.hasAnnotations) {
61
+ found.add("pymdownx.superfences");
62
+ }
63
+ break;
64
+ }
65
+ case "deflist":
66
+ case "dt":
67
+ case "dd":
68
+ found.add("def_list");
69
+ break;
70
+ case "html-container":
71
+ found.add("md_in_html");
72
+ break;
73
+ case "task-list":
74
+ case "task-item":
75
+ found.add("pymdownx.tasklist:\n custom_checkbox: true");
76
+ break;
77
+ case "math":
78
+ case "math-inline":
79
+ found.add("pymdownx.arithmatex:\n generic: true");
80
+ break;
81
+ case "footnote":
82
+ case "footnote-ref":
83
+ found.add("footnotes");
84
+ break;
85
+ }
86
+ if (node.children)
87
+ walkForExtensions(node.children, found);
88
+ }
89
+ }
90
+ // ── Nav Conversion ──────────────────────────────────────────────
91
+ /**
92
+ * Convert NavItem[] to mkdocs.yml nav YAML string.
93
+ *
94
+ * MkDocs nav format:
95
+ * - Home: index.md
96
+ * - Section:
97
+ * - Page: path.md
98
+ */
99
+ function navToYaml(items, pages, indent = 2) {
100
+ const lines = [];
101
+ const prefix = " ".repeat(indent);
102
+ for (const item of items) {
103
+ if (item.children && item.children.length > 0) {
104
+ // Group with children
105
+ if (item.href) {
106
+ // Group has its own page + children
107
+ lines.push(`${prefix}- ${item.label}:`);
108
+ const slug = hrefToSlug(item.href, pages);
109
+ if (slug) {
110
+ lines.push(`${prefix} - ${item.label}: ${slug}.md`);
111
+ }
112
+ lines.push(navToYaml(item.children, pages, indent + 4));
113
+ }
114
+ else {
115
+ // Group without own page
116
+ lines.push(`${prefix}- ${item.label}:`);
117
+ lines.push(navToYaml(item.children, pages, indent + 4));
118
+ }
119
+ }
120
+ else if (item.href) {
121
+ // Leaf page
122
+ const slug = hrefToSlug(item.href, pages);
123
+ if (slug) {
124
+ lines.push(`${prefix}- ${item.label}: ${slug}.md`);
125
+ }
126
+ }
127
+ }
128
+ return lines.filter(Boolean).join("\n");
129
+ }
130
+ /**
131
+ * Convert an href ("/mkdocs/configuring") to a slug ("configuring")
132
+ * by matching against known pages.
133
+ */
134
+ function hrefToSlug(href, pages) {
135
+ // Strip leading path prefix — take the last segment(s)
136
+ const parts = href.replace(/^\//, "").split("/");
137
+ // Try matching against page slugs
138
+ for (const page of pages) {
139
+ // Exact match on slug
140
+ if (parts.join("/") === page.slug || parts.slice(1).join("/") === page.slug) {
141
+ return page.slug;
142
+ }
143
+ // Match on last segment
144
+ if (parts[parts.length - 1] === page.slug.split("/").pop()) {
145
+ return page.slug;
146
+ }
147
+ }
148
+ // Fallback: use last path segment
149
+ return parts[parts.length - 1] || null;
150
+ }
151
+ // ── YAML Generation ─────────────────────────────────────────────
152
+ function buildMkdocsYml(options, extensions, navYaml) {
153
+ const lines = [];
154
+ lines.push(`site_name: ${options.siteName}`);
155
+ if (options.siteUrl)
156
+ lines.push(`site_url: ${options.siteUrl}`);
157
+ if (options.repoUrl)
158
+ lines.push(`repo_url: ${options.repoUrl}`);
159
+ lines.push("");
160
+ // Theme
161
+ lines.push("theme:");
162
+ lines.push(` name: ${options.theme ?? "material"}`);
163
+ lines.push(" features:");
164
+ lines.push(" - content.code.copy");
165
+ lines.push(" - navigation.instant");
166
+ lines.push(" - navigation.tracking");
167
+ lines.push(" - navigation.sections");
168
+ lines.push(" - toc.integrate");
169
+ lines.push("");
170
+ // Nav
171
+ lines.push("nav:");
172
+ lines.push(navYaml);
173
+ lines.push("");
174
+ // Extensions
175
+ lines.push("markdown_extensions:");
176
+ for (const ext of extensions) {
177
+ if (ext.includes("\n")) {
178
+ // Multi-line extension config (e.g. "pymdownx.tabbed:\n alternate_style: true")
179
+ const extLines = ext.split("\n");
180
+ lines.push(` - ${extLines[0]}`);
181
+ for (let i = 1; i < extLines.length; i++) {
182
+ lines.push(` ${extLines[i].trimStart()}`);
183
+ }
184
+ }
185
+ else {
186
+ lines.push(` - ${ext}`);
187
+ }
188
+ }
189
+ lines.push("");
190
+ return lines.join("\n");
191
+ }
192
+ //# sourceMappingURL=to-mkdocs-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-mkdocs-project.js","sourceRoot":"","sources":["../../src/export/to-mkdocs-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { TreeNode } from "../tree.js";
2
+ /**
3
+ * Convert a TreeNode[] back to MkDocs-compatible Markdown.
4
+ */
5
+ export declare function treeToMkdocs(nodes: TreeNode[]): string;
6
+ //# sourceMappingURL=to-mkdocs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-mkdocs.d.ts","sourceRoot":"","sources":["../../src/export/to-mkdocs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Convert a TreeNode[] back to MkDocs-compatible Markdown.
3
+ */
4
+ export function treeToMkdocs(nodes) {
5
+ return nodes.map(nodeToMkdocs).join("\n\n");
6
+ }
7
+ function nodeToMkdocs(node) {
8
+ switch (node.type) {
9
+ case "frontmatter":
10
+ return `---\n${node.props?.content ?? ""}\n---`;
11
+ case "references":
12
+ return referencesToMkdocs(node);
13
+ case "callout":
14
+ return calloutToMkdocs(node);
15
+ case "details":
16
+ return detailsToMkdocs(node);
17
+ case "tabs":
18
+ return tabsToMkdocs(node);
19
+ case "tab":
20
+ return tabToMkdocs(node);
21
+ case "code":
22
+ return codeToMkdocs(node);
23
+ case "diagram":
24
+ return diagramToMkdocs(node);
25
+ case "annotation-list":
26
+ return annotationListToMkdocs(node);
27
+ case "heading":
28
+ return headingToMkdocs(node);
29
+ case "paragraph":
30
+ return childrenToMkdocs(node);
31
+ case "prose":
32
+ return node.html ?? "";
33
+ case "blockquote":
34
+ return blockquoteToMkdocs(node);
35
+ case "ordered-list":
36
+ return orderedListToMkdocs(node);
37
+ case "unordered-list":
38
+ return unorderedListToMkdocs(node);
39
+ case "list-item":
40
+ return childrenToMkdocs(node);
41
+ case "html-container":
42
+ return htmlContainerToMkdocs(node);
43
+ case "hr":
44
+ return "---";
45
+ case "html":
46
+ return node.html ?? "";
47
+ default:
48
+ return node.html ?? childrenToMkdocs(node);
49
+ }
50
+ }
51
+ function calloutToMkdocs(node) {
52
+ const variant = node.props?.variant ?? "note";
53
+ const title = node.props?.title;
54
+ const inline = node.props?.inline;
55
+ let opener = "!!!";
56
+ let line = `${opener} ${variant}`;
57
+ if (inline)
58
+ line += ` ${inline}`;
59
+ line += titleSuffix(variant, title);
60
+ const inner = childrenToMkdocs(node);
61
+ if (!inner)
62
+ return line;
63
+ return `${line}\n\n${indent(inner, 4)}`;
64
+ }
65
+ function detailsToMkdocs(node) {
66
+ const variant = node.props?.variant ?? "note";
67
+ const title = node.props?.title;
68
+ const open = node.props?.open;
69
+ const opener = open ? "???+" : "???";
70
+ let line = `${opener} ${variant}`;
71
+ line += titleSuffix(variant, title);
72
+ const inner = childrenToMkdocs(node);
73
+ if (!inner)
74
+ return line;
75
+ return `${line}\n\n${indent(inner, 4)}`;
76
+ }
77
+ function tabsToMkdocs(node) {
78
+ if (!node.children)
79
+ return "";
80
+ return node.children.map(nodeToMkdocs).join("\n\n");
81
+ }
82
+ function tabToMkdocs(node) {
83
+ const title = node.props?.title ?? "Tab";
84
+ const inner = childrenToMkdocs(node);
85
+ if (!inner)
86
+ return `=== "${title}"`;
87
+ return `=== "${title}"\n\n${indent(inner, 4)}`;
88
+ }
89
+ function codeToMkdocs(node) {
90
+ const lang = node.props?.lang ?? "";
91
+ const code = (node.props?.code ?? "").replace(/\n$/, "");
92
+ const fence = node.props?.fence ?? "```";
93
+ return `${fence}${lang}\n${code}\n${fence}`;
94
+ }
95
+ function diagramToMkdocs(node) {
96
+ const lang = node.props?.lang ?? "mermaid";
97
+ const code = (node.props?.code ?? "").replace(/\n$/, "");
98
+ return `\`\`\`${lang}\n${code}\n\`\`\``;
99
+ }
100
+ function referencesToMkdocs(node) {
101
+ const entries = (node.props?.entries ?? []);
102
+ return entries
103
+ .map((e) => {
104
+ let line = `[${e.label}]: ${e.href}`;
105
+ if (e.title)
106
+ line += ` "${e.title}"`;
107
+ return line;
108
+ })
109
+ .join("\n");
110
+ }
111
+ function annotationListToMkdocs(node) {
112
+ return childrenToMkdocs(node);
113
+ }
114
+ function headingToMkdocs(node) {
115
+ const level = node.props?.level ?? 1;
116
+ const hashes = "#".repeat(level);
117
+ const text = childrenToMkdocs(node);
118
+ return `${hashes} ${text}`;
119
+ }
120
+ function blockquoteToMkdocs(node) {
121
+ const inner = childrenToMkdocs(node);
122
+ return inner
123
+ .split("\n")
124
+ .map((line) => (line ? `> ${line}` : ">"))
125
+ .join("\n");
126
+ }
127
+ function orderedListToMkdocs(node) {
128
+ if (!node.children)
129
+ return "";
130
+ return node.children
131
+ .map((child, i) => {
132
+ const text = nodeToMkdocs(child);
133
+ return `${i + 1}. ${text}`;
134
+ })
135
+ .join("\n");
136
+ }
137
+ function unorderedListToMkdocs(node) {
138
+ if (!node.children)
139
+ return "";
140
+ return node.children
141
+ .map((child) => {
142
+ const text = nodeToMkdocs(child);
143
+ return `- ${text}`;
144
+ })
145
+ .join("\n");
146
+ }
147
+ function htmlContainerToMkdocs(node) {
148
+ const tag = node.props?.tag ?? "div";
149
+ const attrs = node.props?.attrs ?? {};
150
+ const attrStr = Object.entries(attrs)
151
+ .map(([k, v]) => (v ? ` ${k}="${v}"` : ` ${k}`))
152
+ .join("");
153
+ const inner = childrenToMkdocs(node);
154
+ return `<${tag}${attrStr} markdown>\n\n${inner}\n\n</${tag}>`;
155
+ }
156
+ function childrenToMkdocs(node) {
157
+ if (!node.children || node.children.length === 0)
158
+ return "";
159
+ return node.children.map(nodeToMkdocs).join("\n\n");
160
+ }
161
+ function titleSuffix(variant, title) {
162
+ if (title === null)
163
+ return ' ""';
164
+ if (title === undefined)
165
+ return "";
166
+ const autoTitle = variant.charAt(0).toUpperCase() + variant.slice(1);
167
+ if (title === autoTitle)
168
+ return "";
169
+ return ` "${title}"`;
170
+ }
171
+ function indent(text, spaces) {
172
+ const prefix = " ".repeat(spaces);
173
+ return text
174
+ .split("\n")
175
+ .map((line) => (line ? `${prefix}${line}` : line))
176
+ .join("\n");
177
+ }
178
+ //# sourceMappingURL=to-mkdocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-mkdocs.js","sourceRoot":"","sources":["../../src/export/to-mkdocs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ExportPage, NavItem } from "@dogsbay/types";
2
+ /**
3
+ * Parsed MkDocs project config — extracted from mkdocs.yml.
4
+ */
5
+ export interface MkdocsConfig {
6
+ siteName: string;
7
+ docsDir: string;
8
+ repoUrl?: string;
9
+ editUri?: string;
10
+ copyright?: string;
11
+ extensions: (string | Record<string, unknown>)[];
12
+ raw: Record<string, unknown>;
13
+ }
14
+ /**
15
+ * Result of importing a MkDocs project.
16
+ */
17
+ export interface MkdocsImportResult {
18
+ pages: ExportPage[];
19
+ nav: NavItem[];
20
+ config: MkdocsConfig;
21
+ }
22
+ /**
23
+ * Read and parse mkdocs.yml.
24
+ */
25
+ export declare function readMkdocsConfig(sourceDir: string): MkdocsConfig;
26
+ /**
27
+ * Import a MkDocs project: parse all pages and extract navigation.
28
+ */
29
+ export declare function importMkdocsProject(sourceDir: string, opts?: Record<string, unknown>): Promise<MkdocsImportResult>;
30
+ //# sourceMappingURL=importer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK1D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAgBhE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAyJ7B"}