Skip to main content

Version 9.2

See the changelog of this version for a detailed list of changes.
  • 0.166.0 Minimum required Hugo version

  • Breaking Change requiring action after upgrade

  • Change Change of behavior, may require action

  • New New behavior, often introducing new options


9.2.0 (2026-10-10)

Heads-up for the upcoming 10.0.0 version, the Decade Release – Clearing Out Ten Years of Baggage

The Relearn theme has come a long way. Its predecessor, the Learn theme, was started more than ten years ago, and Relearn was forked from it over five years ago. Since then, a lot has been added to the theme, and Hugo itself has evolved tremendously.

All that history left its marks, and the source code still carries a lot of it along: options and features that have long been replaced and forgotten but are kept alive for compatibility, and remnants whose only remaining job is to print a warning. In other places, the theme got there first, and Hugo later added similar functionality of its own, often under a different name. Today it is hard to argue why the theme should do things differently from Hugo, and two terms for the same thing (like menuTitle vs. linkTitle, or the expand shortcode vs. details) only cause confusion.

Version 10.0.0 is about cleaning this up. It removes everything that currently triggers a DEPRECATED or UNSUPPORTED message during a build. That covers deprecated features that still work as well as the hints for features that were already dropped.

What you should do now

  • No messages, no work: if your site builds on the latest 9.x release without DEPRECATED, UNSUPPORTED or WARNING messages from the theme, you can update to 10.0.0 without changing anything.
  • Messages? Fix them now: each message names the replacement and links to the release notes describing the migration.
  • Don’t wait: with 10.0.0, these messages are gone. Old usages will simply stop working, either silently or with a build error.

Hugo 0.166.0

  • 0.166.0 This release requires a newer Hugo version.

Change

  • Change Accessibility is now a supported feature of the theme.

    With the new option link.underline=true, links in your content are underlined, so they are told apart from the text around them by more than their color.

    To make accessibility happen, there were numerous changes, affecting all parts of the theme including the DOM.

    As a side effect, the keyboard shortcuts of the theme are now documented as well.

  • Change The elements of your content, like tables, callouts, tabs, code blocks, blockquotes, Mermaid diagrams and images, now have rounded corners.

    For images, this is the new image effect rounded, which is enabled by default. If you want to restore the previous look of your images, set imageEffects.rounded=false in your hugo.toml.

  • Change Markdown tables can now merge cells, using the syntax of Markdown Preview Enhanced. A cell containing only > merges into the cell to its right, a cell containing only ^ into the cell above.

    If one of your tables already has such a cell and should show the character itself, escape it with two backslashes, like \\>.

  • Change The new pages shortcode lists pages of your site. Besides the layouts known from the now deprecated children shortcode, it can list descendants, siblings or ancestors, filter them and group and order them by any field or front matter parameter of a page.

    The children shortcode still works but issues a deprecation warning for each use, naming the pages call that replaces it. See the migration instructions.

    With type=group, the children shortcode no longer shows a multi-column layout. If you want to restore the previous behavior, replace it with the pages shortcode and columns=3.

  • Change The new callout shortcode replaces the now deprecated notice shortcode, matching the name of the Markdown callouts it shares its boxes with. The parameters are unchanged.

    The notice shortcode still works but issues a deprecation warning for each use. Rename your calls to callout. See the migration instructions.

  • Change Hugo’s built-in details shortcode replaces the now deprecated expand shortcode, so your content stays portable to other themes.

    The expand shortcode still works but issues a deprecation warning for each use. The parameters of the details shortcode are named differently, so a call can not just be renamed. See the migration instructions.

    If you already use the details shortcode, it now behaves like the one built into Hugo. Its content is rendered as Markdown if called with {{< details >}}, and the title parameter is honored. If your content is HTML or contains other shortcodes, set the new raw=true parameter to have it written as it is.

  • Change The math shortcode now renders your formulae using Hugo’s built-in KaTeX while your site is built, instead of the MathJax library in the browser.

    The theme finds your formulae by the delimiters of Hugo’s Passthrough configuration. If your site doesn’t have it yet, add it, otherwise formulae marked by these delimiters are not rendered. With the codefence, shortcode and partial syntax, content without delimiters is rendered as one formula regardless.

    By default, formulae are written as MathML and displayed by the browser. If you prefer the look of KaTeX, which is the same in every browser, set math.output='htmlAndMathml'.

    The options mathJaxInitialize and customMathJaxURL are gone. Instead, you can set any KaTeX option in math. If you defined your own macros, move them to math.macros.

    KaTeX doesn’t know every command of MathJax. A formula it can not render is written as its source and reported as a warning in your build.

  • Change The front matter params.pages replaces params.children and is now honored on every page, not only on taxonomy and term pages. Together with Hugo’s cascade, you can give all listings of a subtree the same look.

    The former params.children is still honored as long as the children shortcode exists, but using it now prints a warning.

  • Change How the logo and title are arranged is now set with the new logo.layout option.

    The logo.direction option is deprecated. It still works, but the theme warns you if you use it. Replace direction='row' by layout='sidebar-row' and direction='column' by layout='sidebar-column'.

  • Change The elements of the topbar, like its buttons, are now configured with the topbarstart, topbarmiddle, topbarend and topbarmore options, the same way as the sidebar menus. The breadcrumb is now an element of the new middle area. You can set them in your hugo.toml or in the front matter of your pages.

    Redefining an area by a template in layouts/partials/topbar/area and calling the theme’s templates in layouts/partials/topbar/button is deprecated. Such an area template still defines its area, taking precedence over the options, and the button templates can still be called, but the theme warns you if you use them. The elements now live in layouts/partials/topbar/element. See the migration instructions.

  • Change Versioning now builds on Hugo’s versions. All versions of your site are generated in one build of one project, and the version switcher links directly to the same page in the other versions.

    Links can point to a page in another version of your site with the new version query parameter, like /my-page?version=v1.0.0.

    The options versions, version and versionIndexURL are deprecated. They still work as long as you have not configured Hugo’s versions, but the theme warns you if you use them. See the migration instructions.

  • Change Links into another language written with a language prefix like /pir/my-page are deprecated, and with them the option enableLegacyLanguageLinks. They still work if the option is set, but the theme warns you for each such link. Use the lang query parameter instead, like /my-page?lang=pir.

  • Change The front matter pre and post, renamed in 5.0.0, now issue a deprecation warning. Use menuPre and menuPost instead.

  • Change The options customMermaidURL and customOpenapiURL are deprecated. They still work, but the theme warns you if you use them.

    To use a different version of a library, store it in the assets directory of your site, where it replaces the shipped version. See the documentation of the mermaid and openapi shortcodes.

  • Change The search with the Lunr engine now only looks for similarly written words if a word of your search term isn’t found as written. Previously, such words were always included and could bury the hits you were asking for.

