@dogsbay/format-rst 0.2.0-beta.115 → 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/parse.d.ts CHANGED
@@ -1,19 +1,40 @@
1
1
  import type { TreeNode } from "@dogsbay/types";
2
- import { type RstLedgerEntry } from "./transform.js";
2
+ import { type AnchorIndex, type RstLedgerEntry } from "./transform.js";
3
3
  export interface ParseRstResult {
4
4
  tree: TreeNode[];
5
5
  title?: string;
6
6
  /** Translated Dogsbay-MD body (no frontmatter) — for migrate to disk. */
7
7
  markdown: string;
8
+ /** `.. meta:: :description:`, when the page has one. */
9
+ description?: string;
10
+ /** Files the Sphinx build generated that the page uses (see TransformResult). */
11
+ generated: string[];
12
+ /** OpenAPI specs the page embeds, source-relative (see TransformResult). */
13
+ openapiSpecs: string[];
8
14
  ledger: RstLedgerEntry[];
9
15
  }
10
- export declare function parseRstFile(filePath: string, hrefPrefix?: string): ParseRstResult;
16
+ export declare function parseRstFile(filePath: string, hrefPrefix?: string,
17
+ /** For an API viewer embed's spec lookup (plain mode has no docPath). */
18
+ embed?: {
19
+ srcDir: string;
20
+ docname: string;
21
+ extraDirs?: string[];
22
+ staticDirs?: string[];
23
+ }): ParseRstResult;
11
24
  /**
12
25
  * Transform an already-obtained docutils XML string (no sidecar spawn).
13
26
  * `docPath` is the doc's root-relative slug (Sphinx mode) — enables
14
27
  * cross-ref (`:doc:`/`:ref:`) resolution to root-relative links.
15
28
  * `hrefPrefix` (site basePath) is applied to those resolved links so they
16
29
  * match the nav's hrefs on subpath deploys.
30
+ * `anchors` (Sphinx mode) maps every doc's section ids to heading ids, so
31
+ * fragments into other pages land on an anchor that exists.
17
32
  */
18
- export declare function parseRstXml(xml: string, docPath?: string, hrefPrefix?: string): ParseRstResult;
33
+ export declare function parseRstXml(xml: string, docPath?: string, hrefPrefix?: string, anchors?: AnchorIndex, dirs?: {
34
+ buildDir?: string | string[];
35
+ srcDir?: string;
36
+ extraDirs?: string[];
37
+ staticDirs?: string[];
38
+ docname?: string;
39
+ }): ParseRstResult;
19
40
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAGlF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAI9F"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE/F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM;AACnB,yEAAyE;AACzE,KAAK,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACvF,cAAc,CAGhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,WAAW,EACrB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACtH,cAAc,CAIhB"}
package/dist/parse.js CHANGED
@@ -11,9 +11,11 @@
11
11
  import { dogsbayMdToTree } from "@dogsbay/format-dogsbay-md";
12
12
  import { rstFileToXml } from "./sidecar.js";
13
13
  import { docutilsXmlToDogsbayMd } from "./transform.js";
