Skip to content

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 11:23
· 215 commits to main since this release

Added

  • /llms.txt lists every document that has a Markdown version, once, in the
    order the sidebar shows it: a heading per folder, and per document its
    title, the address of its Markdown version and its description. A PDF says
    so in its link text. A top-level folder with a page of its own also gets
    /<its page>/llms.txt, which the site index links to first. There is no
    llms-full.txt. See
    ADR-033, which supersedes
    ADR-010 in part.
  • Every page's head links to /llms.txt, a document's head to its Markdown
    version, and the home page, documents and folder pages describe themselves
    in JSON-LD: a document with its edit date, its source and its Markdown
    version. The home page's "For AI agents" block starts at /llms.txt.
  • The fixture project's typecheck also type-checks the platform's
    build-time routes and modules that read generated types, through
    tsconfig.platform.json: the Markdown and asset routes, the llms.txt
    routes, the corpus and section helpers, and the content configuration.
    Nothing type-checked them before.
  • The content health page checks a Google Doc's headings: "A heading skips a
    level", judged as the page shows it, and "Two headings say the same", both
    under "Worth a look", with a link to the line in Google Docs. See
    ADR-034.
  • Two notes: "The page has no summary", for a Google Doc with no paragraph of
    plain text, and "A link leads to a Google file that is not on this site",
    for a link to a Google Doc or Drive file outside the published folders.
    Spreadsheets, slides, folders and open?id= links, whose address does not
    say what the file is, are not counted.

Changed

  • Upgrade step: a project's public/_headers needs rules for /llms.txt
    and /*/llms.txt, with the policy of its /*.md rule and
    Content-Type: text/plain; charset=utf-8; the fixture project's file shows
    them. ctcdocs-sync validate requires both on a private deployment.
  • ctcdocs-access-smoke probes /llms.txt: denied to an anonymous request,
    and served with its charset, listing the document it reads as Markdown, to
    an admitted one. It reads the index up to 25 MiB, the largest file Workers
    Static Assets serves.
  • The interface stylesheet and every component read the platform's own
    --kb-* design tokens instead of Starlight's --sl-* ones. One adapter
    block in styles.css assigns Starlight's tokens from the platform's, and
    reads back the few Starlight owns, such as its type steps, so the design
    language no longer depends on Starlight's names. A unit test keeps
    Starlight's token names out of components, routes, scripts and lib, and
    their reads out of styles.css outside the adapter. A project's
    brand.css is unchanged and keeps writing the accent triad under
    Starlight's names, and the Expressive Code overrides in the preset keep
    Starlight's names too, so the code stylesheet and its address do not
    change. Compared before and after on the fixture, 35 computed properties of
    every element were identical on all 20 pages, the permanent-link redirects
    aside, in both themes at desktop and
    phone widths, with the search dialog and its backdrop open, with the mobile
    menu open, across the first 25 keyboard focus stops, under the pointer on
    the first 20 links and controls of two pages, and in print.
  • A link to a Google Doc copied from a signed-in account
    (/document/u/<n>/d/…), to a Google Doc's other views (none, preview,
    mobilebasic, pub) and to a Drive file (/file/d/…) now opens the site's
    page when the file is published, such as a PDF. A link asking for a copy or
    a download stays as it is.
  • The source facts in data/title-report.json are version 4. The first normal
    sync after upgrading exports every Google Doc once more to read them: it
    takes as long as a full sync, and, like one, rewrites a page wherever
    Google's export or the link handling now differ from when the page was last
    written.
  • A folder's page now opens its sidebar group, as "Overview", when the folder
    holds no document with a landing title, numbered or not, and no subfolder
    labeled like it, so a group never lists two entries with one name. The
    label is the first of navigation.landingDocumentTitles. The item names its
    folder in aria-label, "Reference: Overview", which the previous and next
    links now show in place of the sidebar label. The page is highlighted in
    the sidebar when open, and takes its place in previous and next. See
    ADR-035,
    which supersedes ADR-014 in part. The sidebar changes on the next sync.
  • The browser suite runs its accessibility audits once the page's running
    animations have finished, waiting two seconds at most. Switching the theme
    fades a sidebar link's background over 150 ms while its text changes at
    once, and an audit in between failed on a frame no reader stops on.

Fixed

  • The home page is found in search by its title alone. Its folder cards,
    recent documents and interface text were indexed, so it came back beside
    nearly every document a search found, and the 404 page could offer it in
    place of the page a stale address named. A folder with no page of its own is
    now found by its name at its heading in the full index, which was the only
    text naming it that the home page's exclusion would otherwise take away. See
    ADR-036,
    which supersedes ADR-017 in part.
  • ctcdocs-verify-search checks again that interface text stays out of the
    search index. It searched for a sentence no component renders any more, so
    the check passed on every build without testing anything. Elements whose
    text must stay out of the index are now marked data-ctcdocs-unindexed; the
    check fails when a build marks nothing, and when any marked element on any
    page lacks data-pagefind-ignore. Pagefind itself then confirms that a
    marked page indexes the same as the page without its marked elements, and
    that the home page indexes only its title. A project that replaces the
    platform's components keeps the marks.