New

  • New The new color variants contrast-light and contrast-dark have colors chosen for high contrast.

  • New A color variant can now be selected by a link with the new variant query parameter, like /my-page?variant=relearn-dark.

  • New Markdown blockquotes can name the author and the source of the quotation with the new author, source and href Markdown attributes.

  • New The callout shortcode has a new hint parameter to show a tooltip for the title of the box.

  • New The tab shortcode has a new hint parameter to show a tooltip for a tab, which also names a tab that shows nothing but an icon.

  • New The button shortcode and topbar buttons have a new istoggle parameter for buttons that show and hide something, telling assistive technology whether it is shown.

  • New The cards shortcode has a new columns parameter to set the number of columns in full width mode.

  • New The resources shortcode has a new pageref parameter to list the resources of another page bundle.

  • New The openapi shortcode has a new lang parameter to set the language used for the reading direction of the Swagger UI and for the texts the theme adds to it. These texts are now translated.

  • New The mermaid shortcode’s graph can now be focused, panned and zoomed with the keyboard.

    They now contain a new button to show it in a lightbox, where it is panned and zoomed the same way as on the page itself. Like an enlarged image, the enlarged graph has its own URL.

  • New The results of the dedicated search page can now be printed, if your home page has print support activated. The new search.page.outputs option lets you decide this independently of your home page.

  • New An entry of a Hugo menu can now be continued by the tree of the page it links to by setting params.type='page'. For a taxonomy page, this shows all of its terms without listing them in your menu definition.

  • New The theme writes no inline JavaScript anymore, so your site can be served with a strict Content Security Policy. On request, it also adds subresource integrity hashes to its scripts and stylesheets. The button and card shortcodes and topbar buttons have a new action parameter to run your own code without inline JavaScript.

  • New The theme now ships a machine-readable SBOM at sbom.cdx.json, listing every third-party resource it can publish with your site, each with a license, a digest of the files the theme ships and - where upstream publishes them - a version and a package URL.