Skip to content

Releases: heyo-sh/heyo-docs

@heyo-sh/heyo-docs@4.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 00:59
521ea61

Patch Changes

  • cb5300a: Update the pinned typebox runtime dependency to 1.4.1.

@heyo-sh/create-heyo-docs@3.2.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 23:34
b2f8737

Patch Changes

  • 042f57a: Build generated React Router and Astro Cloudflare projects before deploying so Wrangler cannot publish stale prerendered documentation and assets.

@heyo-sh/heyo-docs@4.0.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 22:23
960f8de

Patch Changes

  • d151ac6: Keep the line breaks an author writes in a code block. MDX renders the children of a component as markdown, so a blank line arrived as a second paragraph and every newline was dropped when the source text was read back, and a blank line that did survive collapsed to nothing because an empty line span had no height of its own. CodeBlock, CodeBlockGroup, and Mermaid now rebuild the newlines their markup implies, blank lines keep the height of a line in every built-in theme, and unhighlighted code is written with the same line separators Shiki uses.

@heyo-sh/heyo-docs@4.0.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 14:46
936b7b0

Major Changes

  • 52df24e: Use ai.chat.auth as the sole AI Chat credential setting. Remove the separate request-handler auth option, and allow API-key tokens to be resolved from server-only platform secrets when a request arrives. Keep the Cloudflare creator's HEYO_DOCS_AI_API_KEY binding working by mapping it into ai.chat.auth when no explicit auth is configured.

    Link llms.txt entries to the public .md representation of each page, including /index.md for the home page.

@heyo-sh/create-heyo-docs@3.2.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 14:46
936b7b0

Patch Changes

  • 52df24e: Use ai.chat.auth as the sole AI Chat credential setting. Remove the separate request-handler auth option, and allow API-key tokens to be resolved from server-only platform secrets when a request arrives. Keep the Cloudflare creator's HEYO_DOCS_AI_API_KEY binding working by mapping it into ai.chat.auth when no explicit auth is configured.

    Link llms.txt entries to the public .md representation of each page, including /index.md for the home page.

@heyo-sh/heyo-docs@3.5.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 00:12
ad70d8d

Minor Changes

  • bb23603: Serve finished documentation HTML. A document body is no longer wrapped in a Suspense boundary: server rendering imports MDX directly for React Router, Next.js, and Astro, so the page is complete before it is sent, and a streaming renderer can no longer flush Loading documentation… for the browser to replace. In the browser the React Router route fetches the destination page's MDX chunk in a clientLoader before the new page is displayed, which keeps a chunk per page.

    A project that renders DocsApp with pages whose content suspends must now load that module before it renders the route. The generated React Router project does this for you, and the Vite adapter exposes page.preload() for projects that mount the route themselves. Generated projects keep the streaming server entry, because React Router carries its hydration data inside a Suspense boundary that renderToString cannot complete.

@heyo-sh/create-heyo-docs@3.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 00:12
ad70d8d

Minor Changes

  • bb23603: Serve finished documentation HTML. A document body is no longer wrapped in a Suspense boundary: server rendering imports MDX directly for React Router, Next.js, and Astro, so the page is complete before it is sent, and a streaming renderer can no longer flush Loading documentation… for the browser to replace. In the browser the React Router route fetches the destination page's MDX chunk in a clientLoader before the new page is displayed, which keeps a chunk per page.

    A project that renders DocsApp with pages whose content suspends must now load that module before it renders the route. The generated React Router project does this for you, and the Vite adapter exposes page.preload() for projects that mount the route themselves. Generated projects keep the streaming server entry, because React Router carries its hydration data inside a Suspense boundary that renderToString cannot complete.

Patch Changes

  • bb23603: Keep the request endpoints below /heyo-docs-internal/ out of search results in the generated robots.txt, and resolve OpenAPI endpoint data in the React Router route's server loader only. The previous browser branch could never run, because React Router strips loader from the client bundle.

@heyo-sh/heyo-docs@3.4.1

Choose a tag to compare

@github-actions github-actions released this 04 Oct 20:41
b946fd5

