You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove jQuery. The theme no longer loads jQuery on any page. It was
previously fetched render-blocking in <head> for every request, and the
third-party inventory listed it as part of the UI foundation, so a consuming
site's own scripts may have relied on the global $. Sites that do must now
bundle jQuery themselves through project JavaScript. No theme feature
requires it.
Remove static/js/tabpane-persist.js.assets/js/code-tabs.js took over
the legacy persistence contract, keeping the td-tp-persist storage key and
data attribute, so authored tab content is unaffected. Sites that referenced
the published file path directly must drop that reference.
Apply body and heading typography roles directly to content. Sites that
previously restyled raw body or heading selectors should move to the
corresponding --td-*-font-family role or the established Sass variable.
Added
Add one-level Hugo Menu dropdowns on desktop and matching mobile accordions,
preserving independent parent navigation, keyboard operation, active paths,
external-link safety, and flat-menu compatibility.
Add all, groups, and none sidebar icon-density policies. The absent
compatibility default remains all; the starter example opts into groups.
Add local-search keywords, positive boost multipliers, canonical exclusion,
root/section/type grouping metadata, deterministic breadcrumbs and icons,
language-separated size budgets, and identical boost behavior in Lunr and
CJK substring ranking.
Upgrade the existing local-search dialog to a Command Palette with empty,
text, and > command modes, plus quick links, grouped page results,
context-aware actions, localized safe site commands, choice actions, and a
shared page-action registry.
Add / as a command-first Palette shortcut outside editable controls. It
opens with the > prefix, preserves the existing Cmd/Ctrl-K entry point,
and returns focus to the pre-shortcut element when closed.
Complete the shared page-action set with Open in ChatGPT, Open in Claude, and
View edit history. Assistant prompts resolve the current browser URL at
activation time, including its deployed host, query string, and fragment;
repository history uses the same source path as Edit this page. The outbound
assistant actions are disabled by default and require params.ui.page_context_menu.assistant_links: true.
Add a bilingual PRD 4 migration reference and machine-checked root/subpath
starter fixtures.
Run the browser runtime tests in CI. tests/js/ covers the shell, Command
Palette, search engine, action registry, and surface coordination; until now
no workflow executed it, so the only automated check on that code was that
Hugo could bundle it.
Add validated badge, kbd, fields, and filetree content primitives
with semantic HTML, responsive presentation, and dedicated print and Markdown
fallbacks. A standalone public icon shortcode remains deferred; components
may use a private, allowlisted icon registry for their own decoration.
Add opt-in native-dialog Image Zoom plus the shared gallery primitive,
with page-level overrides, lazy media metadata, keyboard and focus handling,
and page-store-driven runtime loading.
Add validated technical and system typography presets plus public --td-*-font-family roles for UI, body, headings, code, display text,
metadata, and print output. Existing Docsy and Bootstrap Sass font variables
seed the new roles, and the system preset does not request OINK brand fonts.
Add a typography-token boundary check and representative docs, blog, and
print fixtures to the minimal example site.
Add enhanced fenced code surfaces with filenames, language labels, copy,
wrapping, long-block collapse, and deterministic transcript-command copying;
add code-group for synchronized, deep-linkable alternatives while retaining
legacy tabpane persistence.
Changed
Rename the reader-facing Copy Markdown and View Markdown actions to Copy text
and View source. Their stable action IDs and Markdown-output requirements do
not change.
Route landing, shell, navigation, footer, content-card, search, print, and
Asciinema font choices through semantic typography roles while preserving the
default technical appearance.
Give code stacks explicit Sarasa and Noto CJK monospace fallbacks instead of
relying on the browser's generic monospace fallback.
Keep off-site navigation out of llms.txt. Menu entries whose host differs
from the site's own are navigation chrome rather than content, and listing
them diluted an index meant for agents. Page-backed and same-host entries are
unchanged.
Fixed
Link the llms.txt a site actually publishes. The Markdown output advertised
the index unconditionally, so a site enabling the markdown output format
without LLMS emitted a dangling link on every Markdown page. Each language
now links its own index instead of pointing every translation at the default
language's file.
Localize the archived-version banner and the giscus noscript block, which
were hardcoded English on every site. This also closes an unclosed <p> the
banner emitted whenever url_latest_version was unset.
Strip single-quoted and bare data-zoom-src attributes from print and
Markdown output; only double-quoted values were removed before.
Percent-encode the query that search.js places in the search URL. A query
containing & was previously truncated at that character.
Wait for the Asciinema terminal font before fitting terminal output, avoiding
incorrect geometry when the custom font finishes loading after the player.
Resolve product roots by content type when docs and blog share a type, and
keep configured internal command URLs under the active deployment subpath.
Performance
Read the recorded tdOutputFormat page-store value instead of re-deriving the
active output format, and cache the shell configuration and search dialog per
language. On a 576-page build this cut shell/config.html from 151.9ms to
22.1ms, chrome-enabled.html from 141.9ms to 49.6ms, and removed 3930 calls
to outputformat.html, which is retained as a deprecated shim for consumer
sites. Generated output is byte-identical.
Case-fold search fields once when the engine is created rather than on every
keystroke. A CJK query previously re-allocated a lowercase copy of the whole
corpus per character typed; on an 800-document corpus this is 3.44ms to
0.34ms per keystroke.
Drop jQuery and the superseded offline-search.js runtime, which the Command
Palette replaced. On the measured project-site snapshot this removed about
88 KB from a typical documentation page's combined CSS and JavaScript; exact
totals vary as later candidate assets change.
Removed
Remove assets/js/offline-search.js. The Command Palette replaced it and the
runtime-isolation checks already asserted that it must not be bundled.