Hextra v0.12
Hextra v0.12.0 delivers a rich set of new features including page context menus, image zoom, redesigned tabs, and more, plus comprehensive WCAG 2.2 AA accessibility improvements and numerous bug fixes.
Upgrade Guide
No breaking changes are expected for most sites. Update using Hugo Modules:
hugo mod get -u github.com/imfing/hextraHighlights
- Page context menu for copying/viewing Markdown source
- Redesigned tabs shortcode with per-tab naming and icon support
- Click-to-zoom for Markdown images
- GoatCounter analytics support
- Option to hide the main sidebar on desktop
- Display last modified author via GitInfo
- Option to disable prev/next navigation
- Built-in archives page for chronological blog post listings
- Term glossary shortcode and layout
- Exclude pages/sections from llms.txt
- Mobile sidebar ordering and labels aligned with
menu.main - Stable content width with CSS variable override support
- Comprehensive WCAG 2.2 AA accessibility improvements
New Features
Page Context Menu
The page context menu provides a dropdown button that lets you copy the page content as Markdown or view the raw Markdown source. As more users feed documentation into generative AI tools, having quick access to clean Markdown is increasingly useful. Custom links with template variables ({url}, {title}, {markdown_url}) let you wire up “Ask AI” shortcuts or other integrations directly in the menu.
To use the “View as Markdown” and {markdown_url} features, enable the Markdown output format in your site configuration:
outputs:
page: [html, markdown]
section: [html, rss, markdown]Then configure the context menu:
params:
page:
contextMenu:
enable: true
links:
- name: "Ask AI"
url: "https://example.com?content={markdown_url}"
icon: "sparkles"Tabs Revamp and Icon Support
The tabs shortcode has been redesigned. Tab names can now be set directly on each tab shortcode, and an optional icon parameter displays an icon before the tab label. The previous syntax is still supported.
{{< tabs >}}
{{< tab name="Photos" icon="photograph" >}}Manage and organize your photo library.{{< /tab >}}
{{< tab name="Music" icon="music-note" >}}Browse and play your favorite tracks.{{< /tab >}}
{{< tab name="Videos" icon="film" >}}Watch and stream video content.{{< /tab >}}
{{< /tabs >}}Image Zoom
Enable click-to-zoom on Markdown images with a new configuration option, powered by medium-zoom.
params:
imageZoom:
enable: trueGoatCounter Analytics
Built-in support for GoatCounter analytics alongside existing Google Analytics, Umami, and Matomo integrations.
Hide Main Sidebar
A new front matter parameter allows hiding the main sidebar on desktop to give content pages the full width.
---
title: My Page
sidebar:
hide: true
---Last Modified Author
Display the last commit author alongside the “last updated” date using Hugo’s GitInfo.
params:
displayUpdatedAuthor: trueDisable Prev/Next Navigation
Disable the previous/next navigation buttons site-wide:
params:
page:
displayPagination: falseLLMs.txt Exclusion
Exclude individual pages or entire sections from llms.txt output by setting llms: false in front matter.
---
title: "Private Page"
llms: false
---Archives Page
A new built-in archives layout displays blog posts in a chronological timeline grouped by year, with tags shown inline after each post title.
---
title: Archives
layout: archives
---Glossary
A site-wide terminology glossary with a dedicated listing page and a term shortcode for inline definitions.
Accessibility
Comprehensive WCAG 2.2 AA accessibility improvements (#924):
- Skip-to-content link and ARIA landmark roles on all pages
- ARIA attributes on all interactive widgets (theme toggle, tabs, sidebar, filetree, dropdowns, search, menus)
- Keyboard navigation for tabs and theme toggle (arrow keys, Enter, Escape)
prefers-reduced-motionsupport and globalfocus-visiblestyles- 15 new i18n accessibility keys with full translations across all 21 locales
- Replaced all hardcoded English
aria-labelstrings with i18n lookups
Quality of Life
- Improved table readability styles
- Markdown attribute support for headers
- Better active link detection for multilingual section landing pages
- Card shortcode supports optional
altparameter for images - Page bundle images supported in OpenGraph metadata
- Content width now stays consistent by default, with CSS variable override support for custom layouts
Fixes
- Prevent
relrefdouble base-prefix in render-link - Fix tabs rendering when nested inside steps
- Align mobile sidebar ordering and labels with
menu.main - Respect
search.enablein the sidebar - Respect the
tocpage parameter in mobile dropdown - Enhance FlexSearch match highlighting and safe DOM manipulation
- Fix card subtitle positioning
- Handle leading slashes in OG image paths for subpath deployments
- Fix FlexSearch returning fewer than expected result pages
- Change default Umami analytics file to
script.js - Fix RSS author lookup for Hugo v0.156.0+ (
.Site.Params.Author)
Documentation & i18n
- Add Italian localization
- Link KaTeX documentation
- Update details shortcode docs to angle bracket syntax
Contributors
This release was made possible by contributions from 11 new contributors:
- @ghac101 - Umami analytics fix, disable prev/next navigation
- @pmarrapese - Markdown attribute support for headers
- @Bubbler-4 - Details shortcode documentation
- @bloovis - FlexSearch result count fix
- @AntoninPvr - Card subtitle positioning fix
- @illia-v - Mobile TOC and search toggle fixes
- @gallochri - Italian localization
- @MatheusFlausino - LLMs.txt exclusion
- @daniseijo - Last modified author feature
- @confusedkernel - Archives page
- @Fenyutanchan - Hugo v0.156.0 RSS author compatibility fix
Additional thanks to returning contributors @KStocky, @ldez, @kowyo, @torbjornbp, @yuri1969, and @PrintN for their continued contributions.
Full Changelog: https://github.com/imfing/hextra/compare/v0.11.1...v0.12.0
