@dogsbay/format-astro 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.
Files changed (83) hide show
  1. package/dist/api-markdown.d.ts +8 -0
  2. package/dist/api-markdown.d.ts.map +1 -0
  3. package/dist/api-markdown.js +50 -0
  4. package/dist/api-markdown.js.map +1 -0
  5. package/dist/base-path.d.ts +93 -7
  6. package/dist/base-path.d.ts.map +1 -1
  7. package/dist/base-path.js +122 -8
  8. package/dist/base-path.js.map +1 -1
  9. package/dist/blog.d.ts +134 -0
  10. package/dist/blog.d.ts.map +1 -0
  11. package/dist/blog.js +324 -0
  12. package/dist/blog.js.map +1 -0
  13. package/dist/browser.d.ts +14 -0
  14. package/dist/browser.d.ts.map +1 -0
  15. package/dist/browser.js +14 -0
  16. package/dist/browser.js.map +1 -0
  17. package/dist/canonical.d.ts +34 -0
  18. package/dist/canonical.d.ts.map +1 -0
  19. package/dist/canonical.js +107 -0
  20. package/dist/canonical.js.map +1 -0
  21. package/dist/cli.d.ts.map +1 -1
  22. package/dist/cli.js +1 -0
  23. package/dist/cli.js.map +1 -1
  24. package/dist/diff-decoration.d.ts +79 -0
  25. package/dist/diff-decoration.d.ts.map +1 -0
  26. package/dist/diff-decoration.js +541 -0
  27. package/dist/diff-decoration.js.map +1 -0
  28. package/dist/granularity.d.ts +83 -0
  29. package/dist/granularity.d.ts.map +1 -0
  30. package/dist/granularity.js +247 -0
  31. package/dist/granularity.js.map +1 -0
  32. package/dist/head-metadata.d.ts +26 -0
  33. package/dist/head-metadata.d.ts.map +1 -0
  34. package/dist/head-metadata.js +56 -0
  35. package/dist/head-metadata.js.map +1 -0
  36. package/dist/index.d.ts +24 -4
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +30 -3
  39. package/dist/index.js.map +1 -1
  40. package/dist/lead.d.ts +1 -38
  41. package/dist/lead.d.ts.map +1 -1
  42. package/dist/lead.js +3 -37
  43. package/dist/lead.js.map +1 -1
  44. package/dist/llms-txt.d.ts +53 -11
  45. package/dist/llms-txt.d.ts.map +1 -1
  46. package/dist/llms-txt.js +85 -222
  47. package/dist/llms-txt.js.map +1 -1
  48. package/dist/plugins.d.ts.map +1 -1
  49. package/dist/plugins.js +4 -2
  50. package/dist/plugins.js.map +1 -1
  51. package/dist/project.d.ts +377 -12
  52. package/dist/project.d.ts.map +1 -1
  53. package/dist/project.js +2263 -661
  54. package/dist/project.js.map +1 -1
  55. package/dist/redirects.d.ts +116 -0
  56. package/dist/redirects.d.ts.map +1 -0
  57. package/dist/redirects.js +224 -0
  58. package/dist/redirects.js.map +1 -0
  59. package/dist/serialize.d.ts +14 -0
  60. package/dist/serialize.d.ts.map +1 -1
  61. package/dist/serialize.js +643 -216
  62. package/dist/serialize.js.map +1 -1
  63. package/dist/sitemap.d.ts +108 -0
  64. package/dist/sitemap.d.ts.map +1 -0
  65. package/dist/sitemap.js +127 -0
  66. package/dist/sitemap.js.map +1 -0
  67. package/dist/taxonomy.d.ts +48 -1
  68. package/dist/taxonomy.d.ts.map +1 -1
  69. package/dist/taxonomy.js +46 -11
  70. package/dist/taxonomy.js.map +1 -1
  71. package/dist/theme-css.d.ts +26 -0
  72. package/dist/theme-css.d.ts.map +1 -0
  73. package/dist/theme-css.js +651 -0
  74. package/dist/theme-css.js.map +1 -0
  75. package/dist/tone-classes.d.ts +14 -0
  76. package/dist/tone-classes.d.ts.map +1 -0
  77. package/dist/tone-classes.js +30 -0
  78. package/dist/tone-classes.js.map +1 -0
  79. package/dist/write-if-changed.d.ts +21 -0
  80. package/dist/write-if-changed.d.ts.map +1 -0
  81. package/dist/write-if-changed.js +58 -0
  82. package/dist/write-if-changed.js.map +1 -0
  83. package/package.json +16 -7
