@dogsbay/format-astro 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { ExportPage } from "@dogsbay/types";
2
+ /** Per-taxonomy emit config — resolved (defaults filled). */
3
+ export interface TaxonomyEmitConfig {
4
+ /** Path prefix for emitted index/term pages, e.g. "/tags". */
5
+ indexPath: string;
6
+ /** Optional enum of allowed term values (for validation; not enforced here). */
7
+ values?: string[];
8
+ /** When true, slash-nested terms expand into all their prefixes. */
9
+ hierarchical: boolean;
10
+ /**
11
+ * Per-prefix display config (`{ <segment>: { label?, color? } }`)
12
+ * baked into emitted route templates so the taxonomy index +
13
+ * term pages render top-level segments as human labels.
14
+ * Mirrors the chip-level config consumed by `<TagList>`.
15
+ */
16
+ prefixes?: Record<string, {
17
+ label?: string;
18
+ color?: string;
19
+ }>;
20
+ /**
21
+ * Per-slug display labels (`{ <full/slug>: <display> }`). Drives
22
+ * heading / breadcrumb / sub-tag-pill text on the auto-emitted
23
+ * taxonomy pages. URL paths still use slugs.
24
+ */
25
+ labels?: Record<string, string>;
26
+ }
27
+ /** A single term entry in the built taxonomy index. */
28
+ export interface TaxonomyTerm {
29
+ /** The term path, e.g. ["api"] or ["api", "rest"]. Joined by "/" in URLs. */
30
+ fullPath: string[];
31
+ /** Display label — leaf segment when nested, full path joined otherwise. */
32
+ label: string;
33
+ /** Pages tagged with this term (or any descendant when hierarchical). */
34
+ pages: TaxonomyPageRef[];
35
+ }
36
+ /** Lightweight page reference embedded in the taxonomy data file. */
37
+ export interface TaxonomyPageRef {
38
+ slug: string;
39
+ title: string;
40
+ url: string;
41
+ /** Optional excerpt-ish blurb — first paragraph of body when easily available. */
42
+ description?: string;
43
+ }
44
+ /** The data emitted per taxonomy as `src/data/taxonomy-<name>.json`. */
45
+ export interface TaxonomyData {
46
+ name: string;
47
+ indexPath: string;
48
+ hierarchical: boolean;
49
+ terms: TaxonomyTerm[];
50
+ /** Total number of pages across all terms. Useful for index headers. */
51
+ pageCount: number;
52
+ }
53
+ /**
54
+ * Read the term values for one page in one taxonomy. Maps the taxonomy
55
+ * name to the right `PageMeta` slot.
56
+ */
57
+ export declare function getPageTerms(page: ExportPage, taxonomy: string): string[];
58
+ /**
59
+ * Build the taxonomy data structure for one taxonomy across all pages.
60
+ * Pure function. Test-friendly. Sorts terms alphabetically by full
61
+ * path; sorts pages within a term by title.
62
+ */
63
+ export declare function buildTaxonomyData(pages: ExportPage[], taxonomy: string, config: TaxonomyEmitConfig, options?: {
64
+ section?: string;
65
+ basePath?: string;
66
+ }): TaxonomyData;
67
+ /**
68
+ * Emit route files + data file for one taxonomy.
69
+ *
70
+ * Data JSON is overwritten unconditionally — it's pure config-
71
+ * derived data. Route files are overwritten when they carry the
72
+ * `AUTO-GENERATED by dogsbay` marker (so template fixes reach
73
+ * existing sites without manual intervention) and skipped when
74
+ * they don't (writer customization preserved).
75
+ */
76
+ export declare function emitTaxonomyForName(data: TaxonomyData, outputDir: string, config?: TaxonomyEmitConfig): void;
77
+ /**
78
+ * Top-level orchestrator: emit routes for every taxonomy declared in
79
+ * `taxonomies`. Returns the list of taxonomy names that emitted any
80
+ * terms (skips taxonomies with zero matching pages — no point emitting
81
+ * an empty index).
82
+ */
83
+ export declare function emitTaxonomyRoutes(pages: ExportPage[], outputDir: string, taxonomies: Record<string, TaxonomyEmitConfig>, options?: {
84
+ section?: string;
85
+ basePath?: string;
86
+ }): string[];
87
+ //# sourceMappingURL=taxonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../src/taxonomy.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,gBAAgB,CAAC;AAMvE,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAezE;AAsHD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,YAAY,CA2Dd;AAmCD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,IAAI,CAsCN;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC9C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,MAAM,EAAE,CASV"}
@@ -0,0 +1,467 @@
1
+ /**
2
+ * Taxonomy emission for `dogsbay site build`.
3
+ *
4
+ * Per declared taxonomy (in `dogsbay.config.yml`'s `taxonomies:` block),
5
+ * emits:
6
+ *
7
+ * - `src/data/taxonomy-<name>.json` — index + per-term page list
8
+ * - `src/pages<indexPath>/index.astro` — taxonomy index (term cloud)
9
+ * - `src/pages<indexPath>/[...path].astro` — per-term drill-down page
10
+ *
11
+ * Idempotent: skips emission when a writer-owned file already exists at
12
+ * the same path (so a project can override either route by writing its
13
+ * own `.astro` file at the same location).
14
+ *
15
+ * v1 design notes:
16
+ *
17
+ * - Built-in fields (`tags`, `category`, `audience`, `type`, `status`)
18
+ * only get index/term routes when the user *explicitly* declares them
19
+ * in `taxonomies:`. PageMeta always carries them; the renderer never
20
+ * surprises you with auto-generated `/category/` pages.
21
+ *
22
+ * - Route files in Step 4 are self-contained (inline Astro markup, no
23
+ * external component imports). Step 5 refactors them to use proper
24
+ * `<TaxonomyIndex/>` / `<TaxonomyTerm/>` components.
25
+ *
26
+ * See plans/metadata-and-taxonomies.md.
27
+ */
28
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
29
+ import { dirname, join } from "node:path";
30
+ import { joinBaseUrl, normalizeBasePath } from "./base-path.js";
31
+ /** Cap on description length emitted into taxonomy data. */
32
+ const DESCRIPTION_LIMIT = 160;
33
+ const KNOWN_ARRAY_FIELDS = new Set(["tags", "category", "audience"]);
34
+ const KNOWN_SCALAR_FIELDS = new Set(["type", "status"]);
35
+ /**
36
+ * Read the term values for one page in one taxonomy. Maps the taxonomy
37
+ * name to the right `PageMeta` slot.
38
+ */
39
+ export function getPageTerms(page, taxonomy) {
40
+ const meta = page.meta;
41
+ if (!meta)
42
+ return [];
43
+ if (KNOWN_ARRAY_FIELDS.has(taxonomy)) {
44
+ const values = meta[taxonomy];
45
+ return Array.isArray(values)
46
+ ? values.filter((v) => typeof v === "string")
47
+ : [];
48
+ }
49
+ if (KNOWN_SCALAR_FIELDS.has(taxonomy)) {
50
+ const value = meta[taxonomy];
51
+ return typeof value === "string" ? [value] : [];
52
+ }
53
+ return meta.taxonomies?.[taxonomy] ?? [];
54
+ }
55
+ /**
56
+ * Build the URL where a page is served. Mirrors emitAstroPages's
57
+ * routing convention: `<basePath>/<section?>/<slug>/`. Index pages
58
+ * drop the trailing slug segment. Delegates to `joinBaseUrl` so the
59
+ * shape is consistent with every other emitter.
60
+ */
61
+ function pageUrl(slug, section, basePath) {
62
+ return joinBaseUrl(basePath, section, slug);
63
+ }
64
+ /**
65
+ * Derive a short description for one page, used to populate
66
+ * `TaxonomyPageRef.description` on the term data file. Card layouts
67
+ * in `<TaxonomyTerm>` consume this — title-only cards read as
68
+ * empty, so a working fallback matters.
69
+ *
70
+ * Resolution order:
71
+ * 1. `frontmatter.description` (string) when set — explicit
72
+ * author-supplied summary always wins.
73
+ * 2. First paragraph of `page.tree`, plain-text-extracted and
74
+ * truncated to {@link DESCRIPTION_LIMIT}. Skips headings so the
75
+ * page title doesn't echo as the description.
76
+ * 3. `undefined` — caller omits the field, card renders title-only.
77
+ */
78
+ function derivePageDescription(page) {
79
+ const fm = page.frontmatter;
80
+ const fmDesc = fm?.description;
81
+ if (typeof fmDesc === "string" && fmDesc.trim().length > 0) {
82
+ return fmDesc.trim();
83
+ }
84
+ const firstParagraph = findFirstParagraph(page.tree);
85
+ if (firstParagraph) {
86
+ const text = textOfNode(firstParagraph).replace(/\s+/g, " ").trim();
87
+ if (text.length > 0)
88
+ return truncate(text, DESCRIPTION_LIMIT);
89
+ }
90
+ return undefined;
91
+ }
92
+ function findFirstParagraph(nodes) {
93
+ if (!nodes)
94
+ return undefined;
95
+ for (const node of nodes) {
96
+ if (node.type === "paragraph")
97
+ return node;
98
+ // Skip headings / other block types until we find prose.
99
+ }
100
+ return undefined;
101
+ }
102
+ /**
103
+ * Pull plain text from a TreeNode. Tolerates both shapes used by
104
+ * importers:
105
+ * - `node.inline` array (dogsbay-md parser).
106
+ * - `node.children[{type: "prose", inline: ...}]` (Starlight).
107
+ * - `node.html` prerendered HTML (fallback — strips tags).
108
+ */
109
+ function textOfNode(node) {
110
+ const parts = [];
111
+ if (Array.isArray(node.inline)) {
112
+ parts.push(textOfInline(node.inline));
113
+ }
114
+ if (node.children) {
115
+ for (const child of node.children) {
116
+ parts.push(textOfNode(child));
117
+ }
118
+ }
119
+ if (typeof node.html === "string") {
120
+ parts.push(node.html.replace(/<[^>]+>/g, ""));
121
+ }
122
+ return parts.filter(Boolean).join(" ");
123
+ }
124
+ function textOfInline(nodes) {
125
+ const parts = [];
126
+ for (const n of nodes) {
127
+ if (n.type === "text") {
128
+ parts.push(n.text);
129
+ }
130
+ else if ("children" in n && Array.isArray(n.children)) {
131
+ parts.push(textOfInline(n.children));
132
+ }
133
+ }
134
+ return parts.join("");
135
+ }
136
+ /**
137
+ * Truncate at the last word boundary before `limit`, append `…`.
138
+ * Strings already at-or-under the limit pass through untouched.
139
+ */
140
+ function truncate(s, limit) {
141
+ if (s.length <= limit)
142
+ return s;
143
+ const sliced = s.slice(0, limit);
144
+ const lastSpace = sliced.lastIndexOf(" ");
145
+ // If the last word boundary is reasonable (not too aggressive),
146
+ // cut there; otherwise hard-cut at the limit.
147
+ const cut = lastSpace > limit * 0.6 ? lastSpace : limit;
148
+ return s.slice(0, cut).replace(/[\s,;:.\-—]+$/, "") + "…";
149
+ }
150
+ /**
151
+ * Expand a term into its hierarchical prefixes when `hierarchical` is
152
+ * true. `"api/rest"` → `[["api"], ["api", "rest"]]`. When false, returns
153
+ * a single full-path entry.
154
+ */
155
+ function expandTerm(term, hierarchical) {
156
+ const segments = term.split("/").filter((s) => s.length > 0);
157
+ if (segments.length === 0)
158
+ return [];
159
+ if (!hierarchical)
160
+ return [segments];
161
+ const out = [];
162
+ for (let i = 1; i <= segments.length; i++) {
163
+ out.push(segments.slice(0, i));
164
+ }
165
+ return out;
166
+ }
167
+ /**
168
+ * Build the taxonomy data structure for one taxonomy across all pages.
169
+ * Pure function. Test-friendly. Sorts terms alphabetically by full
170
+ * path; sorts pages within a term by title.
171
+ */
172
+ export function buildTaxonomyData(pages, taxonomy, config, options = {}) {
173
+ // Map a path key (joined by "/") → term entry under construction
174
+ const termMap = new Map();
175
+ const basePath = normalizeBasePath(options.basePath);
176
+ for (const page of pages) {
177
+ const terms = getPageTerms(page, taxonomy);
178
+ if (terms.length === 0)
179
+ continue;
180
+ const description = derivePageDescription(page);
181
+ const ref = {
182
+ slug: page.slug,
183
+ title: page.title,
184
+ url: pageUrl(page.slug, options.section, basePath),
185
+ ...(description ? { description } : {}),
186
+ };
187
+ // Track which path keys this page has already contributed to so a
188
+ // hierarchical expansion that produces duplicate prefixes (rare but
189
+ // possible — e.g. `tags: [api/rest, api/graphql]` both expand `api`)
190
+ // doesn't double-count the page.
191
+ const seen = new Set();
192
+ for (const term of terms) {
193
+ for (const path of expandTerm(term, config.hierarchical)) {
194
+ const key = path.join("/");
195
+ if (seen.has(key))
196
+ continue;
197
+ seen.add(key);
198
+ let entry = termMap.get(key);
199
+ if (!entry) {
200
+ entry = { fullPath: path, pages: [] };
201
+ termMap.set(key, entry);
202
+ }
203
+ entry.pages.push(ref);
204
+ }
205
+ }
206
+ }
207
+ // Convert to TaxonomyTerm[] with sorting.
208
+ const allTerms = [];
209
+ let pageCount = 0;
210
+ for (const { fullPath, pages: termPages } of termMap.values()) {
211
+ termPages.sort((a, b) => a.title.localeCompare(b.title));
212
+ allTerms.push({
213
+ fullPath,
214
+ label: fullPath[fullPath.length - 1],
215
+ pages: termPages,
216
+ });
217
+ pageCount += termPages.length;
218
+ }
219
+ allTerms.sort((a, b) => a.fullPath.join("/").localeCompare(b.fullPath.join("/")));
220
+ return {
221
+ name: taxonomy,
222
+ indexPath: config.indexPath,
223
+ hierarchical: config.hierarchical,
224
+ terms: allTerms,
225
+ pageCount,
226
+ };
227
+ }
228
+ /**
229
+ * Marker comment emitted at the top of every auto-generated
230
+ * taxonomy route file. The emitter overwrites a file when this
231
+ * marker is present (so config / template fixes propagate), and
232
+ * leaves the file alone when it isn't (writer customized the
233
+ * page — keep their edits).
234
+ */
235
+ const AUTO_GENERATED_MARKER = "// AUTO-GENERATED by dogsbay";
236
+ function shouldRegenerate(path) {
237
+ if (!existsSync(path))
238
+ return true;
239
+ try {
240
+ const contents = readFileSync(path, "utf-8");
241
+ if (contents.includes(AUTO_GENERATED_MARKER))
242
+ return true;
243
+ // Transitional check: the marker was added when route templates
244
+ // grew the DocsLayout wrap. Files emitted by the previous version
245
+ // imported the taxonomy component but skipped the layout wrap,
246
+ // leaving them un-styled (no Tailwind context). Detect that
247
+ // exact shape and regenerate so existing sites pick up the fix
248
+ // without manual deletion. Safe to remove this branch once all
249
+ // active sites have rebuilt at least once.
250
+ const importsTaxonomyComponent = contents.includes('from "@dogsbay/docs-layout/TaxonomyIndex.astro"') ||
251
+ contents.includes('from "@dogsbay/docs-layout/TaxonomyTerm.astro"');
252
+ const hasDocsLayout = contents.includes("DocsLayout");
253
+ if (importsTaxonomyComponent && !hasDocsLayout)
254
+ return true;
255
+ return false;
256
+ }
257
+ catch {
258
+ // Unreadable for any reason — safer to leave alone.
259
+ return false;
260
+ }
261
+ }
262
+ /**
263
+ * Emit route files + data file for one taxonomy.
264
+ *
265
+ * Data JSON is overwritten unconditionally — it's pure config-
266
+ * derived data. Route files are overwritten when they carry the
267
+ * `AUTO-GENERATED by dogsbay` marker (so template fixes reach
268
+ * existing sites without manual intervention) and skipped when
269
+ * they don't (writer customization preserved).
270
+ */
271
+ export function emitTaxonomyForName(data, outputDir, config) {
272
+ // Resolved config — falls back to a minimal shape when callers
273
+ // pre-date the display-config addition.
274
+ const resolved = config ?? {
275
+ indexPath: data.indexPath,
276
+ hierarchical: data.hierarchical,
277
+ };
278
+ // 1. Data file: src/data/taxonomy-<name>.json
279
+ const dataPath = join(outputDir, "src", "data", `taxonomy-${data.name}.json`);
280
+ mkdirSync(dirname(dataPath), { recursive: true });
281
+ writeFileSync(dataPath, JSON.stringify(data, null, 2));
282
+ // 2. Index route: src/pages<indexPath>/index.astro
283
+ const indexAstroPath = join(outputDir, "src", "pages", ...data.indexPath.split("/").filter((s) => s.length > 0), "index.astro");
284
+ if (shouldRegenerate(indexAstroPath)) {
285
+ mkdirSync(dirname(indexAstroPath), { recursive: true });
286
+ writeFileSync(indexAstroPath, buildIndexAstro(data, resolved));
287
+ }
288
+ // 3. Term route: src/pages<indexPath>/[...path].astro
289
+ const termAstroPath = join(outputDir, "src", "pages", ...data.indexPath.split("/").filter((s) => s.length > 0), "[...path].astro");
290
+ if (shouldRegenerate(termAstroPath)) {
291
+ mkdirSync(dirname(termAstroPath), { recursive: true });
292
+ writeFileSync(termAstroPath, buildTermAstro(data, resolved));
293
+ }
294
+ }
295
+ /**
296
+ * Top-level orchestrator: emit routes for every taxonomy declared in
297
+ * `taxonomies`. Returns the list of taxonomy names that emitted any
298
+ * terms (skips taxonomies with zero matching pages — no point emitting
299
+ * an empty index).
300
+ */
301
+ export function emitTaxonomyRoutes(pages, outputDir, taxonomies, options = {}) {
302
+ const emitted = [];
303
+ for (const [name, config] of Object.entries(taxonomies)) {
304
+ const data = buildTaxonomyData(pages, name, config, options);
305
+ if (data.terms.length === 0)
306
+ continue;
307
+ emitTaxonomyForName(data, outputDir, config);
308
+ emitted.push(name);
309
+ }
310
+ return emitted;
311
+ }
312
+ // ── Auto-generated route templates ──────────────────────────────────
313
+ //
314
+ // Both index + term route files wrap their content in `<DocsLayout>`
315
+ // so taxonomy pages stay inside the same shell as every other page
316
+ // on the site (sidebar, header, search, theme toggle, footer). Without
317
+ // the wrap, a click on a tag chip dumps the reader onto an orphan
318
+ // page with no nav and no Tailwind utilities — globals get loaded
319
+ // via `@/styles/global.css`, so missing the import means the grid
320
+ // classes silently no-op too. The wrap fixes both at once.
321
+ //
322
+ // Writers who want a custom shell (different layout, no sidebar) can
323
+ // drop their own `src/pages<indexPath>/{index,[...path]}.astro` —
324
+ // `emitTaxonomyForName` skips emission when those files exist.
325
+ function buildIndexAstro(data, config) {
326
+ const dataImport = dataImportPath(data);
327
+ const title = displayName(data.name);
328
+ const displayConfig = renderTaxonomyDisplay(config);
329
+ return `---
330
+ ${AUTO_GENERATED_MARKER} site build — safe to delete; will regenerate next build.
331
+ // To customize this page, remove the marker line above (or modify the file
332
+ // in any way that drops it) and dogsbay will leave your edits alone.
333
+ import "@/styles/global.css";
334
+ import DocsLayout from "@dogsbay/docs-layout/DocsLayout.astro";
335
+ import TaxonomyIndex from "@dogsbay/docs-layout/TaxonomyIndex.astro";
336
+ import type { SiteConfig } from "@dogsbay/types";
337
+ import data from "${dataImport}";
338
+ import navData from "@/data/nav.json";
339
+ import siteConfigData from "@/data/site.json";
340
+ const siteConfig = siteConfigData as SiteConfig;
341
+ const title = ${JSON.stringify(title)};
342
+ ${displayConfig}
343
+ ---
344
+ <DocsLayout
345
+ siteName={siteConfig.siteName}
346
+ title={title}
347
+ nav={navData as any[]}
348
+ headings={[]}
349
+ siteUrl={siteConfig.siteUrl || "/"}
350
+ description={siteConfig.description || undefined}
351
+ ogImage={siteConfig.ogImage || undefined}
352
+ twitterHandle={siteConfig.twitterHandle || undefined}
353
+ themeColor={siteConfig.themeColor || undefined}
354
+ repoUrl={siteConfig.repoUrl || undefined}
355
+ plausibleDomain={siteConfig.plausible?.domain}
356
+ plausibleScriptUrl={siteConfig.plausible?.scriptUrl}
357
+ tagPrefixes={siteConfig.tagPrefixes}
358
+ tagLabels={siteConfig.tagLabels}
359
+ taxonomyIndexPaths={siteConfig.taxonomyIndexPaths}
360
+ taxonomyDisplay={siteConfig.taxonomyDisplay}
361
+ noindex={true}
362
+ excludeFromSearch={true}
363
+ >
364
+ <TaxonomyIndex data={data} prefixes={prefixes} labels={labels} />
365
+ </DocsLayout>
366
+ `;
367
+ }
368
+ function buildTermAstro(data, config) {
369
+ const dataImport = dataImportPath(data);
370
+ const taxonomyDisplay = displayName(data.name);
371
+ const displayConfig = renderTaxonomyDisplay(config);
372
+ return `---
373
+ ${AUTO_GENERATED_MARKER} site build — safe to delete; will regenerate next build.
374
+ // To customize this page, remove the marker line above (or modify the file
375
+ // in any way that drops it) and dogsbay will leave your edits alone.
376
+ import "@/styles/global.css";
377
+ import DocsLayout from "@dogsbay/docs-layout/DocsLayout.astro";
378
+ import TaxonomyTerm from "@dogsbay/docs-layout/TaxonomyTerm.astro";
379
+ import type { SiteConfig } from "@dogsbay/types";
380
+ import data from "${dataImport}";
381
+ import navData from "@/data/nav.json";
382
+ import siteConfigData from "@/data/site.json";
383
+ const siteConfig = siteConfigData as SiteConfig;
384
+
385
+ export async function getStaticPaths() {
386
+ return data.terms.map((term) => ({
387
+ params: { path: term.fullPath.join("/") },
388
+ props: { term },
389
+ }));
390
+ }
391
+
392
+ const { term } = Astro.props;
393
+ ${displayConfig}
394
+ const title = \`\${term.label} — ${escapeTemplate(taxonomyDisplay)}\`;
395
+ ---
396
+ <DocsLayout
397
+ siteName={siteConfig.siteName}
398
+ title={title}
399
+ nav={navData as any[]}
400
+ headings={[]}
401
+ siteUrl={siteConfig.siteUrl || "/"}
402
+ description={siteConfig.description || undefined}
403
+ ogImage={siteConfig.ogImage || undefined}
404
+ twitterHandle={siteConfig.twitterHandle || undefined}
405
+ themeColor={siteConfig.themeColor || undefined}
406
+ repoUrl={siteConfig.repoUrl || undefined}
407
+ plausibleDomain={siteConfig.plausible?.domain}
408
+ plausibleScriptUrl={siteConfig.plausible?.scriptUrl}
409
+ tagPrefixes={siteConfig.tagPrefixes}
410
+ tagLabels={siteConfig.tagLabels}
411
+ taxonomyIndexPaths={siteConfig.taxonomyIndexPaths}
412
+ taxonomyDisplay={siteConfig.taxonomyDisplay}
413
+ noindex={true}
414
+ excludeFromSearch={true}
415
+ >
416
+ <TaxonomyTerm data={data} term={term} prefixes={prefixes} labels={labels} />
417
+ </DocsLayout>
418
+ `;
419
+ }
420
+ /**
421
+ * Render the per-taxonomy `prefixes` + `labels` constants that get
422
+ * baked into the auto-emitted route templates. Output is a pair of
423
+ * `const prefixes = {...}; const labels = {...};` statements safe to
424
+ * drop into the frontmatter block of an Astro file. Empty entries
425
+ * become `undefined` so the components fall back to slug rendering
426
+ * cleanly.
427
+ */
428
+ function renderTaxonomyDisplay(config) {
429
+ const hasPrefixes = config.prefixes && Object.keys(config.prefixes).length > 0;
430
+ const hasLabels = config.labels && Object.keys(config.labels).length > 0;
431
+ const prefixesLine = hasPrefixes
432
+ ? `const prefixes = ${JSON.stringify(config.prefixes)};`
433
+ : "const prefixes = undefined;";
434
+ const labelsLine = hasLabels
435
+ ? `const labels = ${JSON.stringify(config.labels)};`
436
+ : "const labels = undefined;";
437
+ return `${prefixesLine}\n${labelsLine}`;
438
+ }
439
+ /** Escape a string for use inside a JS template literal (`\`…${...}\``). */
440
+ function escapeTemplate(s) {
441
+ return s.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
442
+ }
443
+ /**
444
+ * Compute the relative import path from an emitted route file to the
445
+ * taxonomy data JSON. Route files live at
446
+ * `src/pages<indexPath>/{index,[...path]}.astro`; data file at
447
+ * `src/data/taxonomy-<name>.json`.
448
+ *
449
+ * Levels to go up: indexPath segment count + 1 (one for the route
450
+ * file's own directory, then one per indexPath segment).
451
+ */
452
+ function dataImportPath(data) {
453
+ const segmentCount = data.indexPath.split("/").filter(Boolean).length;
454
+ return `${"../".repeat(segmentCount + 1)}data/taxonomy-${data.name}.json`;
455
+ }
456
+ function displayName(name) {
457
+ // "tags" → "Tags", "by-audience" → "By audience"
458
+ return name.replace(/[-_]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
459
+ }
460
+ function escapeHtml(s) {
461
+ return s
462
+ .replace(/&/g, "&amp;")
463
+ .replace(/</g, "&lt;")
464
+ .replace(/>/g, "&gt;")
465
+ .replace(/"/g, "&quot;");
466
+ }
467
+ //# sourceMappingURL=taxonomy.js.map