Skip to content

v0.13.0

Latest

Choose a tag to compare

@imfing imfing released this 29 Sep 21:10
adf732f

Hextra v0.13.0 brings a brand-new search experience that works smoothly on both mobile and desktop, an image gallery shortcode with a lightbox, foldable alerts, remote icon packs, and better Jupyter notebook rendering, plus a round of search improvements and bug fixes.

For the full release notes and upgrade guide, please visit:
https://imfing.github.io/hextra/blog/v0.13/

New Features

  • New Search Experience: search is now a command palette dialog that works smoothly on both mobile and desktop. Open it with 鈱楰 / Ctrl+K or / on desktop, or tap the search icon on mobile. Results show breadcrumbs, and the whole dialog works from the keyboard.

  • Gallery Shortcode: image galleries with a PhotoSwipe lightbox and grid, carousel, and mosaic layouts
  • Foldable Alerts: + makes an alert foldable and expanded by default, - starts it collapsed, with an optional custom title (> [!TIP]- Title), following Obsidian callout syntax
  • Remote Icon Packs: use Lucide, Tabler Icons, and Simple Icons with a provider prefix, e.g. {{< icon "lucide:rocket" >}}, anywhere Hextra accepts an icon name
  • Improved Jupyter Rendering: many more output types (error tracebacks, stderr, SVG, Markdown, LaTeX, JSON, raw cells, attachments), plus In [N]:/Out[N]: prompts via prompts=true
  • Custom Page Sections: add content before and after each page and its body with the page-begin, content-begin, content-end, and page-end partials
  • Search Improvements: cleaner results without stray HTML tags, correct links to headings with inline markup, and a fingerprinted search index in production

Search CSS Changes

The inline search box has been replaced by a dialog, so the hextra-search-wrapper class no longer exists. If you've styled the search UI with custom CSS, target the new hextra-search-trigger and hextra-search-dialog classes instead.

What's Changed

  • chore: update Hugo language config keys by @imfing in #993
  • feat: support remote icon packs by @imfing in #995
  • feat: add gallery shortcode with PhotoSwipe lightbox by @imfing in #996
  • feat: improve Jupyter notebook shortcode rendering by @imfing in #1001
  • feat: add foldable alert support by @imfing in #1002
  • fix: resolve relative markdown links in render hook by @imfing in #998
  • feat(search): replace inline search with command palette dialog by @imfing in #1003
  • feat: add custom page section partials by @imfing in #1004
  • fix(search): fingerprint search data in production by @imfing in #1014
  • fix: support asciidoctor page headings by @imfing in #1005
  • chore(deps): bump postcss from 8.5.14 to 8.5.25 by @dependabot[bot] in #1018
  • fix(search): handle inline markup in heading fragments by @imfing in #1015
  • feat(search): Drop HTML tags from search result by @bombsimon in #1020
  • docs(showcase): add Roled documentation by @muhammadkholidb in #1031
  • chore(deps): bump nanoid to 3.3.19 by @imfing in #1033
  • fix(katex): select compatible CSS for Hugo renderer by @imfing in #1029
  • fix(mermaid): correct diagram scaling with reduced motion by @yuri1969 in #1030
  • fix(mermaid): render diagrams lazily when revealed in hidden containers by @imfing in #1034
  • fix(sidebar): fall back to page tree in mobile menu without page-backed entries by @imfing in #1035
  • fix: close gallery shortcode comments correctly by @avighnac in #1041
  • chore: update link to use safeURL function by @farmacia-cambie in #1037
  • fix: missing spaces between attributes, and unclosed hero tags when nested by @hoshsadiq in #1039
  • test: fix render-link expectation after attribute spacing fix by @imfing in #1042

New Contributors

Full Changelog: v0.12.3...v0.13.0