package/dist/project.d.ts CHANGED
@@ -1,4 +1,41 @@
1
1
  import type { ExportPage, NavItem } from "@dogsbay/types";
2
+ import { type BlogEmitConfig } from "./blog.js";
3
+ import { type RedirectsConfig } from "./redirects.js";
4
+ /**
5
+ * Astro `outDir` for a Cloudflare Workers deploy mounted on a host subpath.
6
+ *
7
+ * Workers Static Assets resolves the FULL request pathname against the
8
+ * asset manifest and strips nothing. A site mounted at `dogsbay.ai/blog/*`
9
+ * is therefore asked for `/blog/index.html`, and unless the build output
10
+ * actually contains `blog/`, every request 404s. Astro's `base` does not
11
+ * do this: it prefixes generated URLs (including `/blog/_astro/...`) but
12
+ * leaves the emitted files at `dist/` root. Setting `outDir` to
13
+ * `./dist<urlBase>` is what makes the two agree.
14
+ *
15
+ * GitHub Pages needs the OPPOSITE and must not get this. There the
16
+ * uploaded artifact IS the site root, served at `https://<user>.github.io/
17
+ * <repo>/`, so the host supplies the prefix: URLs must carry it, files
18
+ * must not. Emitting `outDir` for a Pages build would produce
19
+ * `/<repo>/<repo>/`. Hence the deploy-target gate — the same `site.url`
20
+ * deliberately yields different layouts per target.
21
+ *
22
+ * Returns `undefined` when the target is not Workers or the site sits at
23
+ * the host root (no path in `site.url`), which is the common case.
24
+ */
25
+ export declare function workersSubpathOutDir(deploy: AstroProjectOptions["deploy"], urlBase: string): string | undefined;
26
+ /**
27
+ * Build the `excludeFromRoutes` predicate.
28
+ *
29
+ * Exported because more than one emitter has to agree on which pages
30
+ * become routes. The blog listed excluded pages as posts, producing index
31
+ * cards and Newer/Older links to pages that were never emitted — a 404
32
+ * from the site's own front page.
33
+ *
34
+ * A single-segment pattern matches ANY segment (fragment dirs symlink to
35
+ * many depths in AsciiBinder corpora); a multi-segment pattern matches as
36
+ * a leading path prefix, so `welcome/_internal` excludes only that tree.
37
+ */
38
+ export declare function makeSlugExcluder(excludeFromRoutes?: string[]): (slug: string) => boolean;
2
39
  export interface AstroProjectOptions {
3
40
  siteName?: string;
4
41
  theme?: string;
@@ -6,13 +43,66 @@ export interface AstroProjectOptions {
6
43
  repoUrl?: string;
7
44
  editUri?: string;
8
45
  copyright?: string;
46
+ /** The line under the site name in the sidebar header (`site.tagline`). Default "Documentation". */
47
+ tagline?: string;
48
+ /** `content.imageCaptions`: a titled block image is a captioned figure. */
49
+ imageCaptions?: "title" | false;
50
+ /** `content.html`: "sanitize" filters raw HTML and directive attributes before serializing (@dogsbay/render-html/sanitize). */
51
+ html?: "keep" | "sanitize";
52
+ /**
53
+ * "Powered by DogsBay" footer attribution. Default ON — an unset value
54
+ * means true. `poweredBy: false` in dogsbay.config.yml removes it, and
55
+ * removes it completely: no markup, no link, no trace. See
56
+ * docs/powered-by.md.
57
+ */
58
+ poweredBy?: boolean;
9
59
  /**
10
60
  * Brand keywords for the site. Emitted into `src/data/site.json`
11
61
  * so the `seo/h1-brand-keyword` audit rule can read them.
12
62
  */
13
63
  brandKeywords?: string[];
64
+ /**
65
+ * Site-wide noindex. When true, every emitted page passes
66
+ * `noindex={true}` to DocsLayout regardless of frontmatter, and
67
+ * the sitemap emits zero `<url>` entries. Pages can ESCALATE
68
+ * (frontmatter `noindex: true` still works) but not opt out.
69
+ * See plans/site-level-robots-meta.md.
70
+ */
71
+ noindex?: boolean;
72
+ /**
73
+ * Site-wide nofollow. Same one-way semantics as `noindex` — site
74
+ * forces, page frontmatter `nofollow: true` can escalate but
75
+ * cannot opt out. Independent of `noindex`.
76
+ */
77
+ nofollow?: boolean;
14
78
  /** Source project directory (for copying extra_css, assets, etc.) */
15
79
  sourceDir?: string;
80
+ /**
81
+ * External asset directories mounted into the `_assets` convention. Each
82
+ * dir's CONTENTS are copied to `public/_assets/` (e.g. a Docusaurus `static/`
83
+ * dir, whose `/img/x` refs the importer rewrote to `/_assets/img/x`).
84
+ * `into` targets an `_assets/<into>` subdir; `mediaOnly` copies only media
85
+ * files (for mounts whose dir is the docs tree itself).
86
+ */
87
+ assetMounts?: {
88
+ dir: string;
89
+ into?: string;
90
+ mediaOnly?: boolean;
91
+ root?: string;
92
+ }[];
93
+ /**
94
+ * Per-source asset directories with the URL prefix their content refs
95
+ * were rewritten with. Used by multi-source (versioned/localised) builds
96
+ * so EACH source's assets are copied under `public/<urlPrefix>/...`
97
+ * (e.g. `public/8.8/_assets/...`) and same-path images across versions
98
+ * don't collide. When set, it REPLACES the single-`sourceDir` asset copy
99
+ * (which only ever copied the first source, version-less). `urlPrefix`
100
+ * empty/absent copies to `public/...` flat (the baseline source).
101
+ */
102
+ assetSourceDirs?: {
103
+ dir: string;
104
+ urlPrefix?: string;
105
+ }[];
16
106
  /** Custom CSS files from mkdocs.yml extra_css */
17
107
  extraCss?: string[];
18
108
  /** Enable Astro image optimization (copies to src/assets/ instead of public/) */
@@ -49,6 +139,8 @@ export interface AstroProjectOptions {
49
139
  * `taxonomies.tags.labels`. URLs continue to use slugs.
50
140
  */
51
141
  tagLabels?: import("@dogsbay/types").SiteConfig["tagLabels"];
142
+ /** Automatic chip colors. Sourced from `taxonomies.tags.autoColor`. */
143
+ tagAutoColor?: import("@dogsbay/types").SiteConfig["tagAutoColor"];
52
144
  /**
53
145
  * Map of taxonomy name → index path, sourced from declared
54
146
  * `taxonomies` entries. Lets renderer components surface a link
@@ -91,11 +183,18 @@ export interface AstroProjectOptions {
91
183
  id: string;
92
184
  label?: string;
93
185
  eol?: boolean;
186
+ prerelease?: boolean;
187
+ hidden?: boolean;
188
+ canonical?: "self";
189
+ noindex?: boolean;
190
+ sitemap?: boolean;
191
+ path?: "";
94
192
  }>;
95
193
  /**
96
194
  * Which version is the default. Marked in switcherMap.json so
97
- * the switcher can highlight it; PR 4c wires the default-
98
- * version redirect that uses this same field.
195
+ * the switcher can highlight it, and drives the default-version
196
+ * redirect middleware. A pre-release version is never the
197
+ * default (enforced at config load).
99
198
  */
100
199
  defaultVersion?: string;
101
200
  /**
@@ -112,12 +211,89 @@ export interface AstroProjectOptions {
112
211
  */
113
212
  defaultLocale?: string;
114
213
  /**
115
- * When set, emit a deploy config file + dev dep + script for the
116
- * named platform. Only "cloudflare-workers" supported today.
117
- * Other adapters (netlify, vercel, gh-pages) follow the same shape;
118
- * left unimplemented per Phase 1 scope.
214
+ * When set, emit deploy artifacts for the named platform.
215
+ *
216
+ * - `"cloudflare-workers"` — `wrangler.jsonc` + `wrangler` devDep +
217
+ * `deploy` script.
218
+ * - `"github-pages"` — `.github/workflows/deploy.yml` (Astro →
219
+ * `actions/deploy-pages` workflow) + `public/.nojekyll`.
220
+ *
221
+ * Both targets scaffold their files write-if-missing — re-running
222
+ * the build never clobbers an author-edited workflow YAML or
223
+ * wrangler config.
224
+ */
225
+ /**
226
+ * Other sites on this host whose sitemap / llms.txt this site
227
+ * aggregates. See `AggregateSource` in `@dogsbay/cli` and
228
+ * plans/subpath-robots-txt.md.
229
+ */
230
+ aggregates?: {
231
+ name: string;
232
+ description?: string;
233
+ url?: string;
234
+ sitemap?: string;
235
+ llmsTxt?: string;
236
+ }[];
237
+ deploy?: "cloudflare-workers" | "github-pages";
238
+ /**
239
+ * `redirects:` from dogsbay.config.yml — source path → target, or an object
240
+ * with a status. Merged with `redirect:` / `aliases:` page frontmatter and
241
+ * emitted per deploy target. See plans/redirects-and-aliases.md.
119
242
  */
120
- deploy?: "cloudflare-workers";
243
+ redirects?: RedirectsConfig;
244
+ /**
245
+ * Astro `build.inlineStylesheets` policy.
246
+ *
247
+ * - `"auto"` (default): inline only stylesheets below 4 KB,
248
+ * externalize the rest. Best for multi-page sites.
249
+ * - `"always"`: inline every stylesheet. Best for single-page
250
+ * sites where first-paint latency dominates.
251
+ * - `"never"`: always externalize. Maximizes cache reuse.
252
+ *
253
+ * Mirrors `dogsbay.config.yml`'s `build.inlineStylesheets`. Flows
254
+ * through `astro.config.dogsbay.mjs` so changes propagate without
255
+ * a scaffold rebuild. See docs/perf-tuning.md.
256
+ */
257
+ inlineStylesheets?: "auto" | "always" | "never";
258
+ /**
259
+ * Sidebar navigation render mode.
260
+ *
261
+ * - `"client"` (default): emit `<DocsNavClient />` — an empty placeholder
262
+ * that a tiny client script hydrates from `/_dogsbay/nav.json`.
263
+ * Page HTML stays small regardless of nav size; the nav DOM persists
264
+ * across view transitions. Trade-off: no-JS users see no sidebar
265
+ * nav, search-engine crawlers reach pages via `sitemap.xml` and
266
+ * in-content links rather than the sidebar.
267
+ * - `"ssr-full"`: render the full nav tree into every page's HTML.
268
+ * Best for tiny sites or strict no-JS / SEO contexts.
269
+ *
270
+ * See plans/client-rendered-nav.md.
271
+ */
272
+ navMode?: "client" | "ssr-full";
273
+ /**
274
+ * Table-of-contents placement — forwarded to DocsLayout's `toc` prop.
275
+ * Mirrors `DogsbayConfig.toc`:
276
+ * - `"top"` (default) — expandable "On this page" at the top of the
277
+ * article; frees the right rail for plugin content (e.g. Ask AI).
278
+ * - `"popover"` — an "On this page" control in the header.
279
+ * - `"rail"` — the classic right-hand TOC sidebar. In this mode the rail
280
+ * belongs to the TOC, so the `RightRail` plugin region is not emitted.
281
+ * - `"off"` — no table of contents.
282
+ */
283
+ toc?: "top" | "popover" | "rail" | "off";
284
+ /**
285
+ * Repo root — the directory containing `dogsbay.config.yml`. The
286
+ * Astro project (`outputDir`) is typically a subdirectory like
287
+ * `<projectDir>/astro/`. Deploy artifacts that GitHub Actions
288
+ * needs at the repo root (`.github/workflows/deploy.yml`) are
289
+ * written here, while artifacts that ship inside the Astro build
290
+ * (e.g. `public/.nojekyll`) stay under `outputDir`.
291
+ *
292
+ * When unset, defaults to `outputDir` — covers flat-layout flows
293
+ * (`dogsbay convert --to astro`) where the Astro project IS the
294
+ * repo. site-init and site-build always pass it explicitly.
295
+ */
296
+ projectDir?: string;
121
297
  /**
122
298
  * Overwrite all files including maintainer-customizable scaffold
123
299
  * files (theme.css, astro.config.mjs, package.json, site.json,
@@ -143,6 +319,31 @@ export interface AstroProjectOptions {
143
319
  * to static `.md` files in `dist/`. Default `true`.
144
320
  */
145
321
  mdMirror?: boolean;
322
+ /**
323
+ * Granularity views — emit aggregate "single-page" views alongside the
324
+ * topic-grained pages. Additive: the topic site is unchanged; aggregates
325
+ * are quarantined (noindex + excludeFromSearch → robots/sitemap/pagefind/
326
+ * llms all exclude them) and kept out of nav. See plans/granularity-views.md.
327
+ *
328
+ * Per-node opt-in via the nav file's `single-page: yes | no | children`
329
+ * annotation (default "no"). `book: true` is the legacy all-on switch: it
330
+ * seeds the top-level groups as if each were `single-page: yes`, so a node's
331
+ * own annotation still overrides. `maxSinglePageMB` (default 3) is a safety
332
+ * cap — a rollup whose source exceeds it is skipped with a warning instead of
333
+ * building a multi-minute / multi-MB page. See plans/granularity-views.md and
334
+ * docs-dev/granularity-book-perf.md.
335
+ */
336
+ granularity?: {
337
+ book?: boolean;
338
+ maxSinglePageMB?: number;
339
+ };
340
+ /**
341
+ * Blog mode. When set, every emitted page wears `chrome="blog"` (no
342
+ * sidebar), carries a byline, and takes its prev/next from DATE order
343
+ * rather than nav order. The reverse-chron index itself is emitted
344
+ * separately by `emitBlogFiles`. See plans/blog-capability.md.
345
+ */
346
+ blog?: BlogEmitConfig;
146
347
  /**
147
348
  * `Content-Signal` directive for the AI training corpus permission
148
349
  * emitted in robots.txt. Default `"no"` — opt out of training by
@@ -160,6 +361,22 @@ export interface AstroProjectOptions {
160
361
  * search results emitted in robots.txt. Default `"yes"`.
161
362
  */
162
363
  aiSearch?: "yes" | "no";
364
+ /**
365
+ * Emit the Article 4 reservation-of-rights preamble above the
366
+ * `Content-Signal` line in robots.txt. Default `false`.
367
+ * See `CONTENT_SIGNAL_PREAMBLE` in @dogsbay/site-files.
368
+ */
369
+ contentSignalPreamble?: boolean;
370
+ /**
371
+ * Emit the non-standard `Llms-Txt:` line in robots.txt. Default
372
+ * `false` — see `AgentConfig.llmsTxtDirective` in `@dogsbay/cli`.
373
+ */
374
+ llmsTxtDirective?: boolean;
375
+ /**
376
+ * "When to use this" guidance for llms.txt. See
377
+ * `AgentConfig.llmsWhenToUse` in `@dogsbay/cli`.
378
+ */
379
+ llmsWhenToUse?: string;
163
380
  /**
164
381
  * Per-page LLM action UI ("Copy as markdown", "Open in Claude/
165
382
  * ChatGPT/Perplexity/Gemini"). When omitted, the cluster is not
@@ -168,6 +385,46 @@ export interface AstroProjectOptions {
168
385
  * See plans/llm-page-actions.md.
169
386
  */
170
387
  llmActions?: import("@dogsbay/types").SiteConfig["llmActions"];
388
+ /**
389
+ * Resolved glyphs for the internal/external link-icon affordance.
390
+ * Baked into `site.json` as `linkIcons` and consumed by `DocsLayout`.
391
+ * Omitted when the feature is off. See plans/link-resolution-and-icons.md.
392
+ */
393
+ linkIcons?: import("@dogsbay/types").SiteConfig["linkIcons"];
394
+ /**
395
+ * Patterns that mark slugs as fragments (no Astro route).
396
+ * Pages matching any pattern are written to neither
397
+ * `src/pages/*.astro` nor `src/pages/*.md.ts`. The `.md` source
398
+ * files remain on disk under `content/` so `{% include %}`
399
+ * directives in other pages can still resolve them; they just
400
+ * aren't reachable as URLs.
401
+ *
402
+ * Match semantics depend on whether the pattern contains `/`:
403
+ * - `"modules"` (single segment) matches ANY path segment of
404
+ * the slug equal to "modules" — `modules/foo`,
405
+ * `welcome/modules/foo`, `a/b/modules/c` all exclude.
406
+ * What AsciiBinder corpora want — fragment dirs symlink
407
+ * into section dirs so the same dir name appears at many
408
+ * depths.
409
+ * - `"foo/bar"` (multi-segment) matches as a leading prefix
410
+ * only — `foo/bar` and `foo/bar/baz` exclude, but
411
+ * `welcome/foo/bar` does not. For when a specific path
412
+ * tree is fragment territory.
413
+ *
414
+ * The companion signal — frontmatter `_fragment: true` — is also
415
+ * honoured (per-page opt-out, set by importers that know which
416
+ * `.md` files are include-only fragments vs navigable pages —
417
+ * `migrate-asciidoc` is the first such importer). Either signal
418
+ * is enough to skip; both stack.
419
+ *
420
+ * Typical use case: AsciiBinder-style corpora where shared
421
+ * fragments live under `modules/`, `_attributes/`, `snippets/`
422
+ * — the converter writes them as `.md` so includes resolve, but
423
+ * they have no business being navigable as standalone pages
424
+ * (and emitting 18k useless routes punishes the Astro compiler).
425
+ * See plans/build-at-scale.md.
426
+ */
427
+ excludeFromRoutes?: string[];
171
428
  }
172
429
  /**
173
430
  * Export pages + nav to a complete Astro project directory.
@@ -204,24 +461,95 @@ export declare function exportAstroProject(pages: ExportPage[], nav: NavItem[],
204
461
  * through the full scaffold path. `emitSiteScaffold` also calls it.
205
462
  */
206
463
  export declare function emitSiteConfig(outputDir: string, siteName: string, options: AstroProjectOptions): void;
464
+ /**
465
+ * Re-pin an existing site's `@dogsbay/*` dependencies to the building CLI's
466
+ * version. Safe to call on every build.
467
+ *
468
+ * `package.json` is scaffold-once, and for a long time this ran only from
469
+ * `emitSiteScaffold`, which `site build` never calls — so the guard against
470
+ * version drift was unreachable from the one command where drift happens.
471
+ * Measured on openshift-docs-markdown: a site rebuilt weekly for months kept
472
+ * installing the `@dogsbay/docs-layout` written at its first scaffold, so no
473
+ * change to a runtime component ever reached it. Its sibling escaped only
474
+ * because that workflow passes `--force`, which re-scaffolds.
475
+ *
476
+ * Returns the changes made, so the caller can report them: a build that
477
+ * silently edits a tracked file is worse than the drift it fixes.
478
+ */
479
+ export declare function syncSiteDependencies(outputDir: string, options?: {
480
+ local?: boolean;
481
+ }): string[];
207
482
  export declare function emitSiteScaffold(outputDir: string, siteName: string, options: AstroProjectOptions, writeScaffold: boolean): number;
208
483
  /**
209
- * Emit content-tier files: nav.json, every page's .astro, the per-page
210
- * .md mirror endpoint (when `mdMirror` is enabled), and the index
211
- * redirect. Returns the count of pages emitted and the merged nav for
212
- * downstream consumers (llms.txt builder).
484
+ * Nav entries come from a project's own TOC files (toctrees, `_toc.yml`,
485
+ * `myst.yml`, nav.yml), i.e. from content. An href with a scheme other than
486
+ * http(s)/mailto/tel — `javascript:` above all — is dropped (the entry keeps
487
+ * its label and children), so it cannot reach the sidebar, nav.json or a
488
+ * page's previous/next link.
213
489
  */
490
+ export declare function dropUnsafeNavHrefs(items: NavItem[]): NavItem[];
214
491
  export declare function emitAstroPages(pages: ExportPage[], nav: NavItem[], outputDir: string, options: AstroProjectOptions): Promise<{
215
492
  generated: number;
216
493
  outputNav: NavItem[];
494
+ /**
495
+ * Output paths (relative to outputDir, OS-native separators) of the
496
+ * `.astro` files just written. Used by passthrough emit to detect
497
+ * collisions with hand-authored `.astro` files declared in nav.yml
498
+ * — see plans/passthrough-astro-pages.md.
499
+ */
500
+ generatedPaths: Set<string>;
217
501
  }>;
502
+ /** Passthrough source → destination pair, computed by the CLI's collector. */
503
+ export interface PassthroughCopy {
504
+ /** Absolute path to the source file (under contentDir). */
505
+ sourceAbs: string;
506
+ /**
507
+ * Output path relative to outputDir, OS-native separators. Same
508
+ * shape as `emitAstroPages` `generatedPaths` so the collision
509
+ * check can use a plain `Set.has`.
510
+ */
511
+ outputRelPath: string;
512
+ /** Source path relative to contentDir, for error messages. */
513
+ source: string;
514
+ }
515
+ /**
516
+ * Copy each passthrough `.astro` source to its computed output path.
517
+ * Aborts with a clear error if the destination is already in
518
+ * `generatedPaths` (a generated page from `emitAstroPages` would
519
+ * silently overwrite the hand-authored file otherwise).
520
+ */
521
+ export declare function emitPassthroughAstroPages(copies: PassthroughCopy[], outputDir: string, generatedPaths: Set<string>): {
522
+ copied: number;
523
+ };
218
524
  /**
219
525
  * Emit `public/robots.txt` with `Content-Signal` directives + sitemap
220
526
  * link. Always overwrites — the file's contents are pure derivation
221
527
  * from `options`. Maintainers wanting custom Disallow rules layer
222
528
  * them at the CDN level.
223
529
  */
224
- export declare function emitConfigDerivedFiles(outputDir: string, options: AstroProjectOptions): void;
530
+ export declare function emitConfigDerivedFiles(outputDir: string, options: AstroProjectOptions, pages?: ExportPage[]): void;
531
+ /**
532
+ * Per-deploy-target artifact emission.
533
+ *
534
+ * Called from `emitSiteScaffold` (with `forceOverwrite=writeScaffold`
535
+ * so `--force` regenerates from template) and from `dogsbay site
536
+ * build` (with `forceOverwrite=false` so an existing site can adopt
537
+ * a deploy target by editing config and rebuilding — the missing
538
+ * artifact gets created on the next build).
539
+ *
540
+ * Emit policy is the union: write when forced OR when the file is
541
+ * missing. Author edits to e.g. the workflow YAML survive every
542
+ * regular build.
543
+ *
544
+ * Currently handles `github-pages` (workflow + .nojekyll). The
545
+ * existing `cloudflare-workers` artifacts (wrangler.jsonc + package
546
+ * scripts) stay in the scaffold-only path because they overlap with
547
+ * scaffold-only files (package.json scripts, devDependencies). A
548
+ * future refactor could fold them in here too.
549
+ */
550
+ export declare function emitDeployArtifacts(outputDir: string, options: AstroProjectOptions, opts?: {
551
+ forceOverwrite: boolean;
552
+ }): void;
225
553
  /**
226
554
  * Shape of the emitted `src/data/switcherMap.json` file.
227
555
  * Switcher components import this JSON directly, so the shape
@@ -251,7 +579,11 @@ export interface SwitcherMap {
251
579
  id: string;
252
580
  label?: string;
253
581
  eol?: boolean;
582
+ prerelease?: boolean;
583
+ hidden?: boolean;
254
584
  default?: boolean;
585
+ /** Served at the site root (`path: ""`): its pages have no version segment. */
586
+ root?: boolean;
255
587
  }>;
256
588
  /**
257
589
  * Declared locales in declaration order. Same role as
@@ -317,4 +649,37 @@ export declare function emitMissingTranslationStubs(pages: ExportPage[], outputD
317
649
  * `emitAstroPages` (they share the page-loop's serialization step).
318
650
  */
319
651
  export declare function emitAgentReadinessFiles(pages: ExportPage[], outputNav: NavItem[], outputDir: string, siteName: string, options: AstroProjectOptions): void;
652
+ /**
653
+ * Build the contents of `public/_headers` (Cloudflare Pages / Workers
654
+ * Static Assets convention). Emits a global RFC 8288 Link header
655
+ * pointing at this mount's llms.txt index, so agents don't need to
656
+ * parse HTML to discover the LLM-friendly content listing.
657
+ *
658
+ * The Link target is basePath-prefixed (`</docs/llms.txt>` for a
659
+ * `/docs` mount) — matches where the platform actually emits
660
+ * llms.txt under the per-mount layout.
661
+ */
662
+ /**
663
+ * URL for `<link rel="icon">`, or `false` when the project ships no
664
+ * favicon.
665
+ *
666
+ * The scaffold deliberately ships none — authors drop their own into
667
+ * `public/`. Emitting the link unconditionally therefore advertised a
668
+ * 404 on every generated site. Checks `.ico` then `.svg`, matching the
669
+ * two the scaffold documents.
670
+ */
671
+ export declare function faviconHref(outputDir: string, urlBase: string): string | false;
672
+ /**
673
+ * The version served at the site root: the `defaultVersion` when its
674
+ * `versions` entry has `path: ""` (the CLI's config load allows it on no
675
+ * other version). Its pages have no version segment.
676
+ */
677
+ export declare function rootVersionOf(options: Pick<AstroProjectOptions, "versions" | "defaultVersion">): string | undefined;
678
+ /**
679
+ * Copy the UI component folders the serializer can emit into the site's
680
+ * `src/components/ui/`, skipping any that exist (project-owned, maybe
681
+ * edited). Returns the names added. `site build` calls it so a component
682
+ * introduced in a release (Kbd, FileTree) reaches sites scaffolded earlier.
683
+ */
684
+ export declare function copyComponents(outputDir: string): string[];
320
685
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}