@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
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { relative } from "node:path";
|
|
2
|
+
/** Make a source file path relative to the source root for display. */
|
|
3
|
+
function relativeFile(file, sourceRoot) {
|
|
4
|
+
if (!sourceRoot)
|
|
5
|
+
return file;
|
|
6
|
+
return relative(sourceRoot, file);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Convert a SymbolInfo into a tree of API TreeNodes.
|
|
10
|
+
* These render through dedicated components (ApiSymbol, ApiDoc, ApiParams).
|
|
11
|
+
*/
|
|
12
|
+
export function symbolToTreeNode(symbol, options, md, fullPath, sourceRoot) {
|
|
13
|
+
if (symbol.kind === "module") {
|
|
14
|
+
return moduleToNode(symbol, options, md, fullPath, sourceRoot);
|
|
15
|
+
}
|
|
16
|
+
if (symbol.kind === "class") {
|
|
17
|
+
return classToNode(symbol, options, md, fullPath, sourceRoot);
|
|
18
|
+
}
|
|
19
|
+
return memberToNode(symbol, options, md, sourceRoot);
|
|
20
|
+
}
|
|
21
|
+
function classToNode(symbol, options, md, fullPath, sourceRoot) {
|
|
22
|
+
const children = [];
|
|
23
|
+
// Docstring
|
|
24
|
+
if (symbol.docstring) {
|
|
25
|
+
children.push({
|
|
26
|
+
type: "api-doc",
|
|
27
|
+
props: { html: md.render(dedentDoc(symbol.docstring)) },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// Constructor parameters (merged into class)
|
|
31
|
+
if (options.mergeInitIntoClass !== false && symbol.params.length > 0) {
|
|
32
|
+
children.push({
|
|
33
|
+
type: "api-params",
|
|
34
|
+
props: { params: renderParams(symbol.params, md, options) },
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
// Source code (collapsible)
|
|
38
|
+
if (options.showSource && symbol.sourceText) {
|
|
39
|
+
children.push({
|
|
40
|
+
type: "api-source",
|
|
41
|
+
props: {
|
|
42
|
+
code: symbol.sourceText,
|
|
43
|
+
file: relativeFile(symbol.source.file, sourceRoot),
|
|
44
|
+
line: symbol.source.line,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Members
|
|
49
|
+
const members = filterMembers(symbol.members, options);
|
|
50
|
+
const filteredMembers = members.filter((m) => !(m.name === "__init__" && options.mergeInitIntoClass !== false));
|
|
51
|
+
if (options.groupByCategory) {
|
|
52
|
+
appendGroupedMembers(children, filteredMembers, options, md, sourceRoot);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
for (const member of filteredMembers) {
|
|
56
|
+
children.push(memberToNode(member, options, md, sourceRoot));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Build full signature with params
|
|
60
|
+
const displayName = options.showRootFullPath && fullPath ? fullPath : symbol.name;
|
|
61
|
+
let signature = `class ${displayName}`;
|
|
62
|
+
if (symbol.bases.length > 0) {
|
|
63
|
+
signature = `class ${displayName}(${symbol.bases.join(", ")})`;
|
|
64
|
+
}
|
|
65
|
+
if (options.mergeInitIntoClass !== false && symbol.params.length > 0) {
|
|
66
|
+
const paramLines = symbol.params.map((p) => {
|
|
67
|
+
let s = ` ${p.name}`;
|
|
68
|
+
s += `: ${paramType(p, options)}`;
|
|
69
|
+
if (p.default)
|
|
70
|
+
s += ` = ${p.default}`;
|
|
71
|
+
return s + ",";
|
|
72
|
+
});
|
|
73
|
+
signature = `${displayName}(\n *,\n${paramLines.join("\n")}\n)`;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
type: "api-class",
|
|
77
|
+
props: {
|
|
78
|
+
name: displayName,
|
|
79
|
+
kind: "class",
|
|
80
|
+
signature,
|
|
81
|
+
bases: options.showBases !== false ? symbol.bases : [],
|
|
82
|
+
},
|
|
83
|
+
children,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function moduleToNode(symbol, options, md, fullPath, sourceRoot) {
|
|
87
|
+
const children = [];
|
|
88
|
+
const displayName = options.showRootFullPath && fullPath ? fullPath : symbol.name;
|
|
89
|
+
if (symbol.docstring) {
|
|
90
|
+
children.push({
|
|
91
|
+
type: "api-doc",
|
|
92
|
+
props: { html: md.render(dedentDoc(symbol.docstring)) },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const members = filterMembers(symbol.members, options);
|
|
96
|
+
if (options.groupByCategory) {
|
|
97
|
+
appendGroupedMembers(children, members, options, md, sourceRoot);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
for (const member of members) {
|
|
101
|
+
children.push(memberToNode(member, options, md, sourceRoot));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
type: "api-class",
|
|
106
|
+
props: {
|
|
107
|
+
name: displayName,
|
|
108
|
+
kind: "module",
|
|
109
|
+
signature: null,
|
|
110
|
+
bases: [],
|
|
111
|
+
},
|
|
112
|
+
children,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function memberToNode(symbol, options, md, sourceRoot) {
|
|
116
|
+
const children = [];
|
|
117
|
+
// Docstring
|
|
118
|
+
if (symbol.docstring) {
|
|
119
|
+
children.push({
|
|
120
|
+
type: "api-doc",
|
|
121
|
+
props: { html: md.render(dedentDoc(symbol.docstring)) },
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// Parameters (for functions/methods)
|
|
125
|
+
if (symbol.params.length > 0) {
|
|
126
|
+
children.push({
|
|
127
|
+
type: "api-params",
|
|
128
|
+
props: { params: renderParams(symbol.params, md, options) },
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
// Source code (collapsible)
|
|
132
|
+
if (options.showSource && symbol.sourceText) {
|
|
133
|
+
children.push({
|
|
134
|
+
type: "api-source",
|
|
135
|
+
props: {
|
|
136
|
+
code: symbol.sourceText,
|
|
137
|
+
file: relativeFile(symbol.source.file, sourceRoot),
|
|
138
|
+
line: symbol.source.line,
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
// Build signature
|
|
143
|
+
let signature = null;
|
|
144
|
+
const kind = symbol.kind === "property" ? "attr" : symbol.kind === "function" ? "func" : symbol.kind === "method" ? "meth" : symbol.kind;
|
|
145
|
+
if (kind === "attr") {
|
|
146
|
+
// Attribute: show value assignment
|
|
147
|
+
signature = symbol.signature;
|
|
148
|
+
}
|
|
149
|
+
else if (symbol.kind === "method" || symbol.kind === "function") {
|
|
150
|
+
// Method/function: call-style signature
|
|
151
|
+
if (symbol.params.length > 0) {
|
|
152
|
+
const paramLines = symbol.params.map((p) => {
|
|
153
|
+
let s = ` ${p.name}`;
|
|
154
|
+
s += `: ${paramType(p, options)}`;
|
|
155
|
+
if (p.default)
|
|
156
|
+
s += ` = ${p.default}`;
|
|
157
|
+
return s + ",";
|
|
158
|
+
});
|
|
159
|
+
signature = `${symbol.name}(\n${paramLines.join("\n")}\n)`;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
signature = `${symbol.name}()`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
type: "api-member",
|
|
167
|
+
props: {
|
|
168
|
+
name: symbol.name,
|
|
169
|
+
kind,
|
|
170
|
+
signature,
|
|
171
|
+
type: symbol.returnType,
|
|
172
|
+
default: symbol.params.length === 0 ? symbol.default : null,
|
|
173
|
+
},
|
|
174
|
+
children,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get the display type for a parameter, respecting unwrapAnnotated option.
|
|
179
|
+
*/
|
|
180
|
+
function paramType(p, options) {
|
|
181
|
+
if (options.unwrapAnnotated !== false && p.bareType)
|
|
182
|
+
return p.bareType;
|
|
183
|
+
return p.bareType || p.type || "";
|
|
184
|
+
}
|
|
185
|
+
function renderParams(params, md, options) {
|
|
186
|
+
return params.map((p) => ({
|
|
187
|
+
name: p.name,
|
|
188
|
+
type: paramType(p, options) || null,
|
|
189
|
+
default: p.default || null,
|
|
190
|
+
required: p.required,
|
|
191
|
+
doc: p.doc ? dedentDoc(p.doc) : null,
|
|
192
|
+
docHtml: p.doc ? md.render(dedentDoc(p.doc)) : null,
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Group members by category and append to children with section headings.
|
|
197
|
+
*/
|
|
198
|
+
function appendGroupedMembers(children, members, options, md, sourceRoot) {
|
|
199
|
+
const groups = {};
|
|
200
|
+
const categoryOrder = ["Attributes", "Methods", "Classes", "Functions"];
|
|
201
|
+
for (const member of members) {
|
|
202
|
+
let category;
|
|
203
|
+
if (member.kind === "property" || member.kind === "variable") {
|
|
204
|
+
category = "Attributes";
|
|
205
|
+
}
|
|
206
|
+
else if (member.kind === "class") {
|
|
207
|
+
category = "Classes";
|
|
208
|
+
}
|
|
209
|
+
else if (member.kind === "method") {
|
|
210
|
+
category = "Methods";
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
category = "Functions";
|
|
214
|
+
}
|
|
215
|
+
(groups[category] ??= []).push(member);
|
|
216
|
+
}
|
|
217
|
+
for (const category of categoryOrder) {
|
|
218
|
+
const group = groups[category];
|
|
219
|
+
if (!group || group.length === 0)
|
|
220
|
+
continue;
|
|
221
|
+
// Category heading
|
|
222
|
+
children.push({
|
|
223
|
+
type: "heading",
|
|
224
|
+
props: { level: (options.headingLevel ?? 2) + 1 },
|
|
225
|
+
children: [{ type: "prose", html: category }],
|
|
226
|
+
});
|
|
227
|
+
for (const member of group) {
|
|
228
|
+
children.push(memberToNode(member, options, md, sourceRoot));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function filterMembers(members, options) {
|
|
233
|
+
let filtered = [...members];
|
|
234
|
+
if (options.members && options.members.length > 0) {
|
|
235
|
+
const allowed = new Set(options.members);
|
|
236
|
+
filtered = filtered.filter((m) => allowed.has(m.name));
|
|
237
|
+
filtered.sort((a, b) => {
|
|
238
|
+
const aIdx = options.members.indexOf(a.name);
|
|
239
|
+
const bIdx = options.members.indexOf(b.name);
|
|
240
|
+
return aIdx - bIdx;
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
if (options.filters) {
|
|
244
|
+
for (const filter of options.filters) {
|
|
245
|
+
if (filter.startsWith("!")) {
|
|
246
|
+
const re = new RegExp(filter.slice(1));
|
|
247
|
+
filtered = filtered.filter((m) => !re.test(m.name));
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (options.membersOrder === "alphabetical") {
|
|
252
|
+
filtered.sort((a, b) => a.name.localeCompare(b.name));
|
|
253
|
+
}
|
|
254
|
+
return filtered;
|
|
255
|
+
}
|
|
256
|
+
function dedentDoc(text) {
|
|
257
|
+
const lines = text.split("\n");
|
|
258
|
+
let minIndent = Infinity;
|
|
259
|
+
for (let i = 0; i < lines.length; i++) {
|
|
260
|
+
if (lines[i].trim() === "")
|
|
261
|
+
continue;
|
|
262
|
+
const indent = lines[i].match(/^(\s*)/)?.[1].length ?? 0;
|
|
263
|
+
if (i === 0 && indent === 0)
|
|
264
|
+
continue;
|
|
265
|
+
if (indent < minIndent)
|
|
266
|
+
minIndent = indent;
|
|
267
|
+
}
|
|
268
|
+
if (minIndent === Infinity || minIndent === 0)
|
|
269
|
+
return text.trim();
|
|
270
|
+
return lines
|
|
271
|
+
.map((l) => {
|
|
272
|
+
if (l.trim() === "")
|
|
273
|
+
return "";
|
|
274
|
+
return l.startsWith(" ".repeat(minIndent)) ? l.slice(minIndent) : l;
|
|
275
|
+
})
|
|
276
|
+
.join("\n")
|
|
277
|
+
.trim();
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=tree-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-builder.js","sourceRoot":"","sources":["../../src/autodoc/tree-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured representation of a Python symbol extracted from source.
|
|
3
|
+
*/
|
|
4
|
+
export interface SymbolInfo {
|
|
5
|
+
name: string;
|
|
6
|
+
kind: "class" | "function" | "method" | "property" | "module" | "variable";
|
|
7
|
+
/** Full signature string, e.g. "def get(path: str, *, response_model: Type = None) -> Callable" */
|
|
8
|
+
signature: string;
|
|
9
|
+
/** Raw docstring text (triple-quoted string) */
|
|
10
|
+
docstring: string | null;
|
|
11
|
+
/** Parsed docstring sections */
|
|
12
|
+
doc?: ParsedDocstring;
|
|
13
|
+
/** Decorator strings, e.g. ["@app.get", "@deprecated"] */
|
|
14
|
+
decorators: string[];
|
|
15
|
+
/** Base classes for classes, e.g. ["Starlette"] */
|
|
16
|
+
bases: string[];
|
|
17
|
+
/** Parsed parameter information */
|
|
18
|
+
params: ParamInfo[];
|
|
19
|
+
/** Return type annotation */
|
|
20
|
+
returnType: string | null;
|
|
21
|
+
/** Child symbols (methods, nested classes, properties) */
|
|
22
|
+
members: SymbolInfo[];
|
|
23
|
+
/** Source location */
|
|
24
|
+
source: {
|
|
25
|
+
file: string;
|
|
26
|
+
line: number;
|
|
27
|
+
};
|
|
28
|
+
/** Full source text of the symbol (for show_source) */
|
|
29
|
+
sourceText?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Parameter information extracted from function/method signatures.
|
|
33
|
+
*/
|
|
34
|
+
export interface ParamInfo {
|
|
35
|
+
name: string;
|
|
36
|
+
/** Type annotation (may be complex, e.g. "Annotated[str, Doc('...')]") */
|
|
37
|
+
type: string | null;
|
|
38
|
+
/** Raw type without Annotated wrapper */
|
|
39
|
+
bareType: string | null;
|
|
40
|
+
/** Default value as string */
|
|
41
|
+
default: string | null;
|
|
42
|
+
/** Documentation from docstring or Annotated[type, Doc("...")] */
|
|
43
|
+
doc: string | null;
|
|
44
|
+
/** Whether parameter is required (no default) */
|
|
45
|
+
required: boolean;
|
|
46
|
+
/** Whether this is *args or **kwargs */
|
|
47
|
+
kind: "positional" | "keyword" | "var_positional" | "var_keyword" | "keyword_only";
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parsed docstring with sections.
|
|
51
|
+
* Supports Google, NumPy, and Sphinx styles.
|
|
52
|
+
*/
|
|
53
|
+
export interface ParsedDocstring {
|
|
54
|
+
/** Summary/description (first paragraph) */
|
|
55
|
+
summary: string;
|
|
56
|
+
/** Extended description (remaining paragraphs before sections) */
|
|
57
|
+
description: string;
|
|
58
|
+
/** Parameter docs from docstring (may be overridden by Annotated[type, Doc()]) */
|
|
59
|
+
params: DocstringParam[];
|
|
60
|
+
/** Return value documentation */
|
|
61
|
+
returns: DocstringReturn | null;
|
|
62
|
+
/** Raised exceptions */
|
|
63
|
+
raises: DocstringRaise[];
|
|
64
|
+
/** Example code blocks */
|
|
65
|
+
examples: string[];
|
|
66
|
+
/** Notes section */
|
|
67
|
+
notes: string[];
|
|
68
|
+
/** Deprecation notice */
|
|
69
|
+
deprecated: string | null;
|
|
70
|
+
}
|
|
71
|
+
export interface DocstringParam {
|
|
72
|
+
name: string;
|
|
73
|
+
type: string | null;
|
|
74
|
+
description: string;
|
|
75
|
+
}
|
|
76
|
+
export interface DocstringReturn {
|
|
77
|
+
type: string | null;
|
|
78
|
+
description: string;
|
|
79
|
+
}
|
|
80
|
+
export interface DocstringRaise {
|
|
81
|
+
type: string;
|
|
82
|
+
description: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Options for the autodoc plugin.
|
|
86
|
+
*/
|
|
87
|
+
export interface AutodocOptions {
|
|
88
|
+
/** Root directory containing Python source packages */
|
|
89
|
+
sourceRoot: string;
|
|
90
|
+
/** Global handler options (can be overridden per-directive) */
|
|
91
|
+
globalOptions?: AutodocDirectiveOptions;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Options for a single ::: directive (from YAML block).
|
|
95
|
+
*/
|
|
96
|
+
export interface AutodocDirectiveOptions {
|
|
97
|
+
/** Specific members to document (whitelist) */
|
|
98
|
+
members?: string[];
|
|
99
|
+
/** Show the root heading for the symbol */
|
|
100
|
+
showRootHeading?: boolean;
|
|
101
|
+
/** Show members even without docstrings */
|
|
102
|
+
showIfNoDocstring?: boolean;
|
|
103
|
+
/** Include inherited members */
|
|
104
|
+
inheritedMembers?: boolean;
|
|
105
|
+
/** Member ordering: "source" | "alphabetical" */
|
|
106
|
+
membersOrder?: "source" | "alphabetical";
|
|
107
|
+
/** Merge __init__ parameters into class documentation */
|
|
108
|
+
mergeInitIntoClass?: boolean;
|
|
109
|
+
/** Show signature in a separate code block */
|
|
110
|
+
separateSignature?: boolean;
|
|
111
|
+
/** Regex filters for excluding members, e.g. ["!^_"] */
|
|
112
|
+
filters?: string[];
|
|
113
|
+
/** Heading level for the root symbol */
|
|
114
|
+
headingLevel?: number;
|
|
115
|
+
/** Show collapsible source code block */
|
|
116
|
+
showSource?: boolean;
|
|
117
|
+
/** Strip Annotated[T, ...] to T in signatures */
|
|
118
|
+
unwrapAnnotated?: boolean;
|
|
119
|
+
/** Group members by category (Attributes, Methods, Classes) */
|
|
120
|
+
groupByCategory?: boolean;
|
|
121
|
+
/** Show full dotted path in root heading (e.g. fastapi.FastAPI) */
|
|
122
|
+
showRootFullPath?: boolean;
|
|
123
|
+
/** Show base classes for classes */
|
|
124
|
+
showBases?: boolean;
|
|
125
|
+
/** Show function/method signatures */
|
|
126
|
+
showSignature?: boolean;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/autodoc/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/autodoc/types.ts"],"names":[],"mappings":""}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AAGxE,eAAO,MAAM,MAAM,EAAE,YA+BpB,CAAC"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { importMkdocsProject } from "./importer.js";
|
|
4
|
+
export const plugin = {
|
|
5
|
+
name: "mkdocs",
|
|
6
|
+
canImport: true,
|
|
7
|
+
canExport: true,
|
|
8
|
+
detectSource: (path) => existsSync(join(path, "mkdocs.yml")),
|
|
9
|
+
importOptions: [
|
|
10
|
+
{ flags: "--theme <name>", description: "Theme preset (default, material)", default: "default" },
|
|
11
|
+
{ flags: "--no-custom-css", description: "Skip copying custom CSS files from source docs" },
|
|
12
|
+
{ flags: "--custom-css <files>", description: "Custom CSS files to copy (comma-separated)" },
|
|
13
|
+
{ flags: "--docusaurus-admonitions", description: "Enable Docusaurus-style ::: admonitions" },
|
|
14
|
+
],
|
|
15
|
+
exportOptions: [],
|
|
16
|
+
async import(source, opts) {
|
|
17
|
+
const { pages, nav, config } = await importMkdocsProject(source, opts);
|
|
18
|
+
// Attach config metadata for the exporter to consume
|
|
19
|
+
opts.siteName = opts.siteName || config.siteName;
|
|
20
|
+
opts.repoUrl = opts.repoUrl || config.repoUrl;
|
|
21
|
+
opts.editUri = opts.editUri || config.editUri;
|
|
22
|
+
opts.copyright = opts.copyright || config.copyright;
|
|
23
|
+
// Pass source directory and extra_css for asset/CSS copying
|
|
24
|
+
opts.sourceDir = join(source, config.docsDir);
|
|
25
|
+
const extraCss = config.raw.extra_css;
|
|
26
|
+
if (extraCss && Array.isArray(extraCss)) {
|
|
27
|
+
opts.extraCss = extraCss;
|
|
28
|
+
}
|
|
29
|
+
return { pages, nav };
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACpE,aAAa,EAAE;QACb,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,kCAAkC,EAAE,OAAO,EAAE,SAAS,EAAE;QAChG,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,gDAAgD,EAAE;QAC3F,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,4CAA4C,EAAE;QAC5F,EAAE,KAAK,EAAE,0BAA0B,EAAE,WAAW,EAAE,yCAAyC,EAAE;KAC9F;IACD,aAAa,EAAE,EAAE;IAEjB,KAAK,CAAC,MAAM,CACV,MAAc,EACd,IAA6B;QAE7B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvE,qDAAqD;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;QACpD,4DAA4D;QAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,SAAiC,CAAC;QAC9D,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TreeNode } from "../tree.js";
|
|
2
|
+
/**
|
|
3
|
+
* Rendering mode for inline/prose content.
|
|
4
|
+
*
|
|
5
|
+
* - "template" (default): pure Astro template markup, no set:html.
|
|
6
|
+
* Curly braces escaped as {"{"}/{"}"}. Clean, editable output.
|
|
7
|
+
* - "hybrid": components for blocks, set:html for prose/inline.
|
|
8
|
+
* Simpler for content-heavy imports with arbitrary braces.
|
|
9
|
+
*/
|
|
10
|
+
export type AstroRenderMode = "template" | "hybrid";
|
|
11
|
+
export interface AstroGenResult {
|
|
12
|
+
body: string;
|
|
13
|
+
imports: string[];
|
|
14
|
+
scripts: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface AstroGenOptions {
|
|
17
|
+
mode?: AstroRenderMode;
|
|
18
|
+
}
|
|
19
|
+
/** Escape for use inside an Astro {expression}. Uses JSON.stringify for safety. */
|
|
20
|
+
export declare function escapeExpr(s: string): string;
|
|
21
|
+
/** Escape for use in an HTML attribute value (double-quoted). */
|
|
22
|
+
export declare function escapeAttr(s: string): string;
|
|
23
|
+
/** Escape text for use directly in an Astro template (not inside an expression). */
|
|
24
|
+
export declare function escapeTemplate(s: string): string;
|
|
25
|
+
export declare function treeToAstro(nodes: TreeNode[], options?: AstroGenOptions): AstroGenResult;
|
|
26
|
+
//# sourceMappingURL=to-astro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-astro.d.ts","sourceRoot":"","sources":["../../src/export/to-astro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC;AASpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AA0DD,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAahD;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,cAAc,CA6BxF"}
|