@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,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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"}
@@ -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"}