14
- export function parseRstFile(filePath, hrefPrefix) {
14
+ export function parseRstFile(filePath, hrefPrefix,
15
+ /** For an API viewer embed's spec lookup (plain mode has no docPath). */
16
+ embed) {
15
17
  const xml = rstFileToXml(filePath, "plain");
16
- return parseRstXml(xml, undefined, hrefPrefix);
18
+ return parseRstXml(xml, undefined, hrefPrefix, undefined, embed);
17
19
  }
18
20
  /**
19
21
  * Transform an already-obtained docutils XML string (no sidecar spawn).
@@ -21,10 +23,12 @@ export function parseRstFile(filePath, hrefPrefix) {
21
23
  * cross-ref (`:doc:`/`:ref:`) resolution to root-relative links.
22
24
  * `hrefPrefix` (site basePath) is applied to those resolved links so they
23
25
  * match the nav's hrefs on subpath deploys.
26
+ * `anchors` (Sphinx mode) maps every doc's section ids to heading ids, so
27
+ * fragments into other pages land on an anchor that exists.
24
28
  */
25
- export function parseRstXml(xml, docPath, hrefPrefix) {
26
- const { markdown, title, ledger } = docutilsXmlToDogsbayMd(xml, { docPath, hrefPrefix });
29
+ export function parseRstXml(xml, docPath, hrefPrefix, anchors, dirs) {
30
+ const { markdown, title, description, generated, openapiSpecs, ledger } = docutilsXmlToDogsbayMd(xml, { docPath, hrefPrefix, anchors, ...dirs });
27
31
  const { tree } = dogsbayMdToTree(markdown);
28
- return { tree, title, markdown, ledger };
32
+ return { tree, title, markdown, description, generated, openapiSpecs, ledger };
29
33
  }
30
34
  //# sourceMappingURL=parse.js.map
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAuB,MAAM,gBAAgB,CAAC;AAU7E,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,UAAmB;IAChE,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,OAAgB,EAAE,UAAmB;IAC5E,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACzF,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAyC,MAAM,gBAAgB,CAAC;AAgB/F,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,UAAmB;AACnB,yEAAyE;AACzE,KAAwF;IAExF,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,OAAgB,EAChB,UAAmB,EACnB,OAAqB,EACrB,IAAuH;IAEvH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACjJ,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AACjF,CAAC"}
package/dist/sidecar.d.ts CHANGED
@@ -18,4 +18,10 @@ export declare function sphinxAvailable(): boolean;
18
18
  * per-doc docutils XML files under outDir. Throws on failure.
19
19
  */
20
20
  export declare function sphinxBuildXml(srcDir: string, outDir: string): void;
21
+ /**
22
+ * True when the found Python can import a Python module (no project code
23
+ * runs: just `import`). migrate-myst asks for `myst_parser` before choosing
24
+ * a Sphinx build, since Sphinx alone cannot read a MyST project.
25
+ */
26
+ export declare function pythonHasModule(name: string): boolean;
21
27
  //# sourceMappingURL=sidecar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"AAmBA,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAY7C;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAuB1C;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C;AAYD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,GAAG,QAAkB,GAAG,MAAM,CAczF;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,OAAO,CAazC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyBnE"}
1
+ {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"AAmBA,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAY7C;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAuB1C;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C;AAYD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,GAAG,QAAkB,GAAG,MAAM,CAczF;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,OAAO,CAazC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyBnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUrD"}
package/dist/sidecar.js CHANGED
@@ -123,7 +123,7 @@ export function sphinxBuildXml(srcDir, outDir) {
123
123
  // this machine (inherent to Sphinx, same as running the project's own
124
124
  // build). Warn so a user migrating an untrusted repo knows.
125
125
  console.warn(`rst: running the project's Sphinx build (executes ${srcDir}/conf.py and imports its modules).\n` +
126
- " Only migrate repositories you trust. Use --loader plain to skip Sphinx and avoid executing project code.");
126
+ " Only migrate repositories you trust. To run no project code: migrate-rst --loader plain, migrate-myst --loader translate, convert --from myst.");
127
127
  try {
128
128
  execFileSync(py, [SCRIPT, "--sphinx-build", srcDir, outDir], {
129
129
  encoding: "utf-8",
@@ -138,4 +138,23 @@ export function sphinxBuildXml(srcDir, outDir) {
138
138
  "The project's conf.py may reference extensions/deps not installed in this Python env.");
139
139
  }
140
140
  }
141
+ /**
142
+ * True when the found Python can import a Python module (no project code
143
+ * runs: just `import`). migrate-myst asks for `myst_parser` before choosing
144
+ * a Sphinx build, since Sphinx alone cannot read a MyST project.
145
+ */
146
+ export function pythonHasModule(name) {
147
+ if (!/^[A-Za-z_][\w.]*$/.test(name))
148
+ return false;
149
+ const py = findPython();
150
+ if (!py)
151
+ return false;
152
+ try {
153
+ execFileSync(py, ["-c", `import ${name}`], { timeout: 20_000, stdio: "ignore" });
154
+ return true;
155
+ }
156
+ catch {
157
+ return false;
158
+ }
159
+ }
141
160
  //# sourceMappingURL=sidecar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,48 @@ export interface TransformResult {
6
6
  markdown: string;
7
7
  /** Document title from the root `<document title="…">`, if any. */
8
8
  title?: string;
9
+ /** `.. meta:: :description:`, for the page's front matter. */
10
+ description?: string;
11
+ /** Files the Sphinx build GENERATED (charts), relative to its output dir:
12
+ * the page refers to them under `/sphinx-generated/`, and the importer
13
+ * copies them out before the build dir is removed. */
14
+ generated: string[];
15
+ /** OpenAPI specs the page embeds (Swagger UI / Redoc), as source-relative
16
+ * paths: the importer copies them next to the migrated pages, where the
17
+ * page's `:::openapi{spec="/…"}` expects them. */
18
+ openapiSpecs: string[];
9
19
  ledger: RstLedgerEntry[];
10
20
  }
21
+ /**
22
+ * Anchor ids per document: every id a section carries (docutils' own slug
23
+ * and each label) → the ONE id its heading is given. Built over the whole
24
+ * corpus first (`collectSectionAnchors`), so a fragment pointing into
25
+ * another page is rewritten to an anchor that exists there.
26
+ */
27
+ export type AnchorIndex = ReadonlyMap<string, ReadonlyMap<string, string>>;
11
28
  export interface TransformOptions {
12
29
  /** Docroot-relative slug of this doc (Sphinx mode). Enables cross-ref
13
30
  * resolution: `:doc:` refuris are relative to the current doc. */
14
31
  docPath?: string;
15
32
  /** URL prefix (site basePath) for resolved cross-doc links. */
16
33
  hrefPrefix?: string;
34
+ /** Section anchors of every doc (Sphinx mode); this doc's own are always
35
+ * collected from its XML. */
36
+ anchors?: AnchorIndex;
37
+ /** Sphinx's output dir and source dir: an extension can write an image's
38
+ * ABSOLUTE path into either (sphinx-needs charts land in the output dir).
39
+ * The build dir may be given as several spellings (real and as-given). */
40
+ buildDir?: string | string[];
41
+ srcDir?: string;
42
+ /** Sphinx `html_extra_path` / `html_static_path`, absolute: where a spec
43
+ * an API viewer loads in the browser can live. */
44
+ extraDirs?: string[];
45
+ staticDirs?: string[];
46
+ /** The doc's name for an embed's spec lookup when there is no `docPath`
47
+ * (plain mode, which resolves no cross-references). */
48
+ docname?: string;
17
49
  }
18
50
  export declare function docutilsXmlToDogsbayMd(xml: string, opts?: TransformOptions): TransformResult;
51
+ /** Section anchors of one XML document, for the corpus pre-pass. */
52
+ export declare function collectSectionAnchors(xml: string): Map<string, string>;
19
53
  //# sourceMappingURL=transform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AA2BD,MAAM,WAAW,gBAAgB;IAC/B;uEACmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,gBAAqB,GAAG,eAAe,CA6BhG"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;2DAEuD;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;uDAEmD;IACnD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AA4C3E,MAAM,WAAW,gBAAgB;IAC/B;uEACmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;kCAC8B;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;+EAE2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;uDACmD;IACnD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;4DACwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,gBAAqB,GAAG,eAAe,CAqDhG;AA0FD,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGtE"}