@dogsbay/format-rst 0.2.0-beta.115 → 0.2.0-beta.117
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/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +320 -17
- package/dist/cli.js.map +1 -1
- package/dist/conf-static.d.ts +40 -0
- package/dist/conf-static.d.ts.map +1 -0
- package/dist/conf-static.js +309 -0
- package/dist/conf-static.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/loaders/plain.d.ts +3 -2
- package/dist/loaders/plain.d.ts.map +1 -1
- package/dist/loaders/plain.js +5 -2
- package/dist/loaders/plain.js.map +1 -1
- package/dist/loaders/sphinx.d.ts +34 -0
- package/dist/loaders/sphinx.d.ts.map +1 -1
- package/dist/loaders/sphinx.js +72 -3
- package/dist/loaders/sphinx.js.map +1 -1
- package/dist/parse.d.ts +24 -3
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +9 -5
- package/dist/parse.js.map +1 -1
- package/dist/sidecar.d.ts +6 -0
- package/dist/sidecar.d.ts.map +1 -1
- package/dist/sidecar.js +20 -1
- package/dist/sidecar.js.map +1 -1
- package/dist/transform.d.ts +34 -0
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +672 -63
- package/dist/transform.js.map +1 -1
- package/package.json +4 -3
- package/python/rst2dogsbay.py +115 -12
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read a few settings out of a Sphinx `conf.py` WITHOUT running it.
|
|
3
|
+
*
|
|
4
|
+
* The importers that run no project code (format-myst's translator, plain
|
|
5
|
+
* docutils mode) still need to know what Sphinx would have built: without
|
|
6
|
+
* `exclude_patterns` they converted every Markdown file in the tree, so on
|
|
7
|
+
* Canonical's Anbox Cloud docs a vendored copy of the swagger-ui package
|
|
8
|
+
* (its README, CLAUDE.md and docs) and SECURITY.md became pages, and two
|
|
9
|
+
* files collided on one slug.
|
|
10
|
+
*
|
|
11
|
+
* Only top-level literal lists and tuples of plain string literals are read
|
|
12
|
+
* (`name = [...]`, `name += [...]`, `name.append("x")`, `name.extend([...])`),
|
|
13
|
+
* the way format-vitepress reads `.vitepress/config.*`. Anything else that
|
|
14
|
+
* assigns one of these names — a variable, a comprehension, an assignment
|
|
15
|
+
* inside an `if` — makes the value unknown, and the name is reported in
|
|
16
|
+
* `unread` rather than guessed.
|
|
17
|
+
*/
|
|
18
|
+
import { readFileSync } from "node:fs";
|
|
19
|
+
const NAMES = {
|
|
20
|
+
exclude_patterns: "excludePatterns",
|
|
21
|
+
templates_path: "templatesPath",
|
|
22
|
+
html_static_path: "htmlStaticPath",
|
|
23
|
+
html_extra_path: "htmlExtraPath",
|
|
24
|
+
};
|
|
25
|
+
export function readSphinxConfStatic(confPy) {
|
|
26
|
+
let text;
|
|
27
|
+
try {
|
|
28
|
+
text = readFileSync(confPy, "utf-8");
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return { excludePatterns: [], templatesPath: [], htmlStaticPath: [], htmlExtraPath: [], unread: [] };
|
|
32
|
+
}
|
|
33
|
+
return parseSphinxConf(text);
|
|
34
|
+
}
|
|
35
|
+
/** The same, from text. Exported for tests. */
|
|
36
|
+
export function parseSphinxConf(text) {
|
|
37
|
+
const values = new Map();
|
|
38
|
+
const unread = new Set();
|
|
39
|
+
const src = text.replace(/\r\n?/g, "\n");
|
|
40
|
+
// Statements are found in a copy with triple-quoted strings blanked (a
|
|
41
|
+
// docstring may show `exclude_patterns = [...]` at column 0); literals are
|
|
42
|
+
// read from the source at the same offsets.
|
|
43
|
+
const scan = blankTripleQuoted(src);
|
|
44
|
+
for (const name of Object.keys(NAMES)) {
|
|
45
|
+
// After `;` on a line: a second statement this reader does not follow.
|
|
46
|
+
if (new RegExp(`;\\s*${name}\\s*(?:\\+?=(?!=)|\\.(?:append|extend)\\b)`).test(scan))
|
|
47
|
+
unread.add(name);
|
|
48
|
+
// Every mention that writes the name, at any indentation, with an
|
|
49
|
+
// optional annotation (`exclude_patterns: list[str] = [...]`).
|
|
50
|
+
const re = new RegExp(`^([ \\t]*)${name}\\s*(\\+=|(?::[^=\\n]*)?=(?!=)|\\.append\\s*\\(|\\.extend\\s*\\()`, "gm");
|
|
51
|
+
for (const m of scan.matchAll(re)) {
|
|
52
|
+
const indent = m[1];
|
|
53
|
+
const op = m[2].startsWith(":") ? "=" : m[2].replace(/\s+/g, "");
|
|
54
|
+
if (indent) {
|
|
55
|
+
// Conditional or inside a function: the value depends on code.
|
|
56
|
+
unread.add(name);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const at = (m.index ?? 0) + m[0].length;
|
|
60
|
+
if (op === ".append(") {
|
|
61
|
+
const str = readString(src, skipSpace(src, at));
|
|
62
|
+
const close = str ? skipSpace(src, str.end) : -1;
|
|
63
|
+
if (!str || src[close] !== ")" || !endsStatement(src, close + 1)) {
|
|
64
|
+
unread.add(name);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
values.set(name, [...(values.get(name) ?? []), str.value]);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const list = readStringList(src, skipSpace(src, at));
|
|
71
|
+
// The literal must be the whole value: `["a"] + custom` is not ["a"].
|
|
72
|
+
const close = list && op === ".extend(" ? skipSpace(src, list.end) : -1;
|
|
73
|
+
const whole = list && (op === ".extend(" ? src[close] === ")" && endsStatement(src, close + 1) : endsStatement(src, list.end));
|
|
74
|
+
if (!list || !whole) {
|
|
75
|
+
unread.add(name);
|
|
76
|
+
// A plain reassignment we cannot read replaces whatever came
|
|
77
|
+
// before: the earlier literal is no longer the value.
|
|
78
|
+
if (op === "=")
|
|
79
|
+
values.delete(name);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
values.set(name, op === "=" ? list.items : [...(values.get(name) ?? []), ...list.items]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const get = (n) => (unread.has(n) && !values.has(n) ? [] : values.get(n) ?? []);
|
|
86
|
+
return {
|
|
87
|
+
excludePatterns: get("exclude_patterns"),
|
|
88
|
+
templatesPath: get("templates_path"),
|
|
89
|
+
htmlStaticPath: get("html_static_path"),
|
|
90
|
+
htmlExtraPath: get("html_extra_path"),
|
|
91
|
+
unread: [...unread].sort(),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/** `src` with the inside of every triple-quoted string replaced by spaces
|
|
95
|
+
* (newlines kept), so offsets still line up. */
|
|
96
|
+
function blankTripleQuoted(src) {
|
|
97
|
+
return src.replace(/("""|\'\'\')([\s\S]*?)(\1|$)/g, (_m, q, body, close) => q + body.replace(/[^\n]/g, " ") + close);
|
|
98
|
+
}
|
|
99
|
+
/** Only spaces, a comment or `;` before the end of the line (or file)? */
|
|
100
|
+
function endsStatement(s, i) {
|
|
101
|
+
while (i < s.length && (s[i] === " " || s[i] === "\t"))
|
|
102
|
+
i++;
|
|
103
|
+
return i >= s.length || s[i] === "\n" || s[i] === "#" || s[i] === ";";
|
|
104
|
+
}
|
|
105
|
+
function skipSpace(s, i) {
|
|
106
|
+
for (;;) {
|
|
107
|
+
while (i < s.length && /\s/.test(s[i]))
|
|
108
|
+
i++;
|
|
109
|
+
if (s[i] === "#") {
|
|
110
|
+
while (i < s.length && s[i] !== "\n")
|
|
111
|
+
i++;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (s[i] === "\\" && s[i + 1] === "\n") {
|
|
115
|
+
i += 2;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
return i;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** A plain string literal at `i` (optional r/u prefix; no f-, b- strings). */
|
|
122
|
+
function readString(s, i) {
|
|
123
|
+
let raw = false;
|
|
124
|
+
if (/[rRuU]/.test(s[i] ?? "") && /["']/.test(s[i + 1] ?? "")) {
|
|
125
|
+
raw = /[rR]/.test(s[i]);
|
|
126
|
+
i++;
|
|
127
|
+
}
|
|
128
|
+
const q = s[i];
|
|
129
|
+
if (q !== '"' && q !== "'")
|
|
130
|
+
return null;
|
|
131
|
+
const triple = s.startsWith(q.repeat(3), i);
|
|
132
|
+
const close = triple ? q.repeat(3) : q;
|
|
133
|
+
let j = i + close.length;
|
|
134
|
+
let value = "";
|
|
135
|
+
while (j < s.length) {
|
|
136
|
+
if (s.startsWith(close, j))
|
|
137
|
+
return { value, end: j + close.length };
|
|
138
|
+
const c = s[j];
|
|
139
|
+
if (c === "\n" && !triple)
|
|
140
|
+
return null;
|
|
141
|
+
if (c === "\\" && !raw) {
|
|
142
|
+
const n = s[j + 1];
|
|
143
|
+
value += n === "n" ? "\n" : n === "t" ? "\t" : n;
|
|
144
|
+
j += 2;
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
value += c;
|
|
148
|
+
j++;
|
|
149
|
+
}
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
/** `[ "a", 'b', ]` or `( … )` of string literals only; implicit
|
|
153
|
+
* concatenation (`"a" "b"`) is followed. */
|
|
154
|
+
function readStringList(s, i) {
|
|
155
|
+
const open = s[i];
|
|
156
|
+
const closer = open === "[" ? "]" : open === "(" ? ")" : null;
|
|
157
|
+
if (!closer)
|
|
158
|
+
return null;
|
|
159
|
+
const items = [];
|
|
160
|
+
let j = skipSpace(s, i + 1);
|
|
161
|
+
while (j < s.length) {
|
|
162
|
+
if (s[j] === closer)
|
|
163
|
+
return { items, end: j + 1 };
|
|
164
|
+
const str = readString(s, j);
|
|
165
|
+
if (!str)
|
|
166
|
+
return null;
|
|
167
|
+
let value = str.value;
|
|
168
|
+
j = skipSpace(s, str.end);
|
|
169
|
+
for (let next = readString(s, j); next; next = readString(s, j)) {
|
|
170
|
+
value += next.value;
|
|
171
|
+
j = skipSpace(s, next.end);
|
|
172
|
+
}
|
|
173
|
+
items.push(value);
|
|
174
|
+
if (s[j] === ",")
|
|
175
|
+
j = skipSpace(s, j + 1);
|
|
176
|
+
else if (s[j] !== closer)
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
/** Longest pattern compiled; a longer one matches nothing. */
|
|
182
|
+
const MAX_PATTERN = 1024;
|
|
183
|
+
/**
|
|
184
|
+
* Sphinx's glob for `exclude_patterns` (sphinx.util.matching
|
|
185
|
+
* `_translate_pattern`): `**` crosses `/`, `*` and `?` do not, `[...]` is a
|
|
186
|
+
* class (`[!…]` negated and never `/`, a leading `^` literal, a `]` first
|
|
187
|
+
* in the class literal), and the pattern matches the whole path.
|
|
188
|
+
*
|
|
189
|
+
* Matched by a table over (token, position), never a backtracking RegExp:
|
|
190
|
+
* `**a**a**a…` against a long path took 50 s as a RegExp, and an invalid
|
|
191
|
+
* range threw. Both come from a conf.py we did not write.
|
|
192
|
+
*/
|
|
193
|
+
export function compileSphinxPattern(pattern) {
|
|
194
|
+
if (pattern.length > MAX_PATTERN)
|
|
195
|
+
return () => false;
|
|
196
|
+
const tokens = [];
|
|
197
|
+
const p = pattern;
|
|
198
|
+
for (let i = 0; i < p.length; i++) {
|
|
199
|
+
const c = p[i];
|
|
200
|
+
if (c === "*") {
|
|
201
|
+
if (p[i + 1] === "*") {
|
|
202
|
+
tokens.push({ k: "globstar" });
|
|
203
|
+
i++;
|
|
204
|
+
}
|
|
205
|
+
else
|
|
206
|
+
tokens.push({ k: "star" });
|
|
207
|
+
}
|
|
208
|
+
else if (c === "?")
|
|
209
|
+
tokens.push({ k: "one" });
|
|
210
|
+
else if (c === "[") {
|
|
211
|
+
let j = i + 1;
|
|
212
|
+
if (p[j] === "!")
|
|
213
|
+
j++;
|
|
214
|
+
if (p[j] === "]")
|
|
215
|
+
j++;
|
|
216
|
+
while (j < p.length && p[j] !== "]")
|
|
217
|
+
j++;
|
|
218
|
+
if (j >= p.length) {
|
|
219
|
+
tokens.push({ k: "lit", c: "[" });
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
let body = p.slice(i + 1, j);
|
|
223
|
+
const neg = body.startsWith("!");
|
|
224
|
+
if (neg)
|
|
225
|
+
body = body.slice(1);
|
|
226
|
+
const items = [];
|
|
227
|
+
for (let k = 0; k < body.length; k++) {
|
|
228
|
+
if (body[k + 1] === "-" && k + 2 < body.length) {
|
|
229
|
+
items.push([body[k], body[k + 2]]); // a reversed range matches nothing
|
|
230
|
+
k += 2;
|
|
231
|
+
}
|
|
232
|
+
else
|
|
233
|
+
items.push(body[k]);
|
|
234
|
+
}
|
|
235
|
+
tokens.push({ k: "class", neg, items });
|
|
236
|
+
i = j;
|
|
237
|
+
}
|
|
238
|
+
else
|
|
239
|
+
tokens.push({ k: "lit", c });
|
|
240
|
+
}
|
|
241
|
+
// Consecutive stars add nothing but work.
|
|
242
|
+
const toks = tokens.filter((t, n) => !(t.k === "star" && tokens[n - 1]?.k === "star"));
|
|
243
|
+
const inClass = (t, ch) => {
|
|
244
|
+
const hit = t.items.some((it) => (typeof it === "string" ? it === ch : it[0] <= ch && ch <= it[1]));
|
|
245
|
+
return t.neg ? !hit && ch !== "/" : hit;
|
|
246
|
+
};
|
|
247
|
+
return (path) => {
|
|
248
|
+
const m = path.length;
|
|
249
|
+
let cur = new Array(m + 1).fill(false);
|
|
250
|
+
cur[0] = true;
|
|
251
|
+
for (const t of toks) {
|
|
252
|
+
const next = new Array(m + 1).fill(false);
|
|
253
|
+
if (t.k === "star" || t.k === "globstar") {
|
|
254
|
+
let run = false;
|
|
255
|
+
for (let i = 0; i <= m; i++) {
|
|
256
|
+
if (t.k === "star" && i > 0 && path[i - 1] === "/")
|
|
257
|
+
run = false;
|
|
258
|
+
run = run || cur[i];
|
|
259
|
+
next[i] = run;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
for (let i = 0; i < m; i++) {
|
|
264
|
+
if (!cur[i])
|
|
265
|
+
continue;
|
|
266
|
+
const ch = path[i];
|
|
267
|
+
const ok = t.k === "lit" ? ch === t.c : t.k === "one" ? ch !== "/" : inClass(t, ch);
|
|
268
|
+
if (ok)
|
|
269
|
+
next[i + 1] = true;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
cur = next;
|
|
273
|
+
}
|
|
274
|
+
return cur[m];
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* A predicate over source-relative `/` paths: true when Sphinx would skip
|
|
279
|
+
* the path. A directory that matches excludes everything under it, as
|
|
280
|
+
* Sphinx prunes it from the walk. Patterns are taken as written, as Sphinx
|
|
281
|
+
* does (`_build/` matches nothing).
|
|
282
|
+
*/
|
|
283
|
+
export function sphinxExcluder(patterns) {
|
|
284
|
+
const matchers = patterns.filter(Boolean).slice(0, 1000).map(compileSphinxPattern);
|
|
285
|
+
if (!matchers.length)
|
|
286
|
+
return () => false;
|
|
287
|
+
return (rel) => {
|
|
288
|
+
const parts = rel.replace(/\\/g, "/").split("/").filter(Boolean);
|
|
289
|
+
for (let n = 1; n <= parts.length; n++) {
|
|
290
|
+
const prefix = parts.slice(0, n).join("/");
|
|
291
|
+
if (matchers.some((m) => m(prefix)))
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
return false;
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* What Sphinx leaves out of its documents: `exclude_patterns`, plus the
|
|
299
|
+
* template and static/extra file directories (Sphinx adds those itself).
|
|
300
|
+
* `pages` is for finding pages; `assets` keeps static/extra (pages link
|
|
301
|
+
* images under `_static`) and applies `exclude_patterns` only.
|
|
302
|
+
*/
|
|
303
|
+
export function sphinxExclusions(conf) {
|
|
304
|
+
return {
|
|
305
|
+
pages: sphinxExcluder([...conf.excludePatterns, ...conf.templatesPath, ...conf.htmlStaticPath, ...conf.htmlExtraPath]),
|
|
306
|
+
assets: sphinxExcluder(conf.excludePatterns),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=conf-static.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conf-static.js","sourceRoot":"","sources":["../src/conf-static.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* See plans/format-rst.md.
|
|
9
9
|
*/
|
|
10
|
-
export { rstFileToXml, sidecarAvailable, sphinxAvailable, sphinxBuildXml, findPython, missingPythonMessage, RstSidecarError, } from "./sidecar.js";
|
|
10
|
+
export { rstFileToXml, sidecarAvailable, sphinxAvailable, pythonHasModule, sphinxBuildXml, findPython, missingPythonMessage, RstSidecarError, } from "./sidecar.js";
|
|
11
11
|
export { parseRstFile, parseRstXml, type ParseRstResult } from "./parse.js";
|
|
12
|
-
export { docutilsXmlToDogsbayMd, type TransformResult, type TransformOptions, type RstLedgerEntry, } from "./transform.js";
|
|
13
|
-
export {
|
|
12
|
+
export { docutilsXmlToDogsbayMd, collectSectionAnchors, type AnchorIndex, type TransformResult, type TransformOptions, type RstLedgerEntry, } from "./transform.js";
|
|
13
|
+
export { readSphinxConfStatic, parseSphinxConf, sphinxExcluder, sphinxExclusions, compileSphinxPattern, type StaticSphinxConf, } from "./conf-static.js";
|
|
14
|
+
export { loadSphinx, findSphinxSrc, navFromSphinxMeta, readSphinxMeta, type SphinxMeta, type SphinxToctree, type SphinxLoadResult, type SphinxDoc, } from "./loaders/sphinx.js";
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EACV,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* See plans/format-rst.md.
|
|
9
9
|
*/
|
|
10
|
-
export { rstFileToXml, sidecarAvailable, sphinxAvailable, sphinxBuildXml, findPython, missingPythonMessage, RstSidecarError, } from "./sidecar.js";
|
|
10
|
+
export { rstFileToXml, sidecarAvailable, sphinxAvailable, pythonHasModule, sphinxBuildXml, findPython, missingPythonMessage, RstSidecarError, } from "./sidecar.js";
|
|
11
11
|
export { parseRstFile, parseRstXml } from "./parse.js";
|
|
12
|
-
export { docutilsXmlToDogsbayMd, } from "./transform.js";
|
|
13
|
-
export {
|
|
12
|
+
export { docutilsXmlToDogsbayMd, collectSectionAnchors, } from "./transform.js";
|
|
13
|
+
export { readSphinxConfStatic, parseSphinxConf, sphinxExcluder, sphinxExclusions, compileSphinxPattern, } from "./conf-static.js";
|
|
14
|
+
export { loadSphinx, findSphinxSrc, navFromSphinxMeta, readSphinxMeta, } from "./loaders/sphinx.js";
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAuB,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAuB,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAKtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,GAKf,MAAM,qBAAqB,CAAC"}
|
package/dist/loaders/plain.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ export interface RstPageSource {
|
|
|
6
6
|
}
|
|
7
7
|
/** Slug for a source path relative to the docs root (README → index). */
|
|
8
8
|
export declare function rstPathToSlug(rel: string): string;
|
|
9
|
-
/** Walk `dir` for every `.rst` file (skipping dotdirs + _build/_static
|
|
10
|
-
|
|
9
|
+
/** Walk `dir` for every `.rst` file (skipping dotdirs + _build/_static, and
|
|
10
|
+
* what `exclude` names: a source-relative `/` path → skip it). */
|
|
11
|
+
export declare function walkRstFiles(dir: string, exclude?: (rel: string) => boolean): RstPageSource[];
|
|
11
12
|
/**
|
|
12
13
|
* Infer a nav tree from page slugs (no toctree available in plain mode).
|
|
13
14
|
* Directory segments become groups; `<dir>/index` is the group's landing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../src/loaders/plain.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED
|
|
1
|
+
{"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../src/loaders/plain.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;mEACmE;AACnE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,aAAa,EAAE,CA4B7F;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,SAAK,GAAG,OAAO,EAAE,CAgCxG;AAUD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAuClD"}
|
package/dist/loaders/plain.js
CHANGED
|
@@ -17,8 +17,9 @@ export function rstPathToSlug(rel) {
|
|
|
17
17
|
p = p.replace(/\/(README|index)$/i, "/index");
|
|
18
18
|
return p;
|
|
19
19
|
}
|
|
20
|
-
/** Walk `dir` for every `.rst` file (skipping dotdirs + _build/_static
|
|
21
|
-
|
|
20
|
+
/** Walk `dir` for every `.rst` file (skipping dotdirs + _build/_static, and
|
|
21
|
+
* what `exclude` names: a source-relative `/` path → skip it). */
|
|
22
|
+
export function walkRstFiles(dir, exclude) {
|
|
22
23
|
const out = [];
|
|
23
24
|
const SKIP = new Set(["_build", "_static", "_templates", "node_modules"]);
|
|
24
25
|
const walk = (d) => {
|
|
@@ -40,6 +41,8 @@ export function walkRstFiles(dir) {
|
|
|
40
41
|
catch {
|
|
41
42
|
continue;
|
|
42
43
|
}
|
|
44
|
+
if (exclude?.(relative(dir, full)))
|
|
45
|
+
continue;
|
|
43
46
|
if (st.isDirectory())
|
|
44
47
|
walk(full);
|
|
45
48
|
else if (name.toLowerCase().endsWith(".rst")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain.js","sourceRoot":"","sources":["../../src/loaders/plain.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAS3C,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACpD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"plain.js","sourceRoot":"","sources":["../../src/loaders/plain.ts"],"names":[],"mappings":"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"}
|
package/dist/loaders/sphinx.d.ts
CHANGED
|
@@ -14,7 +14,41 @@ export interface SphinxLoadResult {
|
|
|
14
14
|
nav: NavItem[];
|
|
15
15
|
/** Root document name (master_doc / root_doc), default "index". */
|
|
16
16
|
rootDoc: string;
|
|
17
|
+
/** What the sidecar read from the build environment; null when absent. */
|
|
18
|
+
meta: SphinxMeta | null;
|
|
17
19
|
}
|
|
20
|
+
/** One toctree as Sphinx stores it: hidden ones included, globs expanded. */
|
|
21
|
+
export interface SphinxToctree {
|
|
22
|
+
caption: string | null;
|
|
23
|
+
hidden: boolean;
|
|
24
|
+
/** [explicit title or null, docname | "self" | URL] */
|
|
25
|
+
entries: [string | null, string][];
|
|
26
|
+
}
|
|
27
|
+
/** `_dogsbay/meta.json`, written by the sidecar from the build environment. */
|
|
28
|
+
export interface SphinxMeta {
|
|
29
|
+
version: 1;
|
|
30
|
+
rootDoc: string;
|
|
31
|
+
toctrees: Record<string, SphinxToctree[]>;
|
|
32
|
+
titles: Record<string, string>;
|
|
33
|
+
/** rediraffe / sphinx-reredirects, as configured (source paths, raw). */
|
|
34
|
+
redirects: {
|
|
35
|
+
from: string;
|
|
36
|
+
to: string;
|
|
37
|
+
kind: "rediraffe" | "reredirects";
|
|
38
|
+
}[];
|
|
39
|
+
/** `html_extra_path` / `html_static_path`, absolute. Absent before they
|
|
40
|
+
* were recorded. */
|
|
41
|
+
htmlExtraPath?: string[];
|
|
42
|
+
htmlStaticPath?: string[];
|
|
43
|
+
}
|
|
44
|
+
/** Read the sidecar's meta file; null when it is missing or not version 1. */
|
|
45
|
+
export declare function readSphinxMeta(outDir: string): SphinxMeta | null;
|
|
46
|
+
/**
|
|
47
|
+
* The nav from Sphinx's own toctrees: hidden and visible alike, followed
|
|
48
|
+
* across documents from the root, with the root page itself first. A document reached twice is linked again
|
|
49
|
+
* but not expanded again, which also breaks cycles. A caption makes a group.
|
|
50
|
+
*/
|
|
51
|
+
export declare function navFromSphinxMeta(meta: SphinxMeta, hrefPrefix?: string): NavItem[];
|
|
18
52
|
/** Find the Sphinx source dir (the dir with conf.py) at or below `dir`. */
|
|
19
53
|
export declare function findSphinxSrc(dir: string): string | null;
|
|
20
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sphinx.d.ts","sourceRoot":"","sources":["../../src/loaders/sphinx.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sphinx.d.ts","sourceRoot":"","sources":["../../src/loaders/sphinx.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,WAAW,SAAS;IACxB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;CACpC;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,yEAAyE;IACzE,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAA;KAAE,EAAE,CAAC;IAC7E;yBACqB;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAOhE;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,SAAK,GAAG,OAAO,EAAE,CAkC9E;AA0BD,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQxD;AAkHD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,gBAAgB,CAqB/E"}
|
package/dist/loaders/sphinx.js
CHANGED
|
@@ -9,11 +9,68 @@
|
|
|
9
9
|
*
|
|
10
10
|
* See plans/format-rst.md Phase 2.
|
|
11
11
|
*/
|
|
12
|
-
import { existsSync, mkdtempSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
12
|
+
import { existsSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync } from "node:fs";
|
|
13
13
|
import { join, relative } from "node:path";
|
|
14
14
|
import { tmpdir } from "node:os";
|
|
15
15
|
import { parseDocument } from "htmlparser2";
|
|
16
16
|
import { sphinxBuildXml } from "../sidecar.js";
|
|
17
|
+
/** Read the sidecar's meta file; null when it is missing or not version 1. */
|
|
18
|
+
export function readSphinxMeta(outDir) {
|
|
19
|
+
try {
|
|
20
|
+
const meta = JSON.parse(readFileSync(join(outDir, "_dogsbay", "meta.json"), "utf-8"));
|
|
21
|
+
return meta?.version === 1 ? meta : null;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const URL_RE = /^[a-z][a-z0-9+.-]*:/i;
|
|
28
|
+
/**
|
|
29
|
+
* The nav from Sphinx's own toctrees: hidden and visible alike, followed
|
|
30
|
+
* across documents from the root, with the root page itself first. A document reached twice is linked again
|
|
31
|
+
* but not expanded again, which also breaks cycles. A caption makes a group.
|
|
32
|
+
*/
|
|
33
|
+
export function navFromSphinxMeta(meta, hrefPrefix = "") {
|
|
34
|
+
const prefix = hrefPrefix.replace(/\/$/, "");
|
|
35
|
+
const expanded = new Set();
|
|
36
|
+
const navForDoc = (docname) => {
|
|
37
|
+
if (expanded.has(docname))
|
|
38
|
+
return [];
|
|
39
|
+
expanded.add(docname);
|
|
40
|
+
const out = [];
|
|
41
|
+
for (const toc of meta.toctrees[docname] ?? []) {
|
|
42
|
+
const entries = [];
|
|
43
|
+
for (const [explicit, ref] of toc.entries) {
|
|
44
|
+
if (ref === "self")
|
|
45
|
+
continue;
|
|
46
|
+
if (URL_RE.test(ref)) {
|
|
47
|
+
// A toctree may list external pages; only http(s)/mailto become
|
|
48
|
+
// links (a `javascript:` entry would reach the sidebar).
|
|
49
|
+
if (/^(?:https?|mailto):/i.test(ref))
|
|
50
|
+
entries.push({ label: explicit ?? ref, href: ref });
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const item = { label: explicit ?? meta.titles[ref] ?? ref, href: `${prefix}/${ref}` };
|
|
54
|
+
const kids = navForDoc(ref);
|
|
55
|
+
if (kids.length)
|
|
56
|
+
item.children = kids;
|
|
57
|
+
entries.push(item);
|
|
58
|
+
}
|
|
59
|
+
if (toc.caption && entries.length)
|
|
60
|
+
out.push({ label: toc.caption, children: entries });
|
|
61
|
+
else
|
|
62
|
+
out.push(...entries);
|
|
63
|
+
}
|
|
64
|
+
return out;
|
|
65
|
+
};
|
|
66
|
+
const nav = navForDoc(meta.rootDoc);
|
|
67
|
+
// Sphinx never lists the root doc in its own toctree (the logo links
|
|
68
|
+
// home); a nav that leaves it out makes `routablesFrom: nav` drop the
|
|
69
|
+
// homepage. It goes first, under its title, unless a toctree lists it.
|
|
70
|
+
const rootHref = `${prefix}/${meta.rootDoc}`;
|
|
71
|
+
const listed = (items) => items.some((i) => i.href === rootHref || listed(i.children ?? []));
|
|
72
|
+
return listed(nav) ? nav : [{ label: meta.titles[meta.rootDoc] ?? "Home", href: rootHref }, ...nav];
|
|
73
|
+
}
|
|
17
74
|
// ── local dom guards (never instanceof — see transform.ts) ──────────────────
|
|
18
75
|
function isTag(n) {
|
|
19
76
|
return n.type === "tag" || n.type === "script" || n.type === "style";
|
|
@@ -184,11 +241,23 @@ export function loadSphinx(sourceDir, hrefPrefix = "") {
|
|
|
184
241
|
if (!srcDir)
|
|
185
242
|
throw new Error(`No Sphinx conf.py found under ${sourceDir}`);
|
|
186
243
|
const outDir = mkdtempSync(join(tmpdir(), "dogsbay-sphinx-xml-"));
|
|
187
|
-
|
|
244
|
+
try {
|
|
245
|
+
sphinxBuildXml(srcDir, outDir);
|
|
246
|
+
}
|
|
247
|
+
catch (err) {
|
|
248
|
+
// The caller removes outDir after reading it; on a failed build it never
|
|
249
|
+
// gets it, so it is removed here.
|
|
250
|
+
rmSync(outDir, { recursive: true, force: true });
|
|
251
|
+
throw err;
|
|
252
|
+
}
|
|
188
253
|
const docs = enumerateDocs(outDir);
|
|
254
|
+
const meta = readSphinxMeta(outDir);
|
|
255
|
+
if (meta)
|
|
256
|
+
return { srcDir, outDir, docs, nav: navFromSphinxMeta(meta, hrefPrefix), rootDoc: meta.rootDoc, meta };
|
|
257
|
+
// Fallback: the rendered toctrees in the XML (misses hidden ones).
|
|
189
258
|
const rootDoc = readRootDoc(srcDir);
|
|
190
259
|
const docMap = new Map(docs.map((d) => [d.slug, d.xmlPath]));
|
|
191
260
|
const nav = docMap.has(rootDoc) ? buildSphinxNav(rootDoc, docMap, hrefPrefix) : [];
|
|
192
|
-
return { srcDir, outDir, docs, nav, rootDoc };
|
|
261
|
+
return { srcDir, outDir, docs, nav, rootDoc, meta: null };
|
|
193
262
|
}
|
|
194
263
|
//# sourceMappingURL=sphinx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sphinx.js","sourceRoot":"","sources":["../../src/loaders/sphinx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"sphinx.js","sourceRoot":"","sources":["../../src/loaders/sphinx.ts"],"names":[],"mappings":"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"}
|