Patch Changes

  • a208912: Declare the JSX runtime the compiled pages import, and invert a configured logo
    in the Heyo theme's dark mode.

    Vite's dependency scanner only crawls real files, and every page this adapter
    emits lives behind a virtual module, so react/jsx-runtime stayed invisible
    until a page was rendered. In an environment that bundles its server
    dependencies — a Cloudflare Worker, say — discovering it mid-request made Vite
    re-optimise and reload while a render was in flight, which left two copies of
    React in one tree and failed the first request after a cold cache with
    Cannot read properties of null (reading 'useContext'). The adapter now
    declares the runtime for every environment, so the optimiser is complete before
    the first request and no application needs an optimizeDeps entry of its own.

    The Heyo theme also rendered branding.logo without dark:invert, so a
    monochrome mark drawn for the light surface disappeared on the dark one.

    And the Heyo and Moss themes left the <pre> honouring the newline Shiki
    writes between its line spans. Because those spans are already blocks, every
    line break in a highlighted block was rendered twice — only after hydration,
    since the server renders unhighlighted markup that has no such newline.

@heyo-sh/heyo-docs@3.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 08:29
a3c9a57

Minor Changes

  • 095ede5: Add heyo, a console theme built on the heyo-ui design language.

    Select it with theme: "heyo", import @heyo-sh/heyo-docs/theme/heyo.css, and
    render heyoTheme — or pick Heyo in create-heyo-docs.

    What it is:

    • A monochrome accent. --primary is the inverse of the page, near-black on
      light and near-white on dark, so hue is left to mean one thing: status.
    • Flat surfaces and translucent edges. The sidebar shares the page fill and
      a single hairline separates it; nothing floats on its own tint. Edge colours
      are translucent, so one value is correct on every surface.
    • A dense 12 / 13 / 14 / 16px scale, with hierarchy from weight and colour
      rather than size, and shadows reduced to a hairline plus a whisper of drop.

    What it composes differently:

    • The group switcher is a Select-shaped control at the top of the sidebar
      instead of header tabs, and it disappears when there is only one group. Header
      tabs and segmented tracks both need room proportional to the number of groups,
      which a 15rem rail does not have.
    • Search sits directly under it, with the shortcut spelled out as keycaps.
    • The breadcrumb owns the 48px header; colour mode is toggled there so it stays
      reachable while the sidebar is a closed drawer.
    • Sidebar sections disclose their pages, count them, and hang them off a guide
      rail at every depth. Changelog entries use the same rail with a marker for the
      entry under the reading line.
    • External links pin to the sidebar footer, which renders nothing when no
      website or repository is configured.
    • The 404 body is styled rather than inheriting browser defaults.

    The shared search component now accepts triggerClassName and triggerContent
    for its button trigger, and labels it Search documentation. Themes that want a
    search affordance of their own no longer have to reach for the read-only input:
    browsers always treat a focused text field as keyboard-focused, so restoring
    focus to one after the dialog closes parks a focus ring on it.

@heyo-sh/create-heyo-docs@3.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 08:29
a3c9a57

Minor Changes

  • 095ede5: Add heyo, a console theme built on the heyo-ui design language.

    Select it with theme: "heyo", import @heyo-sh/heyo-docs/theme/heyo.css, and
    render heyoTheme — or pick Heyo in create-heyo-docs.

    What it is:

    • A monochrome accent. --primary is the inverse of the page, near-black on
      light and near-white on dark, so hue is left to mean one thing: status.
    • Flat surfaces and translucent edges. The sidebar shares the page fill and
      a single hairline separates it; nothing floats on its own tint. Edge colours
      are translucent, so one value is correct on every surface.
    • A dense 12 / 13 / 14 / 16px scale, with hierarchy from weight and colour
      rather than size, and shadows reduced to a hairline plus a whisper of drop.

    What it composes differently:

    • The group switcher is a Select-shaped control at the top of the sidebar
      instead of header tabs, and it disappears when there is only one group. Header
      tabs and segmented tracks both need room proportional to the number of groups,
      which a 15rem rail does not have.
    • Search sits directly under it, with the shortcut spelled out as keycaps.
    • The breadcrumb owns the 48px header; colour mode is toggled there so it stays
      reachable while the sidebar is a closed drawer.
    • Sidebar sections disclose their pages, count them, and hang them off a guide
      rail at every depth. Changelog entries use the same rail with a marker for the
      entry under the reading line.
    • External links pin to the sidebar footer, which renders nothing when no
      website or repository is configured.
    • The 404 body is styled rather than inheriting browser defaults.

    The shared search component now accepts triggerClassName and triggerContent
    for its button trigger, and labels it Search documentation. Themes that want a
    search affordance of their own no longer have to reach for the read-only input:
    browsers always treat a focused text field as keyboard-focused, so restoring
    focus to one after the dialog closes parks a focus ring on it.