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
Page annotations. Select text on a rendered page, attach a note, and copy every note of the page as Markdown
that names the source file (relative to the repository root) and quotes each passage, ready to paste into an LLM
harness. Notes stay in the browser's localStorage. On by default, including in gomddoc build output: a public
static site gains the annotation UI and its pages name their repo-relative source path. Turn it off with theme.features.annotations: false (GOMDDOC_SITE_THEME_FEATURES_ANNOTATIONS=false) or per page with features: {annotations: false}. See the guide's "Annotating a Page".
Localized client strings in every theme. Code copy buttons, search, color chips and annotations read their UI
text from <script type="application/json" data-gmd-i18n="…"> blocks emitted by scripts-shared. The seven
downloadable themes now show these strings in the page's language (they were always English). Theme scripts can
add their own namespace (guide: Internationalization).
Built with Go 1.26.10 (GO-2026-6809, crypto/x509).
Upgrade notes
Renamed locale keys:copy → code_copy_label, copied → code_copy_done, aria_copy_code → code_copy_aria. Rename them in .gomddoc/locales/*.yml; the old names are ignored.
New locale keys:search_label (the search dialog; aria_search now only labels the header button), search_query, search_results, color_chip_label, color_chip_done, plus the annotation* keys. A fully
translated site shows the default language for these until it adds them.
Plural variants:_zero, _one, _two, _few and _many are reserved suffixes, chosen by each language's
plural rules. Variant strings take %d. A site key ending in one of these suffixes is now treated as a plural
variant by .T.
The data-* attributes on <html> are no longer read. Themes that inline the shared modules themselves
(instead of calling scripts-shared) must load code-copy.mjs, search.mjs, gmd-color-chip.mjs and gmd-annotations.mjs with <script type="module"> and emit their blocks with i18nStrings.
Static hosts must serve .mjs as JavaScript (_assets/gmd-i18n.mjs); the modules import it.
Per-page features: frontmatter overrides now work (they were ignored). Tag pages honour the site's feature
toggles. Generated directory listings no longer carry a JSON-LD dateModified.
Changelog
Features
feat(annotations): annotation UI in the default theme
feat(annotations): core anchoring, export and storage module with Vitest gate
feat(i18n): code copy, search and color chips read namespaced blocks
feat(i18n): gmd-i18n.mjs helper for namespaced client strings
feat(template): i18nStrings namespaces and CLDR plural variants
feat(template): repo-relative SourcePath in the page context