Repository navigation
Releases: heyo-sh/heyo-docs
Release list
@heyo-sh/heyo-docs@4.0.2
Patch Changes
- cb5300a: Update the pinned typebox runtime dependency to 1.4.1.
@heyo-sh/create-heyo-docs@3.2.2
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
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, andMermaidnow 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
Major Changes
-
52df24e: Use
ai.chat.authas the sole AI Chat credential setting. Remove the separate request-handlerauthoption, and allow API-key tokens to be resolved from server-only platform secrets when a request arrives. Keep the Cloudflare creator'sHEYO_DOCS_AI_API_KEYbinding working by mapping it intoai.chat.authwhen no explicit auth is configured.Link
llms.txtentries to the public.mdrepresentation of each page, including/index.mdfor the home page.
@heyo-sh/create-heyo-docs@3.2.1
Patch Changes
-
52df24e: Use
ai.chat.authas the sole AI Chat credential setting. Remove the separate request-handlerauthoption, and allow API-key tokens to be resolved from server-only platform secrets when a request arrives. Keep the Cloudflare creator'sHEYO_DOCS_AI_API_KEYbinding working by mapping it intoai.chat.authwhen no explicit auth is configured.Link
llms.txtentries to the public.mdrepresentation of each page, including/index.mdfor the home page.
@heyo-sh/heyo-docs@3.5.0
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 aclientLoaderbefore the new page is displayed, which keeps a chunk per page.A project that renders
DocsAppwith pages whosecontentsuspends must now load that module before it renders the route. The generated React Router project does this for you, and the Vite adapter exposespage.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 thatrenderToStringcannot complete.
@heyo-sh/create-heyo-docs@3.2.0
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 aclientLoaderbefore the new page is displayed, which keeps a chunk per page.A project that renders
DocsAppwith pages whosecontentsuspends must now load that module before it renders the route. The generated React Router project does this for you, and the Vite adapter exposespage.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 thatrenderToStringcannot complete.
Patch Changes
- bb23603: Keep the request endpoints below
/heyo-docs-internal/out of search results in the generatedrobots.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 stripsloaderfrom the client bundle.
@heyo-sh/heyo-docs@3.4.1
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, soreact/jsx-runtimestayed 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 anoptimizeDepsentry of its own.The Heyo theme also rendered
branding.logowithoutdark: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
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
renderheyoTheme— or pick Heyo increate-heyo-docs.What it is:
- A monochrome accent.
--primaryis 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
triggerClassNameandtriggerContent
for its button trigger, and labels itSearch 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. - A monochrome accent.
@heyo-sh/create-heyo-docs@3.1.0
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
renderheyoTheme— or pick Heyo increate-heyo-docs.What it is:
- A monochrome accent.
--primaryis 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
triggerClassNameandtriggerContent
for its button trigger, and labels itSearch 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. - A monochrome accent.