@dogsbay/format-rst 0.2.0-beta.114 → 0.2.0-beta.116
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
package/dist/cli.d.ts
CHANGED
|
@@ -5,8 +5,23 @@ export interface RstImportResult {
|
|
|
5
5
|
nav: NavItem[];
|
|
6
6
|
/** Which mode actually ran ("sphinx" | "plain"), for reporting. */
|
|
7
7
|
mode: "sphinx" | "plain";
|
|
8
|
+
/**
|
|
9
|
+
* Redirects with no page to carry them (an external target, a missing
|
|
10
|
+
* page), for `redirects:` in the site config. Old paths of pages that
|
|
11
|
+
* still exist ride on those pages as `aliases:` front matter instead.
|
|
12
|
+
*/
|
|
13
|
+
redirects: Record<string, string>;
|
|
14
|
+
/** How many old paths became `aliases:` on surviving pages. */
|
|
15
|
+
aliasCount: number;
|
|
16
|
+
/**
|
|
17
|
+
* Files the Sphinx build generated (sphinx-needs charts), copied out of the
|
|
18
|
+
* build before it was removed: served at `/sphinx-generated/`. The caller
|
|
19
|
+
* copies or mounts the directory; it is a temp dir.
|
|
20
|
+
*/
|
|
21
|
+
generatedDir?: string;
|
|
8
22
|
}
|
|
9
23
|
export declare function importRst(source: string, opts: Record<string, unknown>): Promise<RstImportResult>;
|
|
24
|
+
export declare function trackGeneratedDir(dir: string): string;
|
|
10
25
|
export declare const plugin: FormatPlugin;
|
|
11
26
|
export { rstPathToSlug };
|
|
12
27
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAW,MAAM,gBAAgB,CAAC;AAMjF,OAAO,EAAyC,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAY1F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC,CAyD1B;AAgCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrD;AAkUD,eAAO,MAAM,MAAM,EAAE,YAiDpB,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -13,12 +13,15 @@
|
|
|
13
13
|
* Needs Python 3 + docutils (and Sphinx for Sphinx projects) — a migrate-
|
|
14
14
|
* time requirement, detected up front with an actionable error.
|
|
15
15
|
*/
|
|
16
|
-
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
17
|
-
import {
|
|
16
|
+
import { copyFileSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, rmSync } from "node:fs";
|
|
17
|
+
import { tmpdir } from "node:os";
|
|
18
|
+
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
18
19
|
import { extractHeadings } from "@dogsbay/format-dogsbay-md";
|
|
19
20
|
import { parseRstFile, parseRstXml } from "./parse.js";
|
|
20
21
|
import { loadSphinx, findSphinxSrc } from "./loaders/sphinx.js";
|
|
22
|
+
import { collectSectionAnchors } from "./transform.js";
|
|
21
23
|
import { walkRstFiles, inferNav, isRstDominant, rstPathToSlug } from "./loaders/plain.js";
|
|
24
|
+
import { readSphinxConfStatic, sphinxExclusions } from "./conf-static.js";
|
|
22
25
|
import { sidecarAvailable, sphinxAvailable, missingPythonMessage, RstSidecarError } from "./sidecar.js";
|
|
23
26
|
function prettify(slug) {
|
|
24
27
|
return slug
|
|
@@ -32,9 +35,24 @@ export async function importRst(source, opts) {
|
|
|
32
35
|
throw new Error(`Source directory not found: ${source}`);
|
|
33
36
|
if (!sidecarAvailable())
|
|
34
37
|
throw new RstSidecarError(missingPythonMessage());
|
|
38
|
+
// Only two loaders exist. Anything else (`auto`, `Sphinx`, a typo) used
|
|
39
|
+
// to fall through to the auto path and run conf.py.
|
|
40
|
+
if (opts.loader !== undefined && opts.loader !== "plain" && opts.loader !== "sphinx") {
|
|
41
|
+
throw new Error(`--loader must be 'plain' or 'sphinx', not '${String(opts.loader)}'`);
|
|
42
|
+
}
|
|
35
43
|
const hrefPrefix = typeof opts.hrefPrefix === "string" ? opts.hrefPrefix : "";
|
|
36
44
|
const forcePlain = opts.loader === "plain";
|
|
45
|
+
const forceSphinx = opts.loader === "sphinx";
|
|
37
46
|
const sphinxSrc = forcePlain ? null : findSphinxSrc(source);
|
|
47
|
+
if (forcePlain) {
|
|
48
|
+
// Plain docutils reads .rst only: a project whose conf.py loads MyST
|
|
49
|
+
// would "succeed" with its Markdown pages missing.
|
|
50
|
+
const src = findSphinxSrc(source);
|
|
51
|
+
if (src && usesMyst(src) && hasMarkdownPages(src)) {
|
|
52
|
+
throw new Error("this Sphinx project uses MyST (myst_parser in conf.py) and docutils reads only its .rst pages, so its Markdown pages would be lost.\n" +
|
|
53
|
+
" Build it with Sphinx (runs the project's conf.py): --loader sphinx, or `rst: { sphinx: true }` on the source in dogsbay.config.yml.");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
38
56
|
// Only attempt a Sphinx build when Sphinx is actually installed — else a
|
|
39
57
|
// docutils-only env pays a guaranteed failing subprocess + scary warning
|
|
40
58
|
// before falling back. When conf.py exists but Sphinx is missing, note it.
|
|
@@ -44,6 +62,13 @@ export async function importRst(source, opts) {
|
|
|
44
62
|
}
|
|
45
63
|
catch (err) {
|
|
46
64
|
const msg = err instanceof Error ? err.message : String(err);
|
|
65
|
+
// No silent fallback when it cannot be right: Sphinx was asked for, or
|
|
66
|
+
// the project is (partly) MyST, whose .md pages plain docutils never
|
|
67
|
+
// reads — a mixed project "succeeded" with only its .rst pages.
|
|
68
|
+
if (forceSphinx || usesMyst(sphinxSrc) || walkRstFiles(sphinxSrc).length === 0) {
|
|
69
|
+
throw new Error(`the Sphinx build failed, and converting without it would lose pages.\n ${msg.split("\n").slice(-3).join("\n ")}\n` +
|
|
70
|
+
` Install the project's docs requirements for DOGSBAY_PYTHON. For MyST without Sphinx: migrate-myst --loader translate, or convert --from myst.`);
|
|
71
|
+
}
|
|
47
72
|
console.warn(`rst import: Sphinx build failed, falling back to plain docutils mode.\n ${msg.split("\n")[0]}`);
|
|
48
73
|
// Fall back walking the Sphinx SOURCE dir (where conf.py lives), not
|
|
49
74
|
// the repo root — otherwise slugs gain a spurious `docs/` prefix.
|
|
@@ -56,19 +81,108 @@ export async function importRst(source, opts) {
|
|
|
56
81
|
}
|
|
57
82
|
return importPlain(sphinxSrc ?? source, hrefPrefix);
|
|
58
83
|
}
|
|
84
|
+
/** Any `.md` page under the Sphinx source (outside build/static dirs and
|
|
85
|
+
* what conf.py excludes)? */
|
|
86
|
+
function hasMarkdownPages(dir) {
|
|
87
|
+
const SKIP = new Set(["_build", "_static", "_templates", "node_modules"]);
|
|
88
|
+
const excluded = staticExclusions(dir, true).pages;
|
|
89
|
+
const walk = (d) => {
|
|
90
|
+
let entries;
|
|
91
|
+
try {
|
|
92
|
+
entries = readdirSync(d, { withFileTypes: true });
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
for (const e of entries) {
|
|
98
|
+
if (e.name.startsWith(".") || SKIP.has(e.name))
|
|
99
|
+
continue;
|
|
100
|
+
if (excluded(relative(dir, join(d, e.name))))
|
|
101
|
+
continue;
|
|
102
|
+
if (e.isDirectory()) {
|
|
103
|
+
if (walk(join(d, e.name)))
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
else if (e.isFile() && /\.md$/i.test(e.name) && !/^readme\.md$/i.test(e.name))
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
};
|
|
111
|
+
return walk(dir);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Generated-file temp dirs live until the process exits: the plugin path
|
|
115
|
+
* hands one to the site build as an asset mount. One exit handler for all
|
|
116
|
+
* of them (a listener per import warned after ten, in a long-lived process).
|
|
117
|
+
*/
|
|
118
|
+
const generatedDirs = new Set();
|
|
119
|
+
export function trackGeneratedDir(dir) {
|
|
120
|
+
if (generatedDirs.size === 0) {
|
|
121
|
+
process.once("exit", () => {
|
|
122
|
+
for (const d of generatedDirs)
|
|
123
|
+
rmSync(d, { recursive: true, force: true });
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
generatedDirs.add(dir);
|
|
127
|
+
return dir;
|
|
128
|
+
}
|
|
129
|
+
/** Does conf.py load a MyST parser (myst_parser / myst_nb)? */
|
|
130
|
+
function usesMyst(srcDir) {
|
|
131
|
+
try {
|
|
132
|
+
return /\bmyst_(?:parser|nb)\b/.test(readFileSync(join(srcDir, "conf.py"), "utf-8"));
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
59
138
|
function importSphinx(source, hrefPrefix) {
|
|
60
|
-
const { docs, nav, outDir } = loadSphinx(source, hrefPrefix);
|
|
139
|
+
const { docs, nav, outDir, meta, srcDir } = loadSphinx(source, hrefPrefix);
|
|
61
140
|
const pages = [];
|
|
62
141
|
const ledgers = new Map();
|
|
142
|
+
const generated = new Set();
|
|
143
|
+
// Real paths: an extension records an image's absolute path as resolved.
|
|
144
|
+
const real = (p) => {
|
|
145
|
+
try {
|
|
146
|
+
return realpathSync(p);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return resolve(p);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
// Both spellings of the build dir: an extension may record either (a
|
|
153
|
+
// symlinked tmpdir on macOS, Sphinx before 7.2 not resolving paths).
|
|
154
|
+
const buildReal = real(outDir);
|
|
155
|
+
const dirs = {
|
|
156
|
+
buildDir: [...new Set([buildReal, resolve(outDir)])],
|
|
157
|
+
srcDir: real(srcDir),
|
|
158
|
+
extraDirs: meta?.htmlExtraPath ?? [],
|
|
159
|
+
staticDirs: meta?.htmlStaticPath ?? [],
|
|
160
|
+
};
|
|
161
|
+
let generatedDir;
|
|
63
162
|
let failed = 0;
|
|
64
163
|
try {
|
|
164
|
+
// Pre-pass: every doc's section anchors, so a `:ref:` into another page
|
|
165
|
+
// is rewritten to the id that page's heading actually gets.
|
|
166
|
+
// XML is read again in the main pass rather than held: a large corpus
|
|
167
|
+
// would otherwise sit in memory whole.
|
|
168
|
+
const anchors = new Map();
|
|
169
|
+
for (const doc of docs) {
|
|
170
|
+
try {
|
|
171
|
+
anchors.set(doc.slug, collectSectionAnchors(readFileSync(doc.xmlPath, "utf-8")));
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
/* reported by the main pass */
|
|
175
|
+
}
|
|
176
|
+
}
|
|
65
177
|
for (const doc of docs) {
|
|
66
178
|
try {
|
|
67
179
|
const xml = readFileSync(doc.xmlPath, "utf-8");
|
|
68
|
-
const { tree, title, markdown, ledger } = parseRstXml(xml, doc.slug, hrefPrefix);
|
|
180
|
+
const { tree, title, markdown, description, generated: gen, openapiSpecs, ledger } = parseRstXml(xml, doc.slug, hrefPrefix, anchors, dirs);
|
|
181
|
+
for (const g of gen)
|
|
182
|
+
generated.add(g);
|
|
69
183
|
if (ledger.length)
|
|
70
184
|
ledgers.set(doc.slug, ledger);
|
|
71
|
-
pages.push(makePage(doc.slug, tree, title, markdown, ledger));
|
|
185
|
+
pages.push(makePage(doc.slug, tree, title, markdown, ledger, description, openapiSpecs));
|
|
72
186
|
}
|
|
73
187
|
catch (err) {
|
|
74
188
|
failed += 1;
|
|
@@ -76,6 +190,27 @@ function importSphinx(source, hrefPrefix) {
|
|
|
76
190
|
console.warn(`rst import: failed on ${doc.slug}, skipping: ${m}`);
|
|
77
191
|
}
|
|
78
192
|
}
|
|
193
|
+
// Generated files (sphinx-needs charts) live only in the build dir:
|
|
194
|
+
// copied out before it goes.
|
|
195
|
+
if (generated.size) {
|
|
196
|
+
generatedDir = trackGeneratedDir(mkdtempSync(join(tmpdir(), "dogsbay-sphinx-generated-")));
|
|
197
|
+
for (const rel of generated) {
|
|
198
|
+
const from = join(buildReal, rel);
|
|
199
|
+
const to = join(generatedDir, rel);
|
|
200
|
+
try {
|
|
201
|
+
if (!lstatSync(from).isFile())
|
|
202
|
+
continue; // no links, no dirs
|
|
203
|
+
// A directory on the way could still be a link out of the build.
|
|
204
|
+
if (!realpathSync(from).startsWith(buildReal + "/"))
|
|
205
|
+
continue;
|
|
206
|
+
mkdirSync(dirname(to), { recursive: true });
|
|
207
|
+
copyFileSync(from, to);
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
/* a missing chart shows up as a missing image */
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
79
214
|
}
|
|
80
215
|
finally {
|
|
81
216
|
// Reclaim the temp XML build dir once every doc has been read — it can
|
|
@@ -83,20 +218,156 @@ function importSphinx(source, hrefPrefix) {
|
|
|
83
218
|
rmSync(outDir, { recursive: true, force: true });
|
|
84
219
|
}
|
|
85
220
|
reportSkips(failed, docs.length, ledgers);
|
|
86
|
-
|
|
221
|
+
const { redirects, aliasCount, skipped } = applyRedirects(meta, pages);
|
|
222
|
+
if (skipped.length) {
|
|
223
|
+
console.warn(`rst import: ${skipped.length} redirect(s) not carried:\n` + skipped.slice(0, 10).map((m) => ` ${m}`).join("\n") +
|
|
224
|
+
(skipped.length > 10 ? `\n … and ${skipped.length - 10} more` : ""));
|
|
225
|
+
}
|
|
226
|
+
return { pages, nav, mode: "sphinx", redirects, aliasCount, generatedDir };
|
|
227
|
+
}
|
|
228
|
+
/** A docname or source path (`howto/install.rst`) → its docname. */
|
|
229
|
+
function docnameOf(path) {
|
|
230
|
+
return path.replace(/^\.?\//, "").replace(/\/$/, "").replace(/\.(rst|md|txt|html?)$/i, "");
|
|
231
|
+
}
|
|
232
|
+
/** The site path a docname is served at (directory-style URLs). */
|
|
233
|
+
function sitePath(docname) {
|
|
234
|
+
const d = docname.replace(/(^|\/)index$/, "");
|
|
235
|
+
return d ? `/${d.replace(/\/$/, "")}/` : "/";
|
|
236
|
+
}
|
|
237
|
+
/** A docname a redirect may name: relative, no `.`/`..` segment, and none
|
|
238
|
+
* of the characters `_redirects` treats as syntax (see @dogsbay/site-files
|
|
239
|
+
* isSafeSitePath, which the site build applies again). */
|
|
240
|
+
function safeDocname(d) {
|
|
241
|
+
return d !== "" && !/[\s*:?#\\"<>`{}|^\u0000-\u001f\u007f]/.test(d) && !d.split("/").some((x) => x === "." || x === ".." || x === "");
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* rediraffe and sphinx-reredirects → an old path on the page that survives
|
|
245
|
+
* (`aliases:`), or a config redirect to an http(s) URL. Anything else is
|
|
246
|
+
* reported and left out rather than written: the site build refuses a
|
|
247
|
+
* redirect to a page it does not emit, or from a path that is a page, so
|
|
248
|
+
* one such line in a project's redirect file would stop the build.
|
|
249
|
+
*/
|
|
250
|
+
function applyRedirects(meta, pages) {
|
|
251
|
+
const redirects = {};
|
|
252
|
+
const skipped = [];
|
|
253
|
+
let aliasCount = 0;
|
|
254
|
+
if (!meta)
|
|
255
|
+
return { redirects, aliasCount, skipped };
|
|
256
|
+
const bySlug = new Map(pages.map((p) => [p.slug, p]));
|
|
257
|
+
const pageFor = (doc) => bySlug.get(doc) ?? bySlug.get(`${doc}/index`);
|
|
258
|
+
// A target may itself be an old path (a page moved twice); follow it, as
|
|
259
|
+
// rediraffe does, to the page that exists now.
|
|
260
|
+
const moved = new Map();
|
|
261
|
+
for (const r of meta.redirects) {
|
|
262
|
+
if (!/^[a-z][a-z0-9+.-]*:|^\/\//i.test(r.to) && !r.to.startsWith(".."))
|
|
263
|
+
moved.set(docnameOf(r.from), docnameOf(r.to.split("#")[0]));
|
|
264
|
+
}
|
|
265
|
+
const follow = (doc) => {
|
|
266
|
+
const seen = new Set();
|
|
267
|
+
while (!pageFor(doc) && moved.has(doc) && !seen.has(doc)) {
|
|
268
|
+
seen.add(doc);
|
|
269
|
+
doc = moved.get(doc);
|
|
270
|
+
}
|
|
271
|
+
return doc;
|
|
272
|
+
};
|
|
273
|
+
for (const r of meta.redirects) {
|
|
274
|
+
const show = `${r.from} → ${r.to}`;
|
|
275
|
+
const from = docnameOf(r.from);
|
|
276
|
+
if (!safeDocname(from)) {
|
|
277
|
+
skipped.push(`${show}: the old path is not a plain path`);
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
if (pageFor(from)) {
|
|
281
|
+
skipped.push(`${show}: the old path is still a page`);
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
if (/^[a-z][a-z0-9+.-]*:|^\/\//i.test(r.to)) {
|
|
285
|
+
if (/^https?:\/\/[^\s]+$/i.test(r.to))
|
|
286
|
+
redirects[sitePath(from)] = r.to;
|
|
287
|
+
else
|
|
288
|
+
skipped.push(`${show}: only http(s) URLs are redirect targets`);
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
// A fragment names a place on the page; an alias moves the whole page.
|
|
292
|
+
const [toPath] = r.to.split("#");
|
|
293
|
+
let target;
|
|
294
|
+
if (r.kind === "reredirects" && !toPath.startsWith("/")) {
|
|
295
|
+
// sphinx-reredirects targets are relative to the SOURCE page's URL.
|
|
296
|
+
const segs = from.includes("/") ? from.split("/").slice(0, -1) : [];
|
|
297
|
+
let escaped = false;
|
|
298
|
+
for (const part of toPath.split("/")) {
|
|
299
|
+
if (part === "" || part === ".")
|
|
300
|
+
continue;
|
|
301
|
+
if (part === "..")
|
|
302
|
+
escaped = segs.pop() === undefined || escaped;
|
|
303
|
+
else
|
|
304
|
+
segs.push(part);
|
|
305
|
+
}
|
|
306
|
+
if (escaped) {
|
|
307
|
+
skipped.push(`${show}: the target leaves the site`);
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
target = docnameOf(segs.join("/"));
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
target = docnameOf(toPath.replace(/^\//, ""));
|
|
314
|
+
}
|
|
315
|
+
target = follow(target);
|
|
316
|
+
const page = safeDocname(target) || target === "index" ? pageFor(target) : undefined;
|
|
317
|
+
if (!page) {
|
|
318
|
+
skipped.push(`${show}: no page ${target || "/"} in this build`);
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
const fm = page.frontmatter;
|
|
322
|
+
const alias = sitePath(from);
|
|
323
|
+
if (!(fm.aliases ??= []).includes(alias)) {
|
|
324
|
+
fm.aliases.push(alias);
|
|
325
|
+
aliasCount++;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return { redirects, aliasCount, skipped };
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* What Sphinx would leave out of `dir`, read from its conf.py WITHOUT running
|
|
332
|
+
* it (conf-static.ts). Nothing excluded when there is no conf.py; a setting
|
|
333
|
+
* the reader cannot follow is reported once.
|
|
334
|
+
*/
|
|
335
|
+
function staticConf(dir, quiet = false) {
|
|
336
|
+
const confPy = join(dir, "conf.py");
|
|
337
|
+
if (!existsSync(confPy))
|
|
338
|
+
return null;
|
|
339
|
+
const conf = readSphinxConfStatic(confPy);
|
|
340
|
+
if (conf.unread.length && !quiet) {
|
|
341
|
+
console.warn(`rst import: conf.py sets ${conf.unread.join(", ")} in code this importer does not run; ` +
|
|
342
|
+
`only its literal values are applied.`);
|
|
343
|
+
}
|
|
344
|
+
return conf;
|
|
345
|
+
}
|
|
346
|
+
function staticExclusions(dir, quiet = false) {
|
|
347
|
+
const conf = staticConf(dir, quiet);
|
|
348
|
+
return conf ? sphinxExclusions(conf) : { pages: () => false, assets: () => false };
|
|
87
349
|
}
|
|
88
350
|
function importPlain(source, hrefPrefix) {
|
|
89
|
-
|
|
351
|
+
// Plain mode runs no project code, so Sphinx's exclude_patterns are read
|
|
352
|
+
// statically: without them a vendored package's docs became pages.
|
|
353
|
+
const conf = staticConf(source);
|
|
354
|
+
const sources = walkRstFiles(source, conf ? sphinxExclusions(conf).pages : undefined);
|
|
355
|
+
const embed = (docname) => ({
|
|
356
|
+
srcDir: source,
|
|
357
|
+
docname,
|
|
358
|
+
extraDirs: (conf?.htmlExtraPath ?? []).map((p) => resolve(source, p)),
|
|
359
|
+
staticDirs: (conf?.htmlStaticPath ?? []).map((p) => resolve(source, p)),
|
|
360
|
+
});
|
|
90
361
|
const pages = [];
|
|
91
362
|
const titles = new Map();
|
|
92
363
|
const ledgers = new Map();
|
|
93
364
|
let failed = 0;
|
|
94
365
|
for (const s of sources) {
|
|
95
366
|
try {
|
|
96
|
-
const { tree, title, markdown, ledger } = parseRstFile(s.filePath, hrefPrefix);
|
|
367
|
+
const { tree, title, markdown, description, ledger, openapiSpecs } = parseRstFile(s.filePath, hrefPrefix, embed(s.slug));
|
|
97
368
|
if (ledger.length)
|
|
98
369
|
ledgers.set(s.slug, ledger);
|
|
99
|
-
const page = makePage(s.slug, tree, title, markdown, ledger);
|
|
370
|
+
const page = makePage(s.slug, tree, title, markdown, ledger, description, openapiSpecs);
|
|
100
371
|
titles.set(s.slug, page.title);
|
|
101
372
|
pages.push(page);
|
|
102
373
|
}
|
|
@@ -108,9 +379,9 @@ function importPlain(source, hrefPrefix) {
|
|
|
108
379
|
}
|
|
109
380
|
reportSkips(failed, sources.length, ledgers);
|
|
110
381
|
const nav = inferNav(sources, titles, hrefPrefix);
|
|
111
|
-
return { pages, nav, mode: "plain" };
|
|
382
|
+
return { pages, nav, mode: "plain", redirects: {}, aliasCount: 0 };
|
|
112
383
|
}
|
|
113
|
-
function makePage(slug, tree, title, markdown, ledger) {
|
|
384
|
+
function makePage(slug, tree, title, markdown, ledger, description, openapiSpecs = []) {
|
|
114
385
|
const headings = extractHeadings(tree);
|
|
115
386
|
const resolvedTitle = (title && title.trim()) ||
|
|
116
387
|
headings.find((h) => h.depth === 1)?.text ||
|
|
@@ -120,10 +391,15 @@ function makePage(slug, tree, title, markdown, ledger) {
|
|
|
120
391
|
title: resolvedTitle,
|
|
121
392
|
tree,
|
|
122
393
|
headings,
|
|
123
|
-
frontmatter: {},
|
|
394
|
+
frontmatter: description ? { description } : {},
|
|
124
395
|
// Surface the per-page ledger so downstream consumers (and anyone
|
|
125
396
|
// inspecting the page) can see which constructs were dropped/degraded.
|
|
126
|
-
meta:
|
|
397
|
+
meta: {
|
|
398
|
+
...(ledger.length ? { rstLedger: ledger } : {}),
|
|
399
|
+
// Source-relative spec files the page's `:::openapi` reads: migrate
|
|
400
|
+
// copies them into content/ at the same path.
|
|
401
|
+
...(openapiSpecs.length ? { openapiSpecs } : {}),
|
|
402
|
+
},
|
|
127
403
|
bodyMarkdown: markdown,
|
|
128
404
|
};
|
|
129
405
|
}
|
|
@@ -170,17 +446,44 @@ export const plugin = {
|
|
|
170
446
|
// a Dogsbay-MD / MkDocs corpus must NOT steal detection — rst is
|
|
171
447
|
// registered before dogsbay-md (the generic .md catch-all), so this
|
|
172
448
|
// guard keeps it from claiming markdown trees.
|
|
173
|
-
|
|
449
|
+
// A conf.py alone does not make a project rST: Canonical's MyST projects
|
|
450
|
+
// have one too. Claimed only with .rst pages to convert, so a MyST project
|
|
451
|
+
// goes to the MyST translator (which runs no project code).
|
|
452
|
+
detectSource: (path) => {
|
|
453
|
+
if (isRstDominant(path))
|
|
454
|
+
return true;
|
|
455
|
+
const src = findSphinxSrc(path);
|
|
456
|
+
return src !== null && walkRstFiles(src, staticExclusions(src, true).pages).length > 0;
|
|
457
|
+
},
|
|
174
458
|
importOptions: [
|
|
175
459
|
{
|
|
176
460
|
flags: "--loader <name>",
|
|
177
|
-
description: "
|
|
461
|
+
description: "'sphinx' builds the project with Sphinx (resolves toctree/cross-refs/autodoc; RUNS the project's conf.py). " +
|
|
462
|
+
"Default 'plain': docutils per file, no project code.",
|
|
178
463
|
},
|
|
179
464
|
],
|
|
180
465
|
exportOptions: [],
|
|
466
|
+
// `convert` / `site build`: a Sphinx build RUNS the project's conf.py, so
|
|
467
|
+
// it happens only when asked for (`--loader sphinx`, or `rst: { sphinx:
|
|
468
|
+
// true }` on the source). Otherwise each .rst file is converted with
|
|
469
|
+
// docutils, which runs no project code. (`migrate-rst` calls importRst
|
|
470
|
+
// directly and keeps its Sphinx default.)
|
|
181
471
|
async import(source, opts) {
|
|
182
|
-
const
|
|
183
|
-
|
|
472
|
+
const loader = opts.loader === undefined ? "plain" : opts.loader;
|
|
473
|
+
if (loader === "plain" && !opts.loader && findSphinxSrc(source)) {
|
|
474
|
+
console.warn("rst: found a Sphinx conf.py and did NOT run it: converting each .rst with docutils, so toctree nav, " +
|
|
475
|
+
":doc:/:ref: links and autodoc do not resolve. To build with Sphinx (runs the project's code): " +
|
|
476
|
+
"--loader sphinx, or `rst: { sphinx: true }` on the source in dogsbay.config.yml.");
|
|
477
|
+
}
|
|
478
|
+
const { pages, nav, generatedDir } = await importRst(source, { ...opts, loader });
|
|
479
|
+
// Slugs are relative to the Sphinx source dir (a nested docs/conf.py),
|
|
480
|
+
// in both modes; root-relative references in pages (`:::openapi`) too.
|
|
481
|
+
const contentRoot = findSphinxSrc(source) ?? source;
|
|
482
|
+
if (!generatedDir)
|
|
483
|
+
return { pages, nav, contentRoot };
|
|
484
|
+
// Served at /sphinx-generated/, where the pages refer to them; the temp
|
|
485
|
+
// dir goes when the process does (trackGeneratedDir).
|
|
486
|
+
return { pages, nav, contentRoot, assetMounts: [{ dir: generatedDir, root: "sphinx-generated" }] };
|
|
184
487
|
},
|
|
185
488
|
};
|
|
186
489
|
// Re-export for the migrate command.
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface StaticSphinxConf {
|
|
2
|
+
excludePatterns: string[];
|
|
3
|
+
templatesPath: string[];
|
|
4
|
+
htmlStaticPath: string[];
|
|
5
|
+
htmlExtraPath: string[];
|
|
6
|
+
/** Names that are assigned in a way this reader does not follow. */
|
|
7
|
+
unread: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare function readSphinxConfStatic(confPy: string): StaticSphinxConf;
|
|
10
|
+
/** The same, from text. Exported for tests. */
|
|
11
|
+
export declare function parseSphinxConf(text: string): StaticSphinxConf;
|
|
12
|
+
/**
|
|
13
|
+
* Sphinx's glob for `exclude_patterns` (sphinx.util.matching
|
|
14
|
+
* `_translate_pattern`): `**` crosses `/`, `*` and `?` do not, `[...]` is a
|
|
15
|
+
* class (`[!…]` negated and never `/`, a leading `^` literal, a `]` first
|
|
16
|
+
* in the class literal), and the pattern matches the whole path.
|
|
17
|
+
*
|
|
18
|
+
* Matched by a table over (token, position), never a backtracking RegExp:
|
|
19
|
+
* `**a**a**a…` against a long path took 50 s as a RegExp, and an invalid
|
|
20
|
+
* range threw. Both come from a conf.py we did not write.
|
|
21
|
+
*/
|
|
22
|
+
export declare function compileSphinxPattern(pattern: string): (path: string) => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* A predicate over source-relative `/` paths: true when Sphinx would skip
|
|
25
|
+
* the path. A directory that matches excludes everything under it, as
|
|
26
|
+
* Sphinx prunes it from the walk. Patterns are taken as written, as Sphinx
|
|
27
|
+
* does (`_build/` matches nothing).
|
|
28
|
+
*/
|
|
29
|
+
export declare function sphinxExcluder(patterns: readonly string[]): (rel: string) => boolean;
|
|
30
|
+
/**
|
|
31
|
+
* What Sphinx leaves out of its documents: `exclude_patterns`, plus the
|
|
32
|
+
* template and static/extra file directories (Sphinx adds those itself).
|
|
33
|
+
* `pages` is for finding pages; `assets` keeps static/extra (pages link
|
|
34
|
+
* images under `_static`) and applies `exclude_patterns` only.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sphinxExclusions(conf: StaticSphinxConf): {
|
|
37
|
+
pages: (rel: string) => boolean;
|
|
38
|
+
assets: (rel: string) => boolean;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=conf-static.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conf-static.d.ts","sourceRoot":"","sources":["../src/conf-static.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oEAAoE;IACpE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAUD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAQrE;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA4D9D;AA+FD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAmE/E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAWpF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAK9H"}
|