@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.
- package/dist/autodoc/markdown-generator.d.ts +6 -0
- package/dist/autodoc/markdown-generator.d.ts.map +1 -0
- package/dist/autodoc/markdown-generator.js +242 -0
- package/dist/autodoc/markdown-generator.js.map +1 -0
- package/dist/autodoc/module-resolver.d.ts +8 -0
- package/dist/autodoc/module-resolver.d.ts.map +1 -0
- package/dist/autodoc/module-resolver.js +218 -0
- package/dist/autodoc/module-resolver.js.map +1 -0
- package/dist/autodoc/python-docstring.d.ts +7 -0
- package/dist/autodoc/python-docstring.d.ts.map +1 -0
- package/dist/autodoc/python-docstring.js +324 -0
- package/dist/autodoc/python-docstring.js.map +1 -0
- package/dist/autodoc/python-parser.d.ts +10 -0
- package/dist/autodoc/python-parser.d.ts.map +1 -0
- package/dist/autodoc/python-parser.js +541 -0
- package/dist/autodoc/python-parser.js.map +1 -0
- package/dist/autodoc/tree-builder.d.ts +9 -0
- package/dist/autodoc/tree-builder.d.ts.map +1 -0
- package/dist/autodoc/tree-builder.js +279 -0
- package/dist/autodoc/tree-builder.js.map +1 -0
- package/dist/autodoc/types.d.ts +128 -0
- package/dist/autodoc/types.d.ts.map +1 -0
- package/dist/autodoc/types.js +2 -0
- package/dist/autodoc/types.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +32 -0
- package/dist/cli.js.map +1 -0
- package/dist/export/to-astro.d.ts +26 -0
- package/dist/export/to-astro.d.ts.map +1 -0
- package/dist/export/to-astro.js +551 -0
- package/dist/export/to-astro.js.map +1 -0
- package/dist/export/to-mkdocs-project.d.ts +27 -0
- package/dist/export/to-mkdocs-project.d.ts.map +1 -0
- package/dist/export/to-mkdocs-project.js +192 -0
- package/dist/export/to-mkdocs-project.js.map +1 -0
- package/dist/export/to-mkdocs.d.ts +6 -0
- package/dist/export/to-mkdocs.d.ts.map +1 -0
- package/dist/export/to-mkdocs.js +178 -0
- package/dist/export/to-mkdocs.js.map +1 -0
- package/dist/importer.d.ts +30 -0
- package/dist/importer.d.ts.map +1 -0
- package/dist/importer.js +376 -0
- package/dist/importer.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +170 -0
- package/dist/index.js.map +1 -0
- package/dist/inline-walker.d.ts +17 -0
- package/dist/inline-walker.d.ts.map +1 -0
- package/dist/inline-walker.js +167 -0
- package/dist/inline-walker.js.map +1 -0
- package/dist/loader.d.ts +42 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +765 -0
- package/dist/loader.js.map +1 -0
- package/dist/parse.d.ts +12 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +46 -0
- package/dist/parse.js.map +1 -0
- package/dist/renderers/mermaid.d.ts +9 -0
- package/dist/renderers/mermaid.d.ts.map +1 -0
- package/dist/renderers/mermaid.js +117 -0
- package/dist/renderers/mermaid.js.map +1 -0
- package/dist/rules/admonition.d.ts +6 -0
- package/dist/rules/admonition.d.ts.map +1 -0
- package/dist/rules/admonition.js +73 -0
- package/dist/rules/admonition.js.map +1 -0
- package/dist/rules/annotations.d.ts +6 -0
- package/dist/rules/annotations.d.ts.map +1 -0
- package/dist/rules/annotations.js +57 -0
- package/dist/rules/annotations.js.map +1 -0
- package/dist/rules/autodoc.d.ts +7 -0
- package/dist/rules/autodoc.d.ts.map +1 -0
- package/dist/rules/autodoc.js +102 -0
- package/dist/rules/autodoc.js.map +1 -0
- package/dist/rules/blocks.d.ts +6 -0
- package/dist/rules/blocks.d.ts.map +1 -0
- package/dist/rules/blocks.js +172 -0
- package/dist/rules/blocks.js.map +1 -0
- package/dist/rules/content-tabs.d.ts +6 -0
- package/dist/rules/content-tabs.d.ts.map +1 -0
- package/dist/rules/content-tabs.js +67 -0
- package/dist/rules/content-tabs.js.map +1 -0
- package/dist/rules/docusaurus-admonitions.d.ts +7 -0
- package/dist/rules/docusaurus-admonitions.d.ts.map +1 -0
- package/dist/rules/docusaurus-admonitions.js +101 -0
- package/dist/rules/docusaurus-admonitions.js.map +1 -0
- package/dist/rules/file-include.d.ts +28 -0
- package/dist/rules/file-include.d.ts.map +1 -0
- package/dist/rules/file-include.js +198 -0
- package/dist/rules/file-include.js.map +1 -0
- package/dist/rules/footnotes.d.ts +6 -0
- package/dist/rules/footnotes.d.ts.map +1 -0
- package/dist/rules/footnotes.js +161 -0
- package/dist/rules/footnotes.js.map +1 -0
- package/dist/rules/icon-shortcode.d.ts +30 -0
- package/dist/rules/icon-shortcode.d.ts.map +1 -0
- package/dist/rules/icon-shortcode.js +169 -0
- package/dist/rules/icon-shortcode.js.map +1 -0
- package/dist/rules/keys.d.ts +6 -0
- package/dist/rules/keys.d.ts.map +1 -0
- package/dist/rules/keys.js +30 -0
- package/dist/rules/keys.js.map +1 -0
- package/dist/rules/link-rewrite.d.ts +7 -0
- package/dist/rules/link-rewrite.d.ts.map +1 -0
- package/dist/rules/link-rewrite.js +93 -0
- package/dist/rules/link-rewrite.js.map +1 -0
- package/dist/rules/math.d.ts +14 -0
- package/dist/rules/math.d.ts.map +1 -0
- package/dist/rules/math.js +114 -0
- package/dist/rules/math.js.map +1 -0
- package/dist/rules/md-in-html.d.ts +6 -0
- package/dist/rules/md-in-html.d.ts.map +1 -0
- package/dist/rules/md-in-html.js +135 -0
- package/dist/rules/md-in-html.js.map +1 -0
- package/dist/rules/snippets.d.ts +10 -0
- package/dist/rules/snippets.d.ts.map +1 -0
- package/dist/rules/snippets.js +109 -0
- package/dist/rules/snippets.js.map +1 -0
- package/dist/rules/templates.d.ts +15 -0
- package/dist/rules/templates.d.ts.map +1 -0
- package/dist/rules/templates.js +105 -0
- package/dist/rules/templates.js.map +1 -0
- package/dist/rules/variants.d.ts +12 -0
- package/dist/rules/variants.d.ts.map +1 -0
- package/dist/rules/variants.js +148 -0
- package/dist/rules/variants.js.map +1 -0
- package/dist/tree.d.ts +2 -0
- package/dist/tree.d.ts.map +1 -0
- package/dist/tree.js +2 -0
- package/dist/tree.js.map +1 -0
- package/dist/utils/indent.d.ts +18 -0
- package/dist/utils/indent.d.ts.map +1 -0
- package/dist/utils/indent.js +56 -0
- package/dist/utils/indent.js.map +1 -0
- package/dist/utils/types.d.ts +19 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +63 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/walker.d.ts +8 -0
- package/dist/walker.d.ts.map +1 -0
- package/dist/walker.js +193 -0
- package/dist/walker.js.map +1 -0
- package/package.json +71 -0
package/dist/importer.js
ADDED
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MkDocs project importer.
|
|
3
|
+
*
|
|
4
|
+
* Reads a MkDocs project directory (containing mkdocs.yml) and produces
|
|
5
|
+
* ExportPage[] + NavItem[] — the universal format contract.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
8
|
+
import { join, relative, basename, dirname, resolve } from "node:path";
|
|
9
|
+
import MarkdownIt from "markdown-it";
|
|
10
|
+
import YAML from "yaml";
|
|
11
|
+
import { parseMeta } from "@dogsbay/types";
|
|
12
|
+
import { mkdocsPlugin, configureFromMkdocs } from "./index.js";
|
|
13
|
+
import { parseMkdocsMarkdown } from "./loader.js";
|
|
14
|
+
/**
|
|
15
|
+
* Read and parse mkdocs.yml.
|
|
16
|
+
*/
|
|
17
|
+
export function readMkdocsConfig(sourceDir) {
|
|
18
|
+
const ymlPath = join(sourceDir, "mkdocs.yml");
|
|
19
|
+
if (!existsSync(ymlPath)) {
|
|
20
|
+
throw new Error(`No mkdocs.yml found in ${sourceDir}`);
|
|
21
|
+
}
|
|
22
|
+
const raw = YAML.parse(readFileSync(ymlPath, "utf-8"));
|
|
23
|
+
return {
|
|
24
|
+
siteName: raw.site_name || "Documentation",
|
|
25
|
+
docsDir: raw.docs_dir || "docs",
|
|
26
|
+
repoUrl: raw.repo_url,
|
|
27
|
+
editUri: raw.edit_uri,
|
|
28
|
+
copyright: raw.copyright,
|
|
29
|
+
extensions: normalizeExtensions(raw.markdown_extensions),
|
|
30
|
+
raw,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Import a MkDocs project: parse all pages and extract navigation.
|
|
35
|
+
*/
|
|
36
|
+
export async function importMkdocsProject(sourceDir, opts = {}) {
|
|
37
|
+
const config = readMkdocsConfig(sourceDir);
|
|
38
|
+
const fullDocsDir = join(sourceDir, config.docsDir);
|
|
39
|
+
if (!existsSync(fullDocsDir)) {
|
|
40
|
+
throw new Error(`docs directory not found at ${fullDocsDir}`);
|
|
41
|
+
}
|
|
42
|
+
// Build markdown-it instance with detected extensions
|
|
43
|
+
const pluginOpts = configureFromMkdocs(config.extensions);
|
|
44
|
+
// Always enable core features
|
|
45
|
+
pluginOpts.footnotes = true;
|
|
46
|
+
// Detect file includes
|
|
47
|
+
// mdx_include resolves {!> path !} relative to the mkdocs.yml directory (sourceDir),
|
|
48
|
+
// not the docs content directory. E.g. FastAPI's {!> ../../docs_src/...!} resolves
|
|
49
|
+
// from docs/en/ (where mkdocs.yml is), reaching fastapi/docs_src/.
|
|
50
|
+
const docsSrcDir = findDocsSrc(sourceDir);
|
|
51
|
+
if (docsSrcDir || hasExtension(config.extensions, "mdx_include")) {
|
|
52
|
+
pluginOpts.fileInclude = {
|
|
53
|
+
root: sourceDir,
|
|
54
|
+
docsDir: sourceDir,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// Detect variant tabs (Python version variants like _an_py310)
|
|
58
|
+
if (hasExtension(config.extensions, "markdown_include_variants")) {
|
|
59
|
+
pluginOpts.variants = { docsDir: fullDocsDir };
|
|
60
|
+
}
|
|
61
|
+
// Detect macros/templates ({{ var }} nunjucks syntax)
|
|
62
|
+
const macrosData = extractMacrosData(config.raw, sourceDir);
|
|
63
|
+
if (macrosData && Object.keys(macrosData).length > 0) {
|
|
64
|
+
pluginOpts.templates = { dataFiles: macrosData };
|
|
65
|
+
}
|
|
66
|
+
const md = new MarkdownIt({ html: true, linkify: true, typographer: true });
|
|
67
|
+
const mdOpts = {
|
|
68
|
+
...pluginOpts,
|
|
69
|
+
snippets: { root: join(sourceDir, "includes"), autoAppend: ["mkdocs.md"] },
|
|
70
|
+
linkRewrite: false,
|
|
71
|
+
math: true,
|
|
72
|
+
};
|
|
73
|
+
md.use(mkdocsPlugin, mdOpts);
|
|
74
|
+
// Parse options
|
|
75
|
+
const parseOpts = {
|
|
76
|
+
collapse: false,
|
|
77
|
+
youtubeEmbed: true,
|
|
78
|
+
diagrams: true,
|
|
79
|
+
};
|
|
80
|
+
// Detect mkdocstrings autodoc config
|
|
81
|
+
const mkdocstringsConfig = extractMkdocstringsConfig(config.raw, sourceDir);
|
|
82
|
+
if (mkdocstringsConfig) {
|
|
83
|
+
const autodocOpts = {
|
|
84
|
+
sourceRoot: mkdocstringsConfig.sourceRoot,
|
|
85
|
+
};
|
|
86
|
+
if (mkdocstringsConfig.handlerOptions) {
|
|
87
|
+
const globalOpts = {};
|
|
88
|
+
const ho = mkdocstringsConfig.handlerOptions;
|
|
89
|
+
const optionMap = {
|
|
90
|
+
show_source: "showSource",
|
|
91
|
+
show_bases: "showBases",
|
|
92
|
+
show_signature: "showSignature",
|
|
93
|
+
unwrap_annotated: "unwrapAnnotated",
|
|
94
|
+
group_by_category: "groupByCategory",
|
|
95
|
+
show_root_full_path: "showRootFullPath",
|
|
96
|
+
show_root_heading: "showRootHeading",
|
|
97
|
+
show_if_no_docstring: "showIfNoDocstring",
|
|
98
|
+
inherited_members: "inheritedMembers",
|
|
99
|
+
merge_init_into_class: "mergeInitIntoClass",
|
|
100
|
+
separate_signature: "separateSignature",
|
|
101
|
+
members_order: "membersOrder",
|
|
102
|
+
filters: "filters",
|
|
103
|
+
heading_level: "headingLevel",
|
|
104
|
+
};
|
|
105
|
+
for (const [snake, camel] of Object.entries(optionMap)) {
|
|
106
|
+
if (ho[snake] !== undefined)
|
|
107
|
+
globalOpts[camel] = ho[snake];
|
|
108
|
+
}
|
|
109
|
+
if (Object.keys(globalOpts).length > 0)
|
|
110
|
+
autodocOpts.globalOptions = globalOpts;
|
|
111
|
+
}
|
|
112
|
+
parseOpts.autodoc = autodocOpts;
|
|
113
|
+
}
|
|
114
|
+
// Find and parse all markdown files
|
|
115
|
+
const mdFiles = findMarkdownFiles(fullDocsDir);
|
|
116
|
+
const pages = [];
|
|
117
|
+
// Taxonomy names declared in dogsbay.config.yml's `taxonomies:` block
|
|
118
|
+
// (threaded through cli's import-content.ts). parseMeta uses these to
|
|
119
|
+
// lift user-declared taxonomy keys into meta.taxonomies.
|
|
120
|
+
const taxonomyNames = Array.isArray(opts.taxonomyNames)
|
|
121
|
+
? opts.taxonomyNames
|
|
122
|
+
: undefined;
|
|
123
|
+
for (const mdPath of mdFiles) {
|
|
124
|
+
const relPath = relative(fullDocsDir, mdPath);
|
|
125
|
+
const slug = relPath
|
|
126
|
+
.replace(/\.md$/, "")
|
|
127
|
+
.replace(/\/index$/, "")
|
|
128
|
+
.replace(/^index$/, "");
|
|
129
|
+
try {
|
|
130
|
+
const source = readFileSync(mdPath, "utf-8");
|
|
131
|
+
// Lift YAML frontmatter from the raw source before parsing.
|
|
132
|
+
// The MkDocs parser strips it during post-processing, so we
|
|
133
|
+
// can't recover it from the tree downstream. Material's
|
|
134
|
+
// `tags: [foo]` convention is flat — passes through to
|
|
135
|
+
// meta.tags unchanged.
|
|
136
|
+
const frontmatter = extractFrontmatter(source);
|
|
137
|
+
const { tree, headings } = await parseMkdocsMarkdown(source, md, {
|
|
138
|
+
...parseOpts,
|
|
139
|
+
env: { filePath: relPath },
|
|
140
|
+
});
|
|
141
|
+
const title = headings.find((h) => h.depth === 1)?.text ||
|
|
142
|
+
labelFromPath(relPath);
|
|
143
|
+
const finalSlug = slug || "index";
|
|
144
|
+
const meta = parseMeta(frontmatter, {
|
|
145
|
+
slug: finalSlug,
|
|
146
|
+
taxonomyNames,
|
|
147
|
+
});
|
|
148
|
+
pages.push({
|
|
149
|
+
slug: finalSlug,
|
|
150
|
+
title,
|
|
151
|
+
tree,
|
|
152
|
+
headings,
|
|
153
|
+
frontmatter,
|
|
154
|
+
meta,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
console.warn(`Warning: failed to parse ${relPath}: ${err.message}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Extract navigation. hrefPrefix defaults to "/docs" but the CLI
|
|
162
|
+
// threads `site.basePath` (normalized) through opts.hrefPrefix so a
|
|
163
|
+
// site configured for a different prefix gets nav hrefs matching
|
|
164
|
+
// where pages will actually be emitted.
|
|
165
|
+
const hrefPrefix = typeof opts.hrefPrefix === "string" ? opts.hrefPrefix : "/docs";
|
|
166
|
+
const nav = convertNav(config.raw.nav, hrefPrefix);
|
|
167
|
+
return { pages, nav, config };
|
|
168
|
+
}
|
|
169
|
+
// ── Helpers ─────────────────────────────────────────────
|
|
170
|
+
/** Match a YAML frontmatter block at the start of an MD source. */
|
|
171
|
+
const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n?/;
|
|
172
|
+
/**
|
|
173
|
+
* Lift YAML frontmatter from the raw markdown source. Returns
|
|
174
|
+
* `undefined` when the source has no frontmatter block or the YAML
|
|
175
|
+
* doesn't parse to a plain object. Tolerates malformed YAML quietly
|
|
176
|
+
* so a single bad page doesn't break the whole import.
|
|
177
|
+
*/
|
|
178
|
+
function extractFrontmatter(source) {
|
|
179
|
+
const match = FRONTMATTER_RE.exec(source);
|
|
180
|
+
if (!match)
|
|
181
|
+
return undefined;
|
|
182
|
+
const raw = match[1];
|
|
183
|
+
if (raw.trim().length === 0)
|
|
184
|
+
return undefined;
|
|
185
|
+
try {
|
|
186
|
+
const parsed = YAML.parse(raw);
|
|
187
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
188
|
+
return parsed;
|
|
189
|
+
}
|
|
190
|
+
return undefined;
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
function findMarkdownFiles(dir) {
|
|
197
|
+
const results = [];
|
|
198
|
+
function walk(d) {
|
|
199
|
+
for (const entry of readdirSync(d)) {
|
|
200
|
+
const full = join(d, entry);
|
|
201
|
+
if (statSync(full).isDirectory()) {
|
|
202
|
+
walk(full);
|
|
203
|
+
}
|
|
204
|
+
else if (entry.endsWith(".md")) {
|
|
205
|
+
results.push(full);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
walk(dir);
|
|
210
|
+
return results;
|
|
211
|
+
}
|
|
212
|
+
function convertNav(nav, hrefPrefix) {
|
|
213
|
+
if (!nav || !Array.isArray(nav))
|
|
214
|
+
return [];
|
|
215
|
+
return nav.map((entry) => {
|
|
216
|
+
if (typeof entry === "string") {
|
|
217
|
+
return { label: labelFromPath(entry), href: pathToHref(entry, hrefPrefix) };
|
|
218
|
+
}
|
|
219
|
+
const [label, value] = Object.entries(entry)[0];
|
|
220
|
+
if (typeof value === "string") {
|
|
221
|
+
return { label, href: pathToHref(value, hrefPrefix) };
|
|
222
|
+
}
|
|
223
|
+
if (Array.isArray(value)) {
|
|
224
|
+
return { label, children: convertNav(value, hrefPrefix) };
|
|
225
|
+
}
|
|
226
|
+
return { label };
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
function pathToHref(path, hrefPrefix) {
|
|
230
|
+
const slug = path
|
|
231
|
+
.replace(/\.md$/, "")
|
|
232
|
+
.replace(/\/index$/, "")
|
|
233
|
+
.replace(/^index$/, "");
|
|
234
|
+
// hrefPrefix is the (possibly empty) basePath. Empty means root-served
|
|
235
|
+
// sites get hrefs like "/intro" instead of "/docs/intro".
|
|
236
|
+
if (!slug)
|
|
237
|
+
return hrefPrefix || "/";
|
|
238
|
+
return `${hrefPrefix}/${slug}`;
|
|
239
|
+
}
|
|
240
|
+
function labelFromPath(path) {
|
|
241
|
+
const name = basename(path, ".md");
|
|
242
|
+
return name.replace(/[-_]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Normalize markdown_extensions from mkdocs.yml.
|
|
246
|
+
* Can be an array or an object (keys = extension names, values = config or null).
|
|
247
|
+
*/
|
|
248
|
+
function normalizeExtensions(raw) {
|
|
249
|
+
if (!raw)
|
|
250
|
+
return [];
|
|
251
|
+
if (Array.isArray(raw))
|
|
252
|
+
return raw;
|
|
253
|
+
if (typeof raw === "object" && raw !== null) {
|
|
254
|
+
return Object.entries(raw).map(([name, config]) => config != null ? { [name]: config } : name);
|
|
255
|
+
}
|
|
256
|
+
return [];
|
|
257
|
+
}
|
|
258
|
+
function hasExtension(extensions, name) {
|
|
259
|
+
return extensions.some((e) => typeof e === "string" ? e === name : Object.keys(e)[0] === name);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Find docs_src/ directory (used for {* *} file includes).
|
|
263
|
+
*/
|
|
264
|
+
function findDocsSrc(sourceDir) {
|
|
265
|
+
const candidates = [
|
|
266
|
+
join(sourceDir, "docs_src"),
|
|
267
|
+
join(sourceDir, "..", "docs_src"),
|
|
268
|
+
];
|
|
269
|
+
for (const dir of candidates) {
|
|
270
|
+
if (existsSync(dir))
|
|
271
|
+
return dir;
|
|
272
|
+
}
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Extract mkdocstrings configuration from mkdocs.yml plugins section.
|
|
277
|
+
*/
|
|
278
|
+
function extractMkdocstringsConfig(config, sourceDir) {
|
|
279
|
+
const plugins = config.plugins;
|
|
280
|
+
if (!plugins)
|
|
281
|
+
return null;
|
|
282
|
+
let mkdocstringsConf = null;
|
|
283
|
+
if (Array.isArray(plugins)) {
|
|
284
|
+
for (const p of plugins) {
|
|
285
|
+
if (typeof p === "object" && p !== null && "mkdocstrings" in p) {
|
|
286
|
+
mkdocstringsConf = p.mkdocstrings;
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
else if (typeof plugins === "object" && plugins !== null) {
|
|
292
|
+
if ("mkdocstrings" in plugins) {
|
|
293
|
+
mkdocstringsConf = plugins.mkdocstrings || {};
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (!mkdocstringsConf)
|
|
297
|
+
return null;
|
|
298
|
+
const handlers = mkdocstringsConf.handlers;
|
|
299
|
+
const pythonConf = handlers?.python;
|
|
300
|
+
const paths = pythonConf?.paths;
|
|
301
|
+
const handlerOptions = pythonConf?.options;
|
|
302
|
+
// Use configured paths first
|
|
303
|
+
if (paths && paths.length > 0) {
|
|
304
|
+
const resolved = resolve(sourceDir, paths[0]);
|
|
305
|
+
if (existsSync(resolved))
|
|
306
|
+
return { sourceRoot: resolved, handlerOptions };
|
|
307
|
+
}
|
|
308
|
+
// Search parent directories for Python packages
|
|
309
|
+
for (let dir = sourceDir, i = 0; i < 4; i++) {
|
|
310
|
+
try {
|
|
311
|
+
for (const entry of readdirSync(dir)) {
|
|
312
|
+
const full = join(dir, entry);
|
|
313
|
+
if (statSync(full).isDirectory() && existsSync(join(full, "__init__.py"))) {
|
|
314
|
+
return { sourceRoot: dir, handlerOptions };
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
catch { /* continue */ }
|
|
319
|
+
const parent = dirname(dir);
|
|
320
|
+
if (parent === dir)
|
|
321
|
+
break;
|
|
322
|
+
dir = parent;
|
|
323
|
+
}
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Extract macros plugin data files (include_yaml) from mkdocs.yml.
|
|
328
|
+
* Returns a map of variable name → absolute YAML file path.
|
|
329
|
+
*/
|
|
330
|
+
function extractMacrosData(config, sourceDir) {
|
|
331
|
+
const plugins = config.plugins;
|
|
332
|
+
if (!plugins)
|
|
333
|
+
return null;
|
|
334
|
+
let macrosConfig = null;
|
|
335
|
+
if (Array.isArray(plugins)) {
|
|
336
|
+
for (const p of plugins) {
|
|
337
|
+
if (typeof p === "object" && p !== null && "macros" in p) {
|
|
338
|
+
macrosConfig = p.macros;
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
if (p === "macros") {
|
|
342
|
+
macrosConfig = {};
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
else if (typeof plugins === "object" && plugins !== null) {
|
|
348
|
+
if ("macros" in plugins) {
|
|
349
|
+
macrosConfig = plugins.macros || {};
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
if (!macrosConfig)
|
|
353
|
+
return null;
|
|
354
|
+
const includeYaml = macrosConfig.include_yaml;
|
|
355
|
+
if (!includeYaml || !Array.isArray(includeYaml))
|
|
356
|
+
return null;
|
|
357
|
+
const result = {};
|
|
358
|
+
for (const entry of includeYaml) {
|
|
359
|
+
if (typeof entry === "string") {
|
|
360
|
+
const name = entry.replace(/\.[^.]+$/, "").split("/").pop() || entry;
|
|
361
|
+
const full = resolve(sourceDir, entry);
|
|
362
|
+
if (existsSync(full))
|
|
363
|
+
result[name] = full;
|
|
364
|
+
}
|
|
365
|
+
else if (typeof entry === "object" && entry !== null) {
|
|
366
|
+
const [name, path] = Object.entries(entry)[0];
|
|
367
|
+
if (typeof path === "string") {
|
|
368
|
+
const full = resolve(sourceDir, path);
|
|
369
|
+
if (existsSync(full))
|
|
370
|
+
result[name] = full;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
return Object.keys(result).length > 0 ? result : null;
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=importer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../src/importer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type MarkdownIt from "markdown-it";
|
|
2
|
+
export type { TreeNode, InlineNode, InlineText, InlineLink, InlineImage, InlineCode, InlineFootnoteRef, InlineKbd, InlineHtml, InlineBreak, RagChunk, ExportPage, NavItem } from "@dogsbay/types";
|
|
3
|
+
export { treeToJson, chunkByHeadings } from "@dogsbay/types";
|
|
4
|
+
export { walkInlineTokens } from "./inline-walker.js";
|
|
5
|
+
export { tokensToTree } from "./walker.js";
|
|
6
|
+
export { parseToTree } from "./parse.js";
|
|
7
|
+
export { parseShortcode } from "./rules/icon-shortcode.js";
|
|
8
|
+
export { treeToMkdocs } from "./export/to-mkdocs.js";
|
|
9
|
+
export { exportMkdocsProject } from "./export/to-mkdocs-project.js";
|
|
10
|
+
export type { MkdocsProjectOptions, MkdocsProjectExport } from "./export/to-mkdocs-project.js";
|
|
11
|
+
export interface MkdocsPluginOptions {
|
|
12
|
+
admonitions?: boolean;
|
|
13
|
+
tabs?: boolean;
|
|
14
|
+
keys?: boolean;
|
|
15
|
+
snippets?: {
|
|
16
|
+
root: string;
|
|
17
|
+
autoAppend?: string[];
|
|
18
|
+
} | false;
|
|
19
|
+
annotations?: boolean;
|
|
20
|
+
mdInHtml?: boolean;
|
|
21
|
+
defList?: boolean;
|
|
22
|
+
linkRewrite?: {
|
|
23
|
+
baseUrl?: string;
|
|
24
|
+
} | boolean;
|
|
25
|
+
footnotes?: boolean;
|
|
26
|
+
icons?: boolean;
|
|
27
|
+
math?: boolean;
|
|
28
|
+
blocks?: boolean;
|
|
29
|
+
fileInclude?: {
|
|
30
|
+
root: string;
|
|
31
|
+
docsDir?: string;
|
|
32
|
+
} | false;
|
|
33
|
+
variants?: {
|
|
34
|
+
docsDir: string;
|
|
35
|
+
} | false;
|
|
36
|
+
templates?: {
|
|
37
|
+
dataFiles?: Record<string, string>;
|
|
38
|
+
dataDir?: string;
|
|
39
|
+
data?: Record<string, unknown>;
|
|
40
|
+
} | false;
|
|
41
|
+
autodoc?: {
|
|
42
|
+
sourceRoot: string;
|
|
43
|
+
globalOptions?: Record<string, unknown>;
|
|
44
|
+
} | false;
|
|
45
|
+
/** Docusaurus-style ::: admonitions (opt-in, conflicts with mkdocstrings :::) */
|
|
46
|
+
docusaurusAdmonitions?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Main plugin entry point. Registers markdown-it rules based on options.
|
|
50
|
+
*/
|
|
51
|
+
export declare function mkdocsPlugin(md: MarkdownIt, options?: MkdocsPluginOptions): void;
|
|
52
|
+
/**
|
|
53
|
+
* Build plugin options from a mkdocs.yml `markdown_extensions` array.
|
|
54
|
+
* Each entry can be a string or an object with a single key.
|
|
55
|
+
*/
|
|
56
|
+
export declare function configureFromMkdocs(extensions: (string | Record<string, unknown>)[]): MkdocsPluginOptions;
|
|
57
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAG1C,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClM,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAmB/F,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,KAAK,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IACzD,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IACvC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,KAAK,CAAC;IAC7G,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,KAAK,CAAC;IAClF,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,UAAU,EACd,OAAO,GAAE,mBAAwB,GAChC,IAAI,CA2EN;AAmDD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,GAC/C,mBAAmB,CAerB"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
export { treeToJson, chunkByHeadings } from "@dogsbay/types";
|
|
2
|
+
export { walkInlineTokens } from "./inline-walker.js";
|
|
3
|
+
// MkDocs parser exports
|
|
4
|
+
export { tokensToTree } from "./walker.js";
|
|
5
|
+
export { parseToTree } from "./parse.js";
|
|
6
|
+
export { parseShortcode } from "./rules/icon-shortcode.js";
|
|
7
|
+
// MkDocs serializer (TreeNode[] → MkDocs markdown)
|
|
8
|
+
export { treeToMkdocs } from "./export/to-mkdocs.js";
|
|
9
|
+
export { exportMkdocsProject } from "./export/to-mkdocs-project.js";
|
|
10
|
+
import { admonitionPlugin } from "./rules/admonition.js";
|
|
11
|
+
import { blocksPlugin } from "./rules/blocks.js";
|
|
12
|
+
import { contentTabsPlugin } from "./rules/content-tabs.js";
|
|
13
|
+
import { keysPlugin } from "./rules/keys.js";
|
|
14
|
+
import { snippetsPlugin } from "./rules/snippets.js";
|
|
15
|
+
import { fileIncludePlugin } from "./rules/file-include.js";
|
|
16
|
+
import { variantsPlugin } from "./rules/variants.js";
|
|
17
|
+
import { templatesPlugin } from "./rules/templates.js";
|
|
18
|
+
// autodoc is handled in the loader (async), not as a core rule
|
|
19
|
+
import { docusaurusAdmonitionsPlugin } from "./rules/docusaurus-admonitions.js";
|
|
20
|
+
import { annotationsPlugin } from "./rules/annotations.js";
|
|
21
|
+
import { mdInHtmlPlugin } from "./rules/md-in-html.js";
|
|
22
|
+
import { linkRewritePlugin } from "./rules/link-rewrite.js";
|
|
23
|
+
import { mathPlugin } from "./rules/math.js";
|
|
24
|
+
import { footnotesPlugin } from "./rules/footnotes.js";
|
|
25
|
+
import { iconShortcodePlugin } from "./rules/icon-shortcode.js";
|
|
26
|
+
import deflist from "markdown-it-deflist";
|
|
27
|
+
/**
|
|
28
|
+
* Main plugin entry point. Registers markdown-it rules based on options.
|
|
29
|
+
*/
|
|
30
|
+
export function mkdocsPlugin(md, options = {}) {
|
|
31
|
+
const opts = {
|
|
32
|
+
admonitions: true,
|
|
33
|
+
tabs: true,
|
|
34
|
+
keys: true,
|
|
35
|
+
snippets: false,
|
|
36
|
+
annotations: true,
|
|
37
|
+
mdInHtml: true,
|
|
38
|
+
defList: true,
|
|
39
|
+
linkRewrite: false,
|
|
40
|
+
footnotes: false,
|
|
41
|
+
blocks: false,
|
|
42
|
+
...options,
|
|
43
|
+
};
|
|
44
|
+
if (opts.admonitions) {
|
|
45
|
+
admonitionPlugin(md);
|
|
46
|
+
}
|
|
47
|
+
if (opts.blocks) {
|
|
48
|
+
blocksPlugin(md);
|
|
49
|
+
}
|
|
50
|
+
if (opts.docusaurusAdmonitions) {
|
|
51
|
+
docusaurusAdmonitionsPlugin(md);
|
|
52
|
+
}
|
|
53
|
+
if (opts.tabs) {
|
|
54
|
+
contentTabsPlugin(md);
|
|
55
|
+
}
|
|
56
|
+
if (opts.keys) {
|
|
57
|
+
keysPlugin(md);
|
|
58
|
+
}
|
|
59
|
+
if (opts.snippets) {
|
|
60
|
+
snippetsPlugin(md, opts.snippets);
|
|
61
|
+
}
|
|
62
|
+
if (opts.templates) {
|
|
63
|
+
templatesPlugin(md, opts.templates);
|
|
64
|
+
}
|
|
65
|
+
// autodoc is handled in the loader via options.autodoc (async)
|
|
66
|
+
if (opts.variants) {
|
|
67
|
+
variantsPlugin(md, opts.variants);
|
|
68
|
+
}
|
|
69
|
+
if (opts.fileInclude) {
|
|
70
|
+
fileIncludePlugin(md, opts.fileInclude);
|
|
71
|
+
}
|
|
72
|
+
if (opts.annotations) {
|
|
73
|
+
annotationsPlugin(md);
|
|
74
|
+
}
|
|
75
|
+
if (opts.defList) {
|
|
76
|
+
md.use(deflist);
|
|
77
|
+
// Preprocess: convert <!-- md:... type:X --> comments into deflist terms
|
|
78
|
+
// so markdown-it-deflist can parse the orphan `:` definitions that follow
|
|
79
|
+
md.core.ruler.before("normalize", "md_option_terms", (state) => {
|
|
80
|
+
state.src = state.src.replace(/<!--\s*md:\w+\s+(?:\w+:)?(\w+)\s*-->/g, "`$1`");
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (opts.mdInHtml) {
|
|
84
|
+
mdInHtmlPlugin(md);
|
|
85
|
+
}
|
|
86
|
+
if (opts.linkRewrite) {
|
|
87
|
+
const rewriteOpts = typeof opts.linkRewrite === "object" ? opts.linkRewrite : {};
|
|
88
|
+
linkRewritePlugin(md, rewriteOpts);
|
|
89
|
+
}
|
|
90
|
+
if (opts.footnotes) {
|
|
91
|
+
footnotesPlugin(md);
|
|
92
|
+
}
|
|
93
|
+
if (opts.icons !== false) {
|
|
94
|
+
// Icons enabled by default
|
|
95
|
+
iconShortcodePlugin(md);
|
|
96
|
+
}
|
|
97
|
+
if (opts.math) {
|
|
98
|
+
mathPlugin(md);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Extension name mapping from mkdocs.yml markdown_extensions to plugin options.
|
|
103
|
+
*/
|
|
104
|
+
const EXTENSION_MAP = {
|
|
105
|
+
admonition: (opts) => {
|
|
106
|
+
opts.admonitions = true;
|
|
107
|
+
},
|
|
108
|
+
"pymdownx.details": (opts) => {
|
|
109
|
+
opts.admonitions = true;
|
|
110
|
+
},
|
|
111
|
+
"pymdownx.tabbed": (opts) => {
|
|
112
|
+
opts.tabs = true;
|
|
113
|
+
},
|
|
114
|
+
"pymdownx.keys": (opts) => {
|
|
115
|
+
opts.keys = true;
|
|
116
|
+
},
|
|
117
|
+
"pymdownx.snippets": (opts) => {
|
|
118
|
+
opts.snippets = { root: "." };
|
|
119
|
+
},
|
|
120
|
+
"pymdownx.superfences": (opts) => {
|
|
121
|
+
opts.annotations = true;
|
|
122
|
+
},
|
|
123
|
+
"md_in_html": (opts) => {
|
|
124
|
+
opts.mdInHtml = true;
|
|
125
|
+
},
|
|
126
|
+
"def_list": (opts) => {
|
|
127
|
+
opts.defList = true;
|
|
128
|
+
},
|
|
129
|
+
"footnotes": (opts) => {
|
|
130
|
+
opts.footnotes = true;
|
|
131
|
+
},
|
|
132
|
+
"pymdownx.blocks.admonition": (opts) => {
|
|
133
|
+
opts.blocks = true;
|
|
134
|
+
},
|
|
135
|
+
"pymdownx.blocks.details": (opts) => {
|
|
136
|
+
opts.blocks = true;
|
|
137
|
+
},
|
|
138
|
+
"pymdownx.blocks.tab": (opts) => {
|
|
139
|
+
opts.blocks = true;
|
|
140
|
+
},
|
|
141
|
+
"mdx_include": (opts) => {
|
|
142
|
+
if (!opts.fileInclude)
|
|
143
|
+
opts.fileInclude = { root: "." };
|
|
144
|
+
},
|
|
145
|
+
"markdown_include_variants": (opts) => {
|
|
146
|
+
if (!opts.fileInclude)
|
|
147
|
+
opts.fileInclude = { root: "." };
|
|
148
|
+
if (!opts.variants)
|
|
149
|
+
opts.variants = { docsDir: "." };
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Build plugin options from a mkdocs.yml `markdown_extensions` array.
|
|
154
|
+
* Each entry can be a string or an object with a single key.
|
|
155
|
+
*/
|
|
156
|
+
export function configureFromMkdocs(extensions) {
|
|
157
|
+
const opts = {
|
|
158
|
+
admonitions: false,
|
|
159
|
+
tabs: false,
|
|
160
|
+
keys: false,
|
|
161
|
+
snippets: false,
|
|
162
|
+
annotations: false,
|
|
163
|
+
};
|
|
164
|
+
for (const ext of extensions) {
|
|
165
|
+
const name = typeof ext === "string" ? ext : Object.keys(ext)[0];
|
|
166
|
+
EXTENSION_MAP[name]?.(opts);
|
|
167
|
+
}
|
|
168
|
+
return opts;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inline token walker — converts markdown-it inline tokens into InlineNode[].
|
|
3
|
+
*
|
|
4
|
+
* Walks tokens left-to-right maintaining an annotation stack (bold/italic/
|
|
5
|
+
* strikethrough) and a container stack for links. Emits InlineNode spans
|
|
6
|
+
* as it encounters content tokens.
|
|
7
|
+
*
|
|
8
|
+
* Formatting is flat annotations on text spans (Notion model), not nested
|
|
9
|
+
* elements. `{ bold: true, italic: true }` instead of `<strong><em>`.
|
|
10
|
+
*/
|
|
11
|
+
import type Token from "markdown-it/lib/token.mjs";
|
|
12
|
+
import type { InlineNode } from "@dogsbay/types";
|
|
13
|
+
/**
|
|
14
|
+
* Convert markdown-it inline token children into structured InlineNode[].
|
|
15
|
+
*/
|
|
16
|
+
export declare function walkInlineTokens(tokens: Token[] | null): InlineNode[];
|
|
17
|
+
//# sourceMappingURL=inline-walker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-walker.d.ts","sourceRoot":"","sources":["../src/inline-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAC;AACnD,OAAO,KAAK,EACV,UAAU,EAWX,MAAM,gBAAgB,CAAC;AAQxB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,UAAU,EAAE,CA2KrE"}
|