What's New

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


Version 9

9.2.0 (XXXX-XX-XX)

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: after 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 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 by the pages shortcode with 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 their delimited formulae are not rendered. Content without delimiters is rendered as one formula regardless for codefence, shortcode and partial syntax.

    By default, formulae are written as MathML and displayed by the browser. If you prefer the look of KaTeX 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 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 listings of taxonomy and term pages are now configured by params.pages in their front matter, using the parameters of the pages shortcode. The former params.children is still honored as long as the children shortcode exists.

  • Change The front matter params.pages 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.

  • 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.

New

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

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

  • 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 theme writes no inline JavaScript anymore, so your site can be served with a strict Content Security Policy. On request, it also adds a subresource integrity 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.


9.1.0 (2026-09-13)

Hugo 0.165.0

  • 0.165.0 This release requires a newer Hugo version.

Change

  • Change Assets are now busted by their content instead of by the time of your build, so a visitor only refetches what actually changed.

    Formerly every build appended a new id to each asset’s URL, emptying a visitor’s cache on each deployment even when no asset was different. If you referenced assets from your own partials, assetbusting.gotmpl is replaced by asset.gotmpl, which takes a resource and returns it ready to be linked. It is still honored but now issues a deprecation warning and will be removed with a future update of the theme.

    ​
    {{ with resources.Get "/css/mine.css" }}
      {{ with partial "asset.gotmpl" . }}
    <link href="{{ .RelPermalink }}" rel="stylesheet">
      {{ end }}
    {{ end }}

    Below static this only concerns css/custom.css, js/custom.js and the favicon and logo images; everything else there is published as before. Those are published twice, once untouched and once processed - move them to assets to avoid the superfluous copy.

    As a busted name changes with its content, a build no longer overwrites the file its predecessor wrote and both remain. Purge your output directory, e.g. by building with Hugo’s --cleanDestinationDir, or it accumulates every version you ever built - which weighs most if you commit what you build, as publishing to a GitHub Pages branch does.

  • Change The Perfect Scrollbar library is no longer shipped with the theme. All scrollbars are the ones of your browser now, styled by the theme.

    The scrollbars colors come from new theme variant variables, four for each of the three areas, the main content, the menu and the topbar flyouts. MAIN-SCROLLBAR-THUMB-color, MENU-SCROLLBAR-THUMB-color and TOPBAR-SCROLLBAR-THUMB-color color the moving thumb, MAIN-SCROLLBAR-TRACK-color, MENU-SCROLLBAR-TRACK-color and TOPBAR-SCROLLBAR-TRACK-color the track it moves in. Each of them has a -HOVER counterpart - like MAIN-SCROLLBAR-THUMB-HOVER-color or MENU-SCROLLBAR-TRACK-HOVER-color - for the respective hovered area.

    How many of those twelve colors you see an effect from depends on the scrollbar model your browser implements, so don’t expect all of them to show everywhere. Where the theme draws the menus scrollbar itself, all four of its colors apply and the thumb reacts to being hovered on its own. A browser that offers only the standard styling has no state for the thumb, so there the -HOVER colors are taken while the surrounding area is hovered instead. And where a browser draws an overlay scrollbar for the content or the topbar flyouts, it keeps its own and the four colors of that area go unused.

  • Change The theme variant configuration has a new hidden parameter.

    If set to true, the variant will not be shown in the variant switcher but is still usable, e.g. as a sub-variant of an auto mode variant.

  • Change The title above a page sidebar menu is now taken from the root page’s linkTitle front matter.

    Formerly this was documented to use the menuTitle front matter, although that was already removed in 6.0.0 in favor of Hugo’s own linkTitle. It is still honored if no linkTitle is set but now issues a deprecation warning and will be removed with a future update of the theme.

  • Change Images now carry the dimensions of their resource, so a browser can reserve the space they will take before they have arrived.

    This avoids page reflows as each image loads and affects images that resolve to a resource Hugo can measure: a page resource or a file in your assets directory, in one of the common raster formats. An SVG, a remote address or a path in your static directory has no dimensions to give and is unchanged.

  • Change The Lunr Languages where updated to 1.21.0.

    Searching with the Lunr adapter now finds terms that consist of digits only, like part or standard numbers.

New

  • New The editURL option has a new macro ${BaseDir}, containing the directory ${FilePath} is resolved against.

    Joined, the two are the location of the displayed page on your disk during build, which lets the edit button open your local editor instead of a web service.

    ​
    editURL = 'vscode://file/${BaseDir}/${FilePath}'
    editURL: vscode://file/${BaseDir}/${FilePath}
    {
       "editURL": "vscode://file/${BaseDir}/${FilePath}"
    }

    The macro is written the way a URL writes a path - with forward slashes and without a leading slash - so the same setting works on Windows and on Unix-like systems.

  • New The card shortcode has a new imagealt parameter, giving the card’s image a text alternative.

  • New The theme has updated its Mermaid dependency to 11.17.2. This adds support for swimlanes, Venn, Ishikawa, Wardley, Cynefin and TreeView.

  • New The translation for Portuguese was divided into European Portuguese and Brazilian Portuguese.

  • New The search now supports the Polish language.


9.0.0 (2026-01-01)

Hugo

  • Hugo When the theme introduced compatibility with Hugo 0.146.7 it had to remove a performance optimization due to a limitation in Hugo. This was later fixed in Hugo 0.149.0.

    This release reintroduces the performance optimization and will cause your page build to fail with the above mentioned Hugo versions. You either need to upgrade or downgrade Hugo to an unaffected version.

Breaking

  • Breaking The children shortcode has a new layout resembling the taxonomy and term pages by setting type=group.

    Sadly, introducing usage of the shortcode in the taxonomy and term pages (see below) caused necessary breaking changes

    • the shortcode now requires enabling block attributes in your hugo.toml by setting markup.goldmark.parser.attribute.block=true
    • the call syntax for type=card now is {{< children >}} instead of {{% children %}} if goldmark.unsafe=false is configured in your hugo.toml (which is the default)

    In addition the shortcode learned some new parameter for displaying breadcrumbs and setting a heading depth.

Change

  • Change This release comes with a new way to configure your logo image and title in the menu sidebar.

    With the new system you can

    • rely on auto detection for an image
    • remove the image completely
    • override the image for each variant
    • set color, sizes and fonts for title and image
    • let the image and title lay out vertically or horizontally
    • override the complete layout with your own partial (that’s the old way and still works)

    Nevertheless, this required massive changes to the CSS and most likely your logo will require tweaking of the CSS styles after an update.

    The easiest way to fix this is to remove a overridden layouts/partials/logo.html template in your installation and rely on the new configuration.

  • Change Font Awesome was updated to version 7.1.0 which results in slightly different icons.

  • Change The search results of the search box are now colored in the same way as the search results on the dedicated search page using color styles of the content area.

  • Change The expand shortcode has changed its default text of Expand me... to Details to be in sync with Hugo’s built-in details shortcode and the details HTML element.

New

  • New The taxonomy and term pages are now internally using the children shortcode. This makes it possible for you to set parameter of the children shortcode in your taxonomy/term pages front matter to change the layout.

    By that you can - for example - display the sub pages in a card layout. See the categories taxonomy for an example.

  • New The themes dark-mode support for the openapi shortcode was changed to the built-in implementation of the used Swagger library.


Older Versions