@dogsbay/format-dogsbay-md 0.2.0-beta.12 → 0.2.0-beta.121
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/attributes.d.ts +16 -1
- package/dist/attributes.d.ts.map +1 -1
- package/dist/attributes.js +14 -2
- package/dist/attributes.js.map +1 -1
- package/dist/browser.d.ts +23 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +22 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +267 -29
- package/dist/cli.js.map +1 -1
- package/dist/code-regions.d.ts +89 -0
- package/dist/code-regions.d.ts.map +1 -0
- package/dist/code-regions.js +215 -0
- package/dist/code-regions.js.map +1 -0
- package/dist/directive-guard.d.ts +11 -0
- package/dist/directive-guard.d.ts.map +1 -0
- package/dist/directive-guard.js +16 -0
- package/dist/directive-guard.js.map +1 -0
- package/dist/directive-preserve.d.ts +66 -0
- package/dist/directive-preserve.d.ts.map +1 -0
- package/dist/directive-preserve.js +410 -0
- package/dist/directive-preserve.js.map +1 -0
- package/dist/directives.js +23 -1
- package/dist/directives.js.map +1 -1
- package/dist/escape.d.ts +26 -7
- package/dist/escape.d.ts.map +1 -1
- package/dist/escape.js +101 -30
- package/dist/escape.js.map +1 -1
- package/dist/frontmatter.d.ts +12 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +67 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/headings.d.ts +50 -0
- package/dist/headings.d.ts.map +1 -0
- package/dist/headings.js +116 -0
- package/dist/headings.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/inline.d.ts +0 -3
- package/dist/inline.d.ts.map +1 -1
- package/dist/inline.js +242 -9
- package/dist/inline.js.map +1 -1
- package/dist/minja-mask.d.ts +64 -0
- package/dist/minja-mask.d.ts.map +1 -0
- package/dist/minja-mask.js +128 -0
- package/dist/minja-mask.js.map +1 -0
- package/dist/nav-file.d.ts +26 -3
- package/dist/nav-file.d.ts.map +1 -1
- package/dist/nav-file.js +91 -14
- package/dist/nav-file.js.map +1 -1
- package/dist/nav.d.ts +7 -0
- package/dist/nav.d.ts.map +1 -1
- package/dist/nav.js +23 -4
- package/dist/nav.js.map +1 -1
- package/dist/parse.d.ts +12 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +606 -29
- package/dist/parse.js.map +1 -1
- package/dist/plugin-containers.d.ts +6 -1
- package/dist/plugin-containers.d.ts.map +1 -1
- package/dist/plugin-containers.js +49 -1
- package/dist/plugin-containers.js.map +1 -1
- package/dist/plugin-mark.d.ts +13 -0
- package/dist/plugin-mark.d.ts.map +1 -0
- package/dist/plugin-mark.js +75 -0
- package/dist/plugin-mark.js.map +1 -0
- package/dist/plugin-math.d.ts +23 -0
- package/dist/plugin-math.d.ts.map +1 -0
- package/dist/plugin-math.js +91 -0
- package/dist/plugin-math.js.map +1 -0
- package/dist/renderers/diagrams.d.ts +25 -0
- package/dist/renderers/diagrams.d.ts.map +1 -0
- package/dist/renderers/diagrams.js +71 -0
- package/dist/renderers/diagrams.js.map +1 -0
- package/dist/renderers/mermaid.d.ts +24 -0
- package/dist/renderers/mermaid.d.ts.map +1 -0
- package/dist/renderers/mermaid.js +152 -0
- package/dist/renderers/mermaid.js.map +1 -0
- package/dist/serialize.d.ts +1 -1
- package/dist/serialize.d.ts.map +1 -1
- package/dist/serialize.js +466 -65
- package/dist/serialize.js.map +1 -1
- package/dist/template-pages.d.ts +69 -0
- package/dist/template-pages.d.ts.map +1 -0
- package/dist/template-pages.js +249 -0
- package/dist/template-pages.js.map +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +18 -1
- package/dist/types.js.map +1 -1
- package/dist/yaml.d.ts +1 -1
- package/dist/yaml.d.ts.map +1 -1
- package/dist/yaml.js +78 -2
- package/dist/yaml.js.map +1 -1
- package/package.json +26 -11
package/dist/attributes.d.ts
CHANGED
|
@@ -8,12 +8,27 @@
|
|
|
8
8
|
export interface RenderedAttrs {
|
|
9
9
|
id?: string;
|
|
10
10
|
classes?: string[];
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Props captured from `TreeNode.props`. Primitive values (string,
|
|
13
|
+
* number, boolean) round-trip through inline `{key="value"}` form.
|
|
14
|
+
* Arrays / plain objects are preserved here too — `renderAttrs`
|
|
15
|
+
* skips them (inline form can't represent them) but the
|
|
16
|
+
* directive renderer's `shouldUseYaml` branch picks them up and
|
|
17
|
+
* routes the directive to YAML body form, where complex values
|
|
18
|
+
* survive intact.
|
|
19
|
+
*/
|
|
20
|
+
props?: Record<string, unknown>;
|
|
12
21
|
}
|
|
13
22
|
/**
|
|
14
23
|
* Render an attribute block.
|
|
15
24
|
* Returns `{ #id .a .b key="value" }` or "" if no attrs.
|
|
16
25
|
* Leading space included so callers can append directly to content.
|
|
26
|
+
*
|
|
27
|
+
* Inline form can only carry primitive values. Arrays / objects in
|
|
28
|
+
* `props` are silently skipped here — the caller is expected to have
|
|
29
|
+
* already routed those to YAML body form (see `shouldUseYaml` in
|
|
30
|
+
* directives.ts). If a non-primitive does reach this point, dropping
|
|
31
|
+
* it is the safest fallback (there's no inline syntax for it).
|
|
17
32
|
*/
|
|
18
33
|
export declare function renderAttrs(attrs: RenderedAttrs): string;
|
|
19
34
|
/**
|
package/dist/attributes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA6BxD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,WAAW,GAAE,MAAM,EAAO,GACzB,aAAa,CAiCf"}
|
package/dist/attributes.js
CHANGED
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
* Render an attribute block.
|
|
10
10
|
* Returns `{ #id .a .b key="value" }` or "" if no attrs.
|
|
11
11
|
* Leading space included so callers can append directly to content.
|
|
12
|
+
*
|
|
13
|
+
* Inline form can only carry primitive values. Arrays / objects in
|
|
14
|
+
* `props` are silently skipped here — the caller is expected to have
|
|
15
|
+
* already routed those to YAML body form (see `shouldUseYaml` in
|
|
16
|
+
* directives.ts). If a non-primitive does reach this point, dropping
|
|
17
|
+
* it is the safest fallback (there's no inline syntax for it).
|
|
12
18
|
*/
|
|
13
19
|
export function renderAttrs(attrs) {
|
|
14
20
|
const parts = [];
|
|
@@ -29,6 +35,10 @@ export function renderAttrs(attrs) {
|
|
|
29
35
|
parts.push(key);
|
|
30
36
|
continue;
|
|
31
37
|
}
|
|
38
|
+
// Skip arrays / plain objects — inline form can't represent
|
|
39
|
+
// them. They survive via the YAML body branch upstream.
|
|
40
|
+
if (typeof value === "object")
|
|
41
|
+
continue;
|
|
32
42
|
parts.push(`${key}=${escapeAttrValue(String(value))}`);
|
|
33
43
|
}
|
|
34
44
|
}
|
|
@@ -71,8 +81,10 @@ export function splitProps(props, excludeKeys = []) {
|
|
|
71
81
|
}
|
|
72
82
|
if (value === null || value === undefined)
|
|
73
83
|
continue;
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
// Pass arrays / objects through. Inline-form rendering will skip
|
|
85
|
+
// them (`renderAttrs`); YAML-body rendering preserves them
|
|
86
|
+
// (`attrsToYaml`). The `shouldUseYaml` heuristic in directives.ts
|
|
87
|
+
// detects their presence and routes the directive accordingly.
|
|
76
88
|
cleanProps[key] = value;
|
|
77
89
|
}
|
|
78
90
|
if (Object.keys(cleanProps).length > 0) {
|
package/dist/attributes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../src/attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe entry point — the pure TreeNode round-trip and text
|
|
3
|
+
* helpers, with NO `node:fs` in the module graph.
|
|
4
|
+
*
|
|
5
|
+
* The main barrel (`.`) re-exports nav / nav-file / mermaid, which
|
|
6
|
+
* import `node:fs` at module load and so break browser/extension
|
|
7
|
+
* bundling. Consumers that only need parse/serialize (the editing
|
|
8
|
+
* engine, extension contexts) import from `@dogsbay/format-dogsbay-md/browser`
|
|
9
|
+
* instead. `parse.ts` and `serialize.ts` transit only browser-safe deps
|
|
10
|
+
* (markdown-it, js-yaml). Frontmatter is split by the local `frontmatter.ts`
|
|
11
|
+
* (js-yaml only) rather than gray-matter, whose entry `require('fs')`s at
|
|
12
|
+
* module load and would drag `node:fs` back into this graph.
|
|
13
|
+
*/
|
|
14
|
+
export { dogsbayMdToTree, parseInline, type ParseResult, type ParseOptions } from "./parse.js";
|
|
15
|
+
export { treeToDogsbayMd, nodeToDogsbayMd } from "./serialize.js";
|
|
16
|
+
export type { SerializeOptions } from "./types.js";
|
|
17
|
+
export { inlineToDogsbayMd } from "./inline.js";
|
|
18
|
+
export { transformCodeRegions, transformProseLines, transformProseSegments, fenceOpenBefore, createFenceTracker, } from "./code-regions.js";
|
|
19
|
+
export { maskMinjaInCode, unmaskMinjaInCode, maskAllMinjaOpeners, isMinjaProcessedFence, stripInlineMinjaMarkers, stripFenceMinjaMarkers } from "./minja-mask.js";
|
|
20
|
+
export { extractHeadings, slugifyHeadingText, type HeadingInfo } from "./headings.js";
|
|
21
|
+
export { splitFrontmatter, type Frontmatter } from "./frontmatter.js";
|
|
22
|
+
export { TemplatePages, TemplatePageError, declaresParams, ATTRIBUTE_BLOCK_OPEN, type TemplatePagesOptions } from "./template-pages.js";
|
|
23
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClK,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe entry point — the pure TreeNode round-trip and text
|
|
3
|
+
* helpers, with NO `node:fs` in the module graph.
|
|
4
|
+
*
|
|
5
|
+
* The main barrel (`.`) re-exports nav / nav-file / mermaid, which
|
|
6
|
+
* import `node:fs` at module load and so break browser/extension
|
|
7
|
+
* bundling. Consumers that only need parse/serialize (the editing
|
|
8
|
+
* engine, extension contexts) import from `@dogsbay/format-dogsbay-md/browser`
|
|
9
|
+
* instead. `parse.ts` and `serialize.ts` transit only browser-safe deps
|
|
10
|
+
* (markdown-it, js-yaml). Frontmatter is split by the local `frontmatter.ts`
|
|
11
|
+
* (js-yaml only) rather than gray-matter, whose entry `require('fs')`s at
|
|
12
|
+
* module load and would drag `node:fs` back into this graph.
|
|
13
|
+
*/
|
|
14
|
+
export { dogsbayMdToTree, parseInline } from "./parse.js";
|
|
15
|
+
export { treeToDogsbayMd, nodeToDogsbayMd } from "./serialize.js";
|
|
16
|
+
export { inlineToDogsbayMd } from "./inline.js";
|
|
17
|
+
export { transformCodeRegions, transformProseLines, transformProseSegments, fenceOpenBefore, createFenceTracker, } from "./code-regions.js";
|
|
18
|
+
export { maskMinjaInCode, unmaskMinjaInCode, maskAllMinjaOpeners, isMinjaProcessedFence, stripInlineMinjaMarkers, stripFenceMinjaMarkers } from "./minja-mask.js";
|
|
19
|
+
export { extractHeadings, slugifyHeadingText } from "./headings.js";
|
|
20
|
+
export { splitFrontmatter } from "./frontmatter.js";
|
|
21
|
+
export { TemplatePages, TemplatePageError, declaresParams, ATTRIBUTE_BLOCK_OPEN } from "./template-pages.js";
|
|
22
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAuC,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAClK,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAA6B,MAAM,qBAAqB,CAAC"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
1
|
import type { FormatPlugin } from "@dogsbay/types";
|
|
2
|
+
/**
|
|
3
|
+
* The source page's front matter, carried into the Dogsbay MD it becomes.
|
|
4
|
+
* It used to be DROPPED (only title and redirect were written), so a
|
|
5
|
+
* converted corpus lost `description`, `tags` and custom fields, and a
|
|
6
|
+
* query listing (`::child-links{match=…}`) over it found nothing.
|
|
7
|
+
*
|
|
8
|
+
* Keys Dogsbay MD gives meaning to keep their value only when the value
|
|
9
|
+
* MEANS that here; otherwise the key moves under `imported:` — kept, never
|
|
10
|
+
* misread. Starlight's `template: splash` (a page template) must not turn a
|
|
11
|
+
* page into a Jinja template page. A Dogsbay MD source round-trips unchanged:
|
|
12
|
+
* its values are valid by construction.
|
|
13
|
+
*
|
|
14
|
+
* `title`, `redirect` and the template keys are written by the caller.
|
|
15
|
+
* `layout` is free-form (a theme layout name) and passes as it is.
|
|
16
|
+
* `imported:`, not `source:` — Cloudflare pages carry their own `source:`
|
|
17
|
+
* (an origin URL, 91 pages), which the moved keys would have overwritten.
|
|
18
|
+
*/
|
|
19
|
+
export declare function carriedFrontmatter(fm: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
2
20
|
export declare const plugin: FormatPlugin;
|
|
3
21
|
//# 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":"AAQA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAA8C,MAAM,gBAAgB,CAAC;AA+P/F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BnG;AAsFD,eAAO,MAAM,MAAM,EAAE,YAiBpB,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -4,11 +4,14 @@
|
|
|
4
4
|
* Reads a directory of .md files, parses each via dogsbayMdToTree, builds nav
|
|
5
5
|
* from directory structure + frontmatter, returns ExportPage[] + NavItem[].
|
|
6
6
|
*/
|
|
7
|
-
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
|
|
8
|
-
import { join, relative, basename } from "node:path";
|
|
7
|
+
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
8
|
+
import { join, relative, basename, dirname } from "node:path";
|
|
9
|
+
import { extractHeadings } from "./headings.js";
|
|
9
10
|
import { parseMeta } from "@dogsbay/types";
|
|
10
11
|
import { dogsbayMdToTree } from "./parse.js";
|
|
12
|
+
import { treeToDogsbayMd } from "./serialize.js";
|
|
11
13
|
import { buildNavFromDirectory } from "./nav.js";
|
|
14
|
+
import { renderDiagrams } from "./renderers/diagrams.js";
|
|
12
15
|
/**
|
|
13
16
|
* Detect whether a directory contains a Dogsbay MD source tree.
|
|
14
17
|
*
|
|
@@ -30,16 +33,76 @@ function detectDogsbayMdSource(path) {
|
|
|
30
33
|
return false;
|
|
31
34
|
}
|
|
32
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Conventional content-asset roots, in probe order. Mounted under their own
|
|
38
|
+
* name so an author's `/images/logo.png` resolves, and excluded from the page
|
|
39
|
+
* walk so their contents are assets rather than also being pages.
|
|
40
|
+
*/
|
|
41
|
+
const ASSET_ROOTS = ["images", "assets", "_assets"];
|
|
42
|
+
/**
|
|
43
|
+
* Does this directory hold any markdown, at any depth?
|
|
44
|
+
*
|
|
45
|
+
* Distinguishes a media-only asset root (skip it: its files are assets, and a
|
|
46
|
+
* stray .md would become both a page and a raw copy in public/) from a docs
|
|
47
|
+
* SECTION that merely shares the name (walk it: those are pages).
|
|
48
|
+
*/
|
|
49
|
+
function containsMarkdown(dir) {
|
|
50
|
+
let entries;
|
|
51
|
+
try {
|
|
52
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
for (const e of entries) {
|
|
58
|
+
if (e.isDirectory()) {
|
|
59
|
+
if (containsMarkdown(join(dir, e.name)))
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
else if (e.name.endsWith(".md")) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
33
68
|
function walkMdFiles(dir, root, out = []) {
|
|
34
69
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
70
|
+
// `_`-prefixed files/dirs are include targets (fragments), not routable
|
|
71
|
+
// pages — the standard Jekyll/Docusaurus convention. The build-time Minja
|
|
72
|
+
// preprocessor `{% include %}`s them into pages; they get no route of their
|
|
73
|
+
// own. (e.g. structural Docusaurus import writes `_includes/**` fragments.)
|
|
74
|
+
if (entry.name.startsWith("_"))
|
|
75
|
+
continue;
|
|
76
|
+
// A conventional asset root carrying only media is not a page tree, and
|
|
77
|
+
// leaving it in the walk would make a stray .md there BOTH a routable
|
|
78
|
+
// page and a file copied verbatim into public/.
|
|
79
|
+
//
|
|
80
|
+
// But `images/` is also a perfectly ordinary section name. Skipping it
|
|
81
|
+
// unconditionally silently dropped every page under it — "Imported 1
|
|
82
|
+
// pages" where there were 2, no warning. So skip only a root that
|
|
83
|
+
// carries NO markdown at all, and only at the content root.
|
|
84
|
+
if (dir === root &&
|
|
85
|
+
ASSET_ROOTS.includes(entry.name) &&
|
|
86
|
+
!containsMarkdown(join(dir, entry.name))) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
35
89
|
const full = join(dir, entry.name);
|
|
36
90
|
if (entry.isDirectory()) {
|
|
37
91
|
walkMdFiles(full, root, out);
|
|
38
92
|
}
|
|
39
93
|
else if (entry.name.endsWith(".md")) {
|
|
40
94
|
const rel = relative(root, full).replace(/\\/g, "/");
|
|
41
|
-
|
|
42
|
-
|
|
95
|
+
let slug = rel.replace(/\.md$/, "");
|
|
96
|
+
// A `<dir>/index.md` page is the directory's landing page: its slug
|
|
97
|
+
// is the directory, not `<dir>/index`. This MUST match how the nav
|
|
98
|
+
// layer normalizes the same file (nav-file.ts `fileToHref` strips
|
|
99
|
+
// `/index`), or `routablesFrom: nav`'s `filterPagesToNav` drops the
|
|
100
|
+
// page and the section landing 404s. The bare root `index.md` keeps
|
|
101
|
+
// slug `index` — format-astro's root-home + `.md`-mirror special-case
|
|
102
|
+
// keys off `slug === "index"`. See plans/dir-index-slug-nav-drop.md.
|
|
103
|
+
if (slug.endsWith("/index"))
|
|
104
|
+
slug = slug.slice(0, -"/index".length);
|
|
105
|
+
out.push({ filePath: full, slug, sourcePath: rel });
|
|
43
106
|
}
|
|
44
107
|
}
|
|
45
108
|
return out;
|
|
@@ -61,30 +124,36 @@ async function importDogsbayMd(source, opts) {
|
|
|
61
124
|
const taxonomyNames = Array.isArray(opts.taxonomyNames)
|
|
62
125
|
? opts.taxonomyNames
|
|
63
126
|
: undefined;
|
|
64
|
-
|
|
127
|
+
// Pre-parse pass — opt-out via `diagrams: false`. When enabled
|
|
128
|
+
// (default), `code` fences with `lang: mermaid` get transformed
|
|
129
|
+
// to `diagram` nodes with pre-rendered SVG. Fail-open: if mmdc
|
|
130
|
+
// (mermaid-cli) isn't installed the code block is left as-is and
|
|
131
|
+
// a one-line warning is printed. See plans/mermaid-dogsbay-md.md.
|
|
132
|
+
const diagramsOn = opts.diagrams !== false;
|
|
133
|
+
for (const { filePath, slug, sourcePath } of files) {
|
|
65
134
|
const content = readFileSync(filePath, "utf-8");
|
|
66
135
|
const { tree, frontmatter } = dogsbayMdToTree(content);
|
|
136
|
+
if (diagramsOn) {
|
|
137
|
+
await renderDiagrams(tree);
|
|
138
|
+
}
|
|
67
139
|
const title = String(frontmatter.title
|
|
68
140
|
?? prettifyName(basename(slug)));
|
|
69
|
-
// Extract heading metadata for TOC
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
text,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
141
|
+
// Extract heading metadata for TOC AND backfill `node.props.slug`
|
|
142
|
+
// so format-astro's headingToAstro emits a matching `id` on the
|
|
143
|
+
// rendered `<h2>` / `<h3>`. Without this, the TOC's
|
|
144
|
+
// `<a href="#quick-start">` had nothing to scroll to — the
|
|
145
|
+
// heading was emitted without an id because the tree didn't
|
|
146
|
+
// carry the slug. Mirrors format-mkdocs/src/loader.ts:312.
|
|
147
|
+
//
|
|
148
|
+
// Duplicate slugs get `-1`, `-2` suffixes so two `## Foo`
|
|
149
|
+
// headings on the same page produce distinct anchors. Same
|
|
150
|
+
// collision-handling shape as MkDocs.
|
|
151
|
+
const headings = extractHeadings(tree);
|
|
84
152
|
const redirect = frontmatter.redirect;
|
|
85
153
|
const meta = parseMeta(frontmatter, { slug, taxonomyNames });
|
|
86
154
|
pages.push({
|
|
87
155
|
slug,
|
|
156
|
+
sourcePath,
|
|
88
157
|
title,
|
|
89
158
|
tree,
|
|
90
159
|
headings,
|
|
@@ -95,8 +164,42 @@ async function importDogsbayMd(source, opts) {
|
|
|
95
164
|
}
|
|
96
165
|
const navFilePath = opts.nav || undefined;
|
|
97
166
|
const hrefPrefix = typeof opts.hrefPrefix === "string" ? opts.hrefPrefix : undefined;
|
|
98
|
-
|
|
99
|
-
|
|
167
|
+
// `--strict` at the CLI layer maps to "fail" here. `loadNavFile`
|
|
168
|
+
// already throws on the first miss in fail mode; the build
|
|
169
|
+
// surfaces the throw as a fatal error and exits non-zero.
|
|
170
|
+
// See plans/site-build-strict.md.
|
|
171
|
+
const missingNavTargets = opts.missingNavTargets === "fail"
|
|
172
|
+
? "fail"
|
|
173
|
+
: undefined;
|
|
174
|
+
const nav = buildNavFromDirectory(source, {
|
|
175
|
+
navFilePath,
|
|
176
|
+
hrefPrefix,
|
|
177
|
+
missingFile: missingNavTargets,
|
|
178
|
+
});
|
|
179
|
+
// Declare where this corpus's media lives, so an exporter copies the FILES
|
|
180
|
+
// that the `_assets/…` references in the pages point at.
|
|
181
|
+
//
|
|
182
|
+
// Without this the reference survives the conversion and the file does not,
|
|
183
|
+
// which looks exactly like success: the page count, the retention score and
|
|
184
|
+
// a clean exit are all unaffected while every image 404s. `dogsbay site
|
|
185
|
+
// build` has its own asset pass, so this was invisible there and only bit
|
|
186
|
+
// `convert` — an OpenShift vault shipped with 294 dead image references.
|
|
187
|
+
// Conventional asset roots, in probe order. `_assets` is what every
|
|
188
|
+
// importer rewrites its refs to and stays the documented convention
|
|
189
|
+
// (docs/images.md). Hand-authored content is not written by an
|
|
190
|
+
// importer, though: someone starting a site types `/images/logo.png`,
|
|
191
|
+
// which silently resolved nowhere because only `_assets` was probed.
|
|
192
|
+
//
|
|
193
|
+
// Each root that exists mounts under its OWN name, so the reference the
|
|
194
|
+
// author wrote is the path the file lands at. Recognising several costs
|
|
195
|
+
// nothing: an absent directory is simply not mounted.
|
|
196
|
+
const assetMounts = [];
|
|
197
|
+
for (const root of ASSET_ROOTS) {
|
|
198
|
+
const dir = join(source, root);
|
|
199
|
+
if (existsSync(dir))
|
|
200
|
+
assetMounts.push({ dir, root });
|
|
201
|
+
}
|
|
202
|
+
return assetMounts.length ? { pages, nav, assetMounts } : { pages, nav };
|
|
100
203
|
}
|
|
101
204
|
function prettifyName(slug) {
|
|
102
205
|
return slug
|
|
@@ -104,17 +207,149 @@ function prettifyName(slug) {
|
|
|
104
207
|
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
105
208
|
.join(" ");
|
|
106
209
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
210
|
+
/**
|
|
211
|
+
* Export ExportPage[] + nav to a directory of Dogsbay-MD files.
|
|
212
|
+
*
|
|
213
|
+
* Each page's tree is serialized via `treeToDogsbayMd` (which preserves any
|
|
214
|
+
* Minja directives via `escapePreservingMinja`) and written to `<output>/<slug>.md`.
|
|
215
|
+
*
|
|
216
|
+
* Fragment pages (`page.fragment`) are include targets, not routable pages:
|
|
217
|
+
* written with NO frontmatter, NO title, and excluded from nav — their identity
|
|
218
|
+
* is the include path. Mirrors migrate-asciidoc's fragment convention so the
|
|
219
|
+
* build-time Minja preprocessor can `{% include %}` them.
|
|
220
|
+
*/
|
|
221
|
+
/** Media files worth carrying into `_assets` from a media-only mount. */
|
|
222
|
+
const MEDIA_EXTS = new Set([
|
|
223
|
+
".png", ".jpg", ".jpeg", ".gif", ".webp", ".avif",
|
|
224
|
+
".svg", ".ico", ".pdf", ".mp4", ".webm",
|
|
225
|
+
]);
|
|
226
|
+
/** Recursively copy only media files, preserving relative structure. */
|
|
227
|
+
function copyMediaTree(srcDir, destDir) {
|
|
228
|
+
for (const entry of readdirSync(srcDir, { withFileTypes: true })) {
|
|
229
|
+
const full = join(srcDir, entry.name);
|
|
230
|
+
if (entry.isDirectory()) {
|
|
231
|
+
copyMediaTree(full, join(destDir, entry.name));
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
const dot = entry.name.lastIndexOf(".");
|
|
235
|
+
if (dot === -1 || !MEDIA_EXTS.has(entry.name.slice(dot).toLowerCase()))
|
|
236
|
+
continue;
|
|
237
|
+
mkdirSync(destDir, { recursive: true });
|
|
238
|
+
cpSync(full, join(destDir, entry.name));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* The source page's front matter, carried into the Dogsbay MD it becomes.
|
|
243
|
+
* It used to be DROPPED (only title and redirect were written), so a
|
|
244
|
+
* converted corpus lost `description`, `tags` and custom fields, and a
|
|
245
|
+
* query listing (`::child-links{match=…}`) over it found nothing.
|
|
246
|
+
*
|
|
247
|
+
* Keys Dogsbay MD gives meaning to keep their value only when the value
|
|
248
|
+
* MEANS that here; otherwise the key moves under `imported:` — kept, never
|
|
249
|
+
* misread. Starlight's `template: splash` (a page template) must not turn a
|
|
250
|
+
* page into a Jinja template page. A Dogsbay MD source round-trips unchanged:
|
|
251
|
+
* its values are valid by construction.
|
|
252
|
+
*
|
|
253
|
+
* `title`, `redirect` and the template keys are written by the caller.
|
|
254
|
+
* `layout` is free-form (a theme layout name) and passes as it is.
|
|
255
|
+
* `imported:`, not `source:` — Cloudflare pages carry their own `source:`
|
|
256
|
+
* (an origin URL, 91 pages), which the moved keys would have overwritten.
|
|
257
|
+
*/
|
|
258
|
+
export function carriedFrontmatter(fm) {
|
|
259
|
+
if (!fm)
|
|
260
|
+
return {};
|
|
261
|
+
const out = {};
|
|
262
|
+
const source = {};
|
|
263
|
+
const valid = {
|
|
264
|
+
// `false` is the documented per-page opt-out of a source's `templates: jinja`.
|
|
265
|
+
template: (v) => v === "jinja" || v === false,
|
|
266
|
+
weight: (v) => typeof v === "number" && Number.isFinite(v),
|
|
267
|
+
order: (v) => typeof v === "number" && Number.isFinite(v),
|
|
268
|
+
draft: (v) => typeof v === "boolean",
|
|
269
|
+
status: (v) => typeof v === "string" && ["draft", "preview", "stable", "deprecated"].includes(v),
|
|
270
|
+
// `params:` declares a template PARTIAL's parameters: only with `template: jinja`.
|
|
271
|
+
params: (v) => Array.isArray(v) && fm.template === "jinja",
|
|
272
|
+
};
|
|
273
|
+
for (const [key, value] of Object.entries(fm)) {
|
|
274
|
+
if (key === "title" || key === "redirect" || value === undefined)
|
|
275
|
+
continue;
|
|
276
|
+
// A source that already has `imported:` keeps it: merged if a mapping,
|
|
277
|
+
// else nested under its own name.
|
|
278
|
+
if (key === "imported") {
|
|
279
|
+
if (value && typeof value === "object" && !Array.isArray(value))
|
|
280
|
+
Object.assign(source, value);
|
|
281
|
+
else
|
|
282
|
+
source.imported = value;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
if (valid[key] && !valid[key](value))
|
|
286
|
+
source[key] = value;
|
|
287
|
+
else
|
|
288
|
+
out[key] = value;
|
|
289
|
+
}
|
|
290
|
+
if (Object.keys(source).length)
|
|
291
|
+
out.imported = source;
|
|
292
|
+
return out;
|
|
293
|
+
}
|
|
294
|
+
async function exportDogsbayMd(pages, nav, output, opts) {
|
|
295
|
+
mkdirSync(output, { recursive: true });
|
|
296
|
+
// Copy mounted asset dirs (e.g. Docusaurus `static/`) into `content/_assets/`,
|
|
297
|
+
// the Dogsbay standard (docs/images.md). Preserves internal structure
|
|
298
|
+
// (static/img/x → <output>/_assets/img/x) so the parser's rewritten
|
|
299
|
+
// `/_assets/img/x` refs resolve, and a later `site build`'s asset pass copies
|
|
300
|
+
// `content/_assets/**` through to `/_assets/**`. A mount may target an
|
|
301
|
+
// `_assets` subdir (`into`) and restrict itself to media files (`mediaOnly`) —
|
|
302
|
+
// used for docs-co-located images where the mount dir IS the docs tree.
|
|
303
|
+
if (Array.isArray(opts.assetMounts)) {
|
|
304
|
+
for (const mount of opts.assetMounts) {
|
|
305
|
+
if (!existsSync(mount.dir))
|
|
306
|
+
continue;
|
|
307
|
+
// Per-mount root: `_assets` for an imported corpus, `images`/`assets`
|
|
308
|
+
// for hand-authored content. A hardcoded root would copy the file
|
|
309
|
+
// where the reference does not point.
|
|
310
|
+
const assetsRoot = join(output, mount.root ?? "_assets");
|
|
311
|
+
const dest = mount.into ? join(assetsRoot, mount.into) : assetsRoot;
|
|
312
|
+
if (mount.mediaOnly) {
|
|
313
|
+
copyMediaTree(mount.dir, dest);
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
const skip = new Set(mount.exclude ?? []);
|
|
317
|
+
cpSync(mount.dir, dest, {
|
|
318
|
+
recursive: true,
|
|
319
|
+
...(skip.size === 0 ? {} : {
|
|
320
|
+
// Relative to the mount, so an exclusion cannot be accidentally
|
|
321
|
+
// satisfied by a directory name somewhere above it on disk.
|
|
322
|
+
filter: (src) => {
|
|
323
|
+
const rel = relative(mount.dir, src);
|
|
324
|
+
return rel === "" || !rel.split(/[\\/]/).some((seg) => skip.has(seg));
|
|
325
|
+
},
|
|
326
|
+
}),
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
for (const page of pages) {
|
|
331
|
+
const slug = page.slug || "index";
|
|
332
|
+
const outPath = join(output, `${slug}.md`);
|
|
333
|
+
mkdirSync(dirname(outPath), { recursive: true });
|
|
334
|
+
// A template partial keeps its `params:` and the template flag, so the
|
|
335
|
+
// build treats it as a partial and checks every include against it.
|
|
336
|
+
const templateFm = page.template ? { template: "jinja", ...(page.templateParams ? { params: page.templateParams } : {}) } : {};
|
|
337
|
+
// A title-less template page still needs `template: jinja`, or the build
|
|
338
|
+
// renders it in content mode and shows the directives as text.
|
|
339
|
+
const frontmatter = page.fragment || !page.title
|
|
340
|
+
? (page.template ? templateFm : undefined)
|
|
341
|
+
: { title: page.title, ...carriedFrontmatter(page.frontmatter), ...(page.redirect ? { redirect: page.redirect } : {}), ...templateFm };
|
|
342
|
+
const md = treeToDogsbayMd(page.tree, frontmatter ? { frontmatter } : undefined);
|
|
343
|
+
writeFileSync(outPath, md.endsWith("\n") ? md : md + "\n", "utf-8");
|
|
344
|
+
}
|
|
345
|
+
// Nav as nav.json at the content root (the dogsbay-md importer + runtime
|
|
346
|
+
// loader both prefer nav.json). Fragments never appear here.
|
|
347
|
+
writeFileSync(join(output, "nav.json"), JSON.stringify(nav, null, 2) + "\n", "utf-8");
|
|
113
348
|
}
|
|
114
349
|
export const plugin = {
|
|
115
350
|
name: "dogsbay-md",
|
|
116
351
|
canImport: true,
|
|
117
|
-
canExport:
|
|
352
|
+
canExport: true,
|
|
118
353
|
detectSource: detectDogsbayMdSource,
|
|
119
354
|
importOptions: [
|
|
120
355
|
{
|
|
@@ -125,5 +360,8 @@ export const plugin = {
|
|
|
125
360
|
async import(source, opts) {
|
|
126
361
|
return importDogsbayMd(source, opts);
|
|
127
362
|
},
|
|
363
|
+
async export(pages, nav, output, opts) {
|
|
364
|
+
return exportDogsbayMd(pages, nav, output, opts);
|
|
365
|
+
},
|
|
128
366
|
};
|
|
129
367
|
//# sourceMappingURL=cli.js.map
|
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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"}
|