Something went wrong. Try again.
Identities for entities did.bot
agent llm did
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485// The shape shared by every section of the site that is an index page with// its own subpages underneath it: features, architecture, about.//// A section is a list. Adding, removing or reordering a subpage is an edit// to that section's own data file and nothing else — the index page renders// the list, and `[slug].astro` derives one route per entry from the same// list, so there is never a second place that has to learn about a new// subpage.
export interface SubpageImage { /** * The imported image itself, not a path: `import shot from * "../assets/features/apricity.png"` at the top of the data file, then * `src: shot` here. Importing rather than naming a `/public/` URL is what * lets Astro hash, resize and serve the file, and what makes a typo a * build error instead of a broken image on the live site. * * Any format `astro:assets` handles works (png, jpg, webp, avif, svg). * Put the file under `src/assets/<section>/`. */ src: ImageMetadata; /** * What the image shows, for screen readers and for a reader whose image * never loads. Human-facing prose, so filler here is wrapped in `PH()` * like any other unwritten line — but note that alt text describes a * picture rather than selling anything, so it is usually the easiest * copy on the page to write for real. */ alt: string;}
export interface SubpageDiagram { /** * Mermaid source, as written in a mermaid fence. Rendered in the browser * (see src/components/Diagram.astro) in the site's own palette. * * A subpage carries an `image` or a `diagram`, not both — they occupy the * same slot on the page. A diagram is the better choice when the picture * is boxes and arrows the copy refers to; an image when it is a * screenshot or anything the browser cannot draw from text. */ mermaid: string; /** * What the diagram shows, in a sentence. This is not decoration: it is * the whole picture for a screen reader, and it is what a visitor sees * if the renderer never runs, so it has to carry the point rather than * name the shape ("the operator's PDS holds policy; did.bot polls it", * not "a diagram with three boxes"). */ alt: string;}
export interface Subpage { /** URL segment under the section, and the entry's identity. */ slug: string; /** The subpage's own <h1>, and its link text on the section index. */ title: string; /** One line, shown under the title on both the index and the subpage. */ lede: string; /** * The subpage's body, one paragraph per entry. A subpage with nothing * but a lede can leave this empty. */ body: readonly string[]; /** * Optional illustration, shown above the body. Omit the key entirely for * a subpage that has no image; the page renders fine without one. */ image?: SubpageImage; /** * Optional diagram, shown in the same slot as `image` and instead of it. * Set one or the other, never both. */ diagram?: SubpageDiagram;}
export interface Section { /** The section's own <h1> and nav label. */ title: string; /** One line under the section's <h1>. */ intro: string; /** In the order they appear on the index page. */ pages: readonly Subpage[];}