Introduction
Discover what this Hugo theme is all about.
Getting Started
Initialize your website in a few simple steps
Tool Integration
All about supported 3rd party tools
What's New
What's new in this version
Changelog
The detailed changelog
Discover what this Hugo theme is all about.
Initialize your website in a few simple steps
All about supported 3rd party tools
What's new in this version
The detailed changelog
Here’s how to start your new website. If you’re new to Hugo, we recommend learning more about it in its excellent starter’s guide.
Download and install Hugo 0.126.0 or newer for your operating system following the instructions.
The standard edition of Hugo is sufficient but you can also use the extended edition.
Use Hugo’s new site
command to make a new website
hugo new site my-new-site
Then move into the new directory
cd my-new-site
Run all future commands from this directory.
You can download the theme as a .zip file and unzip it into the themes/hugo-theme-relearn
directory.
Then add this at the top of your hugo.toml
theme = 'hugo-theme-relearn'
theme: hugo-theme-relearn
{
"theme": "hugo-theme-relearn"
}
Install the Relearn theme using Hugo’s module system
hugo mod init example.com
Then add this at the end of your hugo.toml
[module]
[[module.imports]]
path = 'github.com/McShelby/hugo-theme-relearn'
module:
imports:
- path: github.com/McShelby/hugo-theme-relearn
{
"module": {
"imports": [
{
"path": "github.com/McShelby/hugo-theme-relearn"
}
]
}
}
If you’re using Git for your project, you can create a repository now
git init
Add the theme as a Git submodule
git submodule add --depth 1 https://github.com/McShelby/hugo-theme-relearn.git themes/hugo-theme-relearn
Then add this at the top of your hugo.toml
theme = 'hugo-theme-relearn'
theme: hugo-theme-relearn
{
"theme": "hugo-theme-relearn"
}
Start by making a home page
hugo new --kind home _index.md
The new home page file authoring/_index.md
has two parts: the page info (like title
) at the top, called front matter, and the page content below.
Chapters are top-level pages that contain other pages. They have a special layout.
Make your first chapter page
hugo new --kind chapter first-chapter/_index.md
The new file content/first-chapter/_index.md
has a weight
number in the front matter. This sets the chapter’s subtitle and its order in the menu.
Now make content pages inside the chapter. Here are three ways to do this
hugo new first-chapter/first-page/_index.md
hugo new first-chapter/second-page/index.md
hugo new first-chapter/third-page.md
Hugo treats these files differently based on their file names. Learn more in Hugo’s guide.
Feel free to edit these files. Change the title
, add a weight
if you want, and write your content.
Start your new website on your computer with this command
hugo serve
Open http://localhost:1313 in your web browser.
You can keep the server running while you edit. The browser will update automatically when you save changes.
When your site is ready to go live, run this command
hugo
This creates a public
directory with all your website files.
You can upload this directory to any web server, or use one of Hugo’s many other ways to publish.
Your site is now fully functional.
You can continue configuring your site to your needs.
Or just start authoring content and discover what’s possible.
The theme supports the great VSCode Front Matter CMS extension which provides on-premise CMS capabilties to Hugo.
For that, the theme provides a snippets file so you can use shortcodes from inside the Front Matter CMS.
Currently only English and German is supported.
To use them in your Front Matter CMS, put a reference into your frontmatter.json
like this
{
"frontMatter.extends": [
"./vscode-frontmatter/snippets.en.json"
]
}
0.126.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
Breaking This release comes with significant changes in file naming of partials and how the theme works internally. This was done because the theme
What do I gain, you may ask. A significant performance boost during build! Usually, the build time has been cut at least in half for bigger sites. It is now possible to build even larger sites with 5000 or more pages. This was previously almost impossible due to rapidly increasing build time with the more pages you’ve introduced. For even bigger sites, the theme now has configurable performance optimizations - at the price of feature limitations.
If you haven’t done customizations to any partials, you can update right away.
If you have customized your templates, in the best cases, you will get build warnings or even errors. In the worst cases, your build succeeds but the site will not work as intended by you.
Specifically, you will have to adapt your site if you have
header.html
, menu.html
or footer.html
partialslayouts/partials/archetypes
- now becoming page designsBreaking This release changes the way the search index and the dedicated search page are generated. This may require reconfiguration by you to still work as you have intended.
You need to remove the now obsolete search
and searchpage
output format from [outputs.home]
in your hugo.toml
, resulting in something similar to
[outputs]
home = ['html', 'rss', 'print']
outputs:
home:
- html
- rss
- print
{
"outputs": {
"home": [
"html",
"rss",
"print"
]
}
}
After that, your build will succeed but will most likely cause new defaults to be applied. With no further settings, in-page search, search popup and dedicated search page are all active by default. This can be reconfigured.
In addition, you are now able to overwrite the default file name of the search index and the default page name of the dedicated search page by changing searchIndexURL
and searchPageURL
respectively in your hugo.toml
.
See the updated documentation for reference.
Change Once again, the theme changed the font. We switched to the excellent Roboto Flex font.
Care was taken to configure the font to look similar to the previously used Work Sans. Nevertheless, in direct comparison, you will see slight differences in appearance.
This change was necessary as the previously used font had display issues with marked text, contrast, and some other minor stuff. As an aftermath, the number of requests and the download size were decreased when loading a page.
The font was created by Google, is licensed under OFL 1.1 and is delivered from your theme’s installation. As always, no third-party server calls are involved.
If you have changed the font-family
in your installation, you most likely have to adjust the variables --MAIN-font-weight
, --MAIN-BOLD-font-weight
and --MAIN-letter-spacing
.
Additionally, if you have changed the font to a variable font in your installation, you may have to adjust the variable --MAIN-font-variation-settings
. As this only applies to variable fonts, this should rarely be necessary.
Change While switching the font, it was discovered that certain CSS variables were falsely named. You don’t need to change anything in your custom variant stylesheet as the old names will be used as a fallback.
--MAIN-TITLES-TEXT-font
was renamed to --MAIN-TITLES-font
, --MAIN-TITLES-H<n>-color
was renamed to --MAIN-TITLES-H<n>-TEXT-color
.
Change The options and front matter to force loading a math, mermaid or openapi library has been changed.
Previously, you had to set the unintuitive disableMathJax=false
to force load the math library in case of a passthrough configuration. This is replaced by the simpler math=true
or math.force=true
and is now in line with Hugo’s official documentation.
You don’t need to change anything yet but will receive warnings if the old settings are used.
Change The default logo is not contained inside of the theme’s logo partial anymore.
This is to avoid usage of the theme’s branding throughout the web in non-modified installations.
In addition, the default text for the logo partial is now taken from the linkTitle
setting of your hugo.toml
.
New The docs received a much-needed overhaul for all chapters.
Basically, the structure was reorganized, giving each topic its own page while keeping the amount of items for each menu level comprehensible by adding sub-pages.
The docs now clearly differentiate between configuration of your site, all things writing page content and the shortcodes docs that cover both topics, configuration and usage.
To give you a better overview of what’s possible with the theme, we introduced reference pages for all theme configuration options and front matter and mark each occurrence of such on all pages with the badges Option and Front Matter.
Also, a lot of previously undocumented features are now included, namely
notice
box, its margin and border will be removed so only the colored notice border is visible.New It is now possible to have user-defined styles for all shortcodes that accept the style
parameter. See the notice
shortcode for configuration.
New The resources
shortcode has a new parameter expanded
to make the resource list collapsible.
Change The expand
shortcode changed the naming of the open
parameter to expanded
. You don’t need to change anything yet but may get deprecation warnings.
Change If the content for the notice
shortcode is empty, now only the title bar will be displayed. Previously an empty content box was displayed.
New The notice
shortcode has a new parameter expanded
to make the content collapsible.
New If you are running Hugo 0.134.0 or later, the theme now supports Obsidian callouts.
New The theme has updated its Mermaid dependency to 11.1.0. This adds support for packet and architecture diagrams.
Change The heading anchor links are extended in functionality.
If you now click on it, not only is the link copied to the clipboard (previous behavior) but also the heading scrolls to the top of the page.
If you dislike the new behavior, you can deactivate it by setting disableAnchorScrolling=true
in your hugo.toml
. See the docs for further options.
New If you are running Hugo 0.132.0 or later, the theme is now capable to print GitHub alerts.
New To support new severity levels for GitHub alerts, all shortcodes that support severity levels with their style
parameter were expanded with the new severities caution
and important
and the color
parameter was expanded with cyan
and magenta
. Please note, that coloring and icons of severities may defer from the display you see on GitHub.
New To support new severity levels for GitHub alerts, the new severities and their according colors are also available as CSS variables BOX-MAGENTA-color
, BOX-MAGENTA-TEXT-color
, BOX-CAUTION-color
, BOX-CAUTION-TEXT-color
, BOX-CYAN-color
, BOX-CYAN-TEXT-color
, BOX-IMPORTANT-color
, BOX-IMPORTANT-TEXT-color
. You don’t need to change anything in your custom color stylesheet as appropriate default colors will be used.
Change The include
shortcode is now able to resolve links to pages as well as resources or files in the file system (the old behavior).
Change To make the asset buster mechanism more robust, some internally used stylesheets where restructured. This generally should not affect your page in any negative way.
New The openapi
shortcode is now able to resolve links to resources as well as to files in the file system (the old behavior). You can configure to generate warnings or errors during build by setting openapi.errorlevel
to either warning
or error
in your hugo.toml
if a path can not be resolved.
New Shortcodes supporting an errorlevel
configuration can now have overridden values in the front matter section of each individual page.
New The theme now comes with its own overridden version of the relref
shortcode.
While the usage of relref
is obsolete and discouraged by Hugo for a while, existing installations may use it. In configurations using a baseURL
with a subdirectory, and having relativeURLs=false
(the default) Hugo’s standard relref
implementation was failing.
The shortcode is deactivated by default and can be activated by setting
[params]
disableDefaultRelref = true
params:
disableDefaultRelref: true
{
"params": {
"disableDefaultRelref": true
}
}
in your hugo.toml
. Only do this if your site fulfills all of the above assumptions.
Breaking This release requires you to move your self-defined variant (theme-*.css
) and chroma stylesheets (chroma-*.css
) from static/css
to assets/css
.
This was necessary to avoid permission errors on build if running in certain Unix configurations.
In addition it is not allowed anymore to @import
your chroma stylesheet from inside of your variant stylesheet.
Say, your chroma stylesheet is named chroma-monokai.css
, you have to add the following inside your variant stylesheet:
--CODE-theme: monokai;
Breaking The parameter description
in your hugo.toml
will now be ignored.
With the newly introduced unified handling of descriptions throughout the theme, the only place the old parameter would have been used was your home page.
For migration, move the description
parameter of your hugo.toml
into the front matter section of your home page.
Breaking Search support for the json
outputformat deprecated in 5.4.0 was removed.
Change it to search
for the homepage in your hugo.toml
. See the docs for detailed configuration.
Breaking The front matter option menuTitle
deprecated in 5.24.0 was removed in favor for Hugo’s own linkTitle
.
Additionally, if set, linkTitle
will now be used instead of title
to generate the breadcrumb.
Breaking The swagger
shortcode deprecated in 5.13.0 was removed in favor for the openapi
shortcode with the same set of parameter.
Breaking Support for Internet Explorer 11 was finally dropped.
Change With the removal of support for Internet Explorer 11, Font Awesome was upgraded to version 6.5.2.
You may experience slight changes for some icons. In addition you have additional ~1700 icons to chose from.
Change The children
shortcode was fixed to adhere to its documentation, generating the description based on this rule: When no description or summary exists for the page, the first 70 words of the content is taken.
Previously, the summary erroneously was ignored which now can lead to different output if you set description=true
as a parameter.
New The include
shortcode is now able to resolve links to resources as well as to files in the file system (the old behavior). You can configure to generate warnings or errors during build by setting include.errorlevel
to either warning
or error
in your hugo.toml
if a path can not be resolved.
New Math is now usable without enclosing it in a shortcode or Markdown codefence by using Hugo’s passthrough configuration.
New Translation into Romanian.
0.126.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
Change If the theme is configured to generate warnings or errors during build by setting image.errorlevel
to either warning
or error
in your hugo.toml
, it will now also generate output if a link fragment is not found in the target page.
Change The dependency loader was made more versatile.
The configuration in your hugo.toml
does not require the location
parameter anymore. If you still use it, the theme will work as before but will generate a warning. So you don’t need to change anything, yet.
With the new mechanism, your dependency loader now receives an additional location
parameter instead that you can query to inject your dependencies in the desired location.
By that you can now call the dependency mechanism in your own overriden partials by giving it a distinct location
parameter. In addition your injected files can now be spread to multiple locations which wasn’t previously possible.
New Additional styling was added for the native HTML elements <mark>
and <kbd>
. To use them you must allow the usage of HTML in your hugo.toml
. The Markdown documentation was enhanced for this.
New You now can scroll forward and backward through all headings of a page by using ALT π‘ and ALT π‘. This also works for the PRINT
output format.
New The breadcrumbs used in the topbar, search results and the taxonomy term lists are now using the pages front matter linktitle
instead of title
if set.
New The lazy loading of images is now configurable by using the new lazy
image effect. The default value hasn’t changed in comparison to older versions, you don’t need to change anything.
New It is now possible to adjust the max width of the main area, eg. in case you want to use the full page width for your content.
New Images and Markdown codefences are now respecting Hugo’s Markdown attributes.
New The theme has updated its Mermaid dependency to 10.6.0. This adds support for block diagrams.
New This release fixes a long-standing bug where the page wasn’t repositioning correctly when going forward or backward in your browser history.
Change This release deprecates the attachments
shortcode in favor of the new the resources
shortcode.
If you are using Hugo below 0.123.0, you don’t need to change anything as the old shortcode still works (but may generate warnings).
Anyways, users are strongly advised to migrate as the attachments
shortcode will not receive support anymore. Migration instructions are listed on the attachments
shortcode page.
Change If you run Hugo with GitInfo configured, the default page footer now prints out name, email address and date of the last commit. If you want to turn this off you either have to run Hugo without GitInfo (which is the default) or overwrite the content-footer.html
partial.
Change The topbar button received a way to add text next to the icon. For this, the original title
option was renamed to hint
while the new title
option is now displayed next to the icon.
Change The front matter option menuTitle
is now deprecated in favor for Hugo’s own linkTitle
. You don’t need to change anything as the old menuTitle
option is still supported.
Change The light themes have a bit more contrast for content text and headings. Also the syntaxhighlighting was changed to the more colorful MonokaiLight. This brings the syntaxhighlighting in sync with the corresponding dark theme variants, which are using Monokai. If you dislike this, you can create your own color variant file as described here.
New If the theme can not resolve a link to a page or image, you can now generate warnings or errors during build by setting link.errorlevel
or image.errorlevel
to either warning
or error
in your hugo.toml
respectively. By default this condition is silently ignored and the link is written as-is.
Please note that a page link will generate false negatives if uglyURLs=true
and it references an ordinary page before 0.123.0.
Please note that an image link will generate false negatives if the file resides in your static
directory.
New You now can configure additional options for every theme variant in your hugo.toml
. This allows for optional advanced functionality. You don’t need to change anything as the old configuration options will still work (but may generate warnings now).
The advanced functionality allows you to set an explicit name for a theme variant and now allows for multiple auto mode variants that adjust to the light/dark preference of your OS settings.
New New partial for defining the heading. See documentation for further reading.
New Support for Hugo’s built-in figure
shortcode.
New On taxonomy and term pages you can now use prev/next navigation as within the normal page structure.
New In additiion to the existing menu width customization, it is now also possible to set the width of the menu flyout for small screen sizes with the --MENU-WIDTH-S
CSS property.
New Improvements for accessibility when tabbing through the page for images, links and tab handles.
New The editURL
config parameter is now overwritable in your pages front matter. In addition it received more versatility by letting you control where to put the file path into the URL. This is achieved by replacing the variable ${FilePath}
in your URL by the pages file path. You don’t need to change anything in your existing configuration as the old way without the replacement variable still works.
New The themes config and front matter options received a comprehensive documentation update. In addition the theme switched from config.toml
to hugo.toml
.
New Restored compatibility with Hugo versions 0.121.0 or higher for the highlight
shortcode. This does not change the minimum required Hugo version.
New Restored compatibility with Hugo versions 0.123.0 or higher for theme specific output formats and handling of taxonomy and term titles. This does not change the minimum required Hugo version.
Change With 0.120.0 the author settings move into the [params]
array in your hugo.toml
. Because this collides with the previous way, the theme expected author information, it now adheres to Hugo standards and prints out a warning during built if something is wrong.
Change your previous setting from
[params]
author = 'Hugo'
params:
author: Hugo
{
"params": {
"author": "Hugo"
}
}
to
[params]
[params.author]
name = 'Hugo'
params:
author:
name: Hugo
{
"params": {
"author": {
"name": "Hugo"
}
}
}
Change Taxonomy term pages now add the breadcrumb for each listed page. If this gets too crowded for you, you can turn the breadcrumbs off in your hugo.toml
by adding disableTermBreadcrumbs=true
.
New Taxonomy and term pages are now allowed to contain content. This is added inbetween the title and the page list.
New It is now possible to print custom taxonomies anywhere in your page. See the docs.
New It is now possible to adjust the menu width for your whole site. See the docs.
New This release adds social media meta tags for the Open Graph protocol and Twitter Cards to your site. See the docs.
New This release comes with additional sort options for the menu and the children
shortcode. Both will now accept the following values: weight
, title
, linktitle
, modifieddate
, expirydate
, publishdate
, date
, length
or default
(adhering to Hugo’s default sort order).
New The theme now provides a mechanism to load further JavaScript dependencies defined by you only if it is needed. This comes in handy if you want to add own shortcodes that depend on additional JavaScript code to be loaded. See the docs.
New The theme has updated its Mermaid dependency to 10.6.0. This adds support for the xychart type.
New This release adds portable Markdown links.
Previously it was not possible to use pure Markdown links in a configuration independent way to link to pages inside of your project. It always required you to know how your uglyURLs
setting is, wheather you link to a page or page bundle and in case of relative links if your current page is a page or page bundle. (eg. [generator](generator/index.html)
vs. [generator](generator.html)
). This is a hassle as you have to change these links manually once you change your uglyURLs
setting or change the type of a page.
You could work around this by using the relref
shortcode (eg [generator]({{% relref "../generator" %}})
) which works but results in non-portable Markdown.
Now it’s possible to use the same path of a call to relref
in a plain Markdown link (eg [generator](../generator)
). This is independent of any configuration settings or the page types involved in linking. Note, that this requires your links to be given without any extension, so [generator](generator/index.html)
will work as before.
The following types of linking are supported:
link | description |
---|---|
[generator](en/configuration/branding/generator) |
absolute from your project root (multilang) |
[generator](/en/configuration/branding/generator) |
absolute from your project root (multilang) |
[generator](configuration/branding/generator) |
absolute from your current language root |
[generator](/configuration/branding/generator) |
absolute from your current language root |
[generator](./../generator) |
relative from the current page |
[generator](../generator) |
relative from the current page |
Change This release fixes an issue where in unfortunate conditions DOM ids generated by Hugo may collide with DOM ids set by the theme. To avoid this, all theme DOM ids are now prefixed with R-
.
If you haven’t modified anything, everything is fine. Otherwise you have to check your custom CSS rules and JavaScript code.
Change You can now have structural sections in the hierarchical menu without generating a page for it.
This can come in handy, if content for such a section page doesn’t make much sense to you. See the documentation for how to do this.
This feature may require you to make changes to your existing installation if you are already using shortcuts to pages inside of your project with a headless branch parent.
In this case it is advised to remove the title
from the headless branch parent’s front matter, as it will otherwise appear in your breadcrumbs.
New It is now possible to overwrite the setting for collapsibleMenu
of your hugo.toml
inside of a page’s front matter.
New If a Mermaid graph is zoomable a button to reset the view is now added to the upper right corner. The button is only shown once the mouse is moved over the graph.
New It is now possible to remove the root breadcrumb by setting disableRootBreadcrumb=true
in your hugo.toml
.
New The output of the dedicated search page now displays the result’s breadcrumb.
New Table rows now change their background color on every even row.
New Translation into Swahili. This language is not supported for search.
menu-footer.html
partial overridden, you may want to review the styling (eg. margins/paddings) of your partial.New This release comes with an awesome new feature, that allows you to customize your topbar buttons, change behavior, reorder them or define entirely new ones, unique to your installation. See the documentation for further details.
New The theme has updated its Swagger dependency to 5.7.2 for the openapi
shortcode. This brings support for OpenAPI Specification 3.1.
Change The theme has updated its Swagger dependency to 5.4.1 for the openapi
shortcode.
With this comes a change in the light theme variants of Relearn Bright
, Relearn Light
and Zen Light
by switching the syntaxhighlighting inside of openapi to a light scheme. This brings it more in sync with the code style used by the theme variants itself.
Additionally, the syntaxhighlighting inside of openapi for printing was switched to a light scheme for all theme variants.
If you dislike this change, you can revert this in your theme variants CSS by adding
--OPENAPI-CODE-theme: obsidian;
--PRINT-OPENAPI-CODE-theme: obsidian;
Change For consistency reasons, we renamed the CSS variable --MENU-SECTION-HR-color
to --MENU-SECTION-SEPARATOR-color
. You don’t need to change anything in your custom color stylesheet as the old name will be used as a fallback.
New The theme variants Zen Light
and Zen Dark
now add more contrast between menu, topbar and content by adding thin borders.
Those borders are now configurable by using the CSS variables --MAIN-TOPBAR-BORDER-color
, --MENU-BORDER-color
, --MENU-TOPBAR-BORDER-color
, --MENU-TOPBAR-SEPARATOR-color
, --MENU-HEADER-SEPARATOR-color
and --MENU-SECTION-ACTIVE-CATEGORY-BORDER-color
.
For existing variants nothing has changed visually.
New The default values for the image effects are now configurable for your whole site via hugo.toml
or for each page through front matter.
New This release fixes a long-standing bug where Mermaid graphs could not be displayed if they were initially hidden - like in collapsed expand
or inactive tabs
.
New Restored compatibility with Hugo versions lower than 0.111.0 for the highlight
shortcode. This does not change the minimum required Hugo version.
New The highlight
shortcode now accepts the new parameter title
. This displays the code like a single tab. This is also available using Markdown codefences and makes it much easier to write nicer code samples.
New The theme has added two new color variants zen-light
and zen-dark
. Check it out!
New The theme now dispatches the custom event themeVariantLoaded
on the document
when the variant is fully loaded either initially or by switching the variant manually with the variant selector.
New The theme has updated its Mermaid dependency to 10.3.1. This adds support for the sankey diagram type and now comes with full support for YAML inside Mermaid graphs (previously, the theme ignored explicit Mermaid theme settings in YAML).
New Translation into Hungarian.
Change The theme adds additional warnings for deprecated or now unsupported features.
Change There are visual improvements in displaying text links in your content as well as to some other clickable areas in the theme. If you’ve overwritten some theme styles in your own CSS, keep this in mind.
New Restored compatibility with Hugo 0.95.0 or higher. This does not change the minimum required Hugo version.
New The siteparam
shortcode is now capable in displaying nested params as well as supporting text formatting.
Change The default behavior for the copy-to-clipboard feature for code blocks has changed.
The copy-to-clipboard button for code blocks will now only be displayed if the reader hovers the code block.
If you dislike this new behavior you can turn it off and revert to the old behavior by adding [params] disableHoverBlockCopyToClipBoard=true
to your hugo.toml
.
New Restored compatibility with Hugo 0.114.0 or higher. This does not change the minimum required Hugo version.
New The new highlight
shortcode replaces Hugo’s default implementation and is fully compatible. So you don’t need to change anything.
In addition it offers some extensions. Currently only the wrap
extension option is provided to control whether a code block should be wrapped or scrolled if to long to fit.
Change The theme now provides warnings for deprecated or now unsupported features. The warnings include hints how to fix them and an additional link to the documentation.
DEPRECATION
warnings mark features that still work but may be removed in the future.
UNSUPPORTED
warnings mark features that will not work anymore.
Change The 404 error page was revamped. Hopefully you will not see this very often.
New The tabs
shortcode and the tab
shortcode received some love and now align with their style, color, title and icon parameter to the other shortcodes.
The visuals are now slightly different compared to previous versions. Most noteable, if you now display a single code block in a tab, its default styling will adapt to that of a code block but with a tab handle at the top.
Additionally the name
parameter was renamed to title
but you don’t need to change anything yet as the old name will be used as a fallback. Nevertheless you will get deprecation warnings while executing Hugo.
New The theme now optionally supports separate favicons for light & dark mode.
Change Restored compatibility with Hugo 0.112.0 or higher. This does not change the minimum required Hugo version.
The attachments
shortcode has compatibility issues with newer Hugo versions. You must switch to leaf bundles or are locked to Hugo < 0.112.0
for now.
It is planned to refactor the attchments
shortcode in the future. This will make it possible to use the shortcode in branch bundles again but not in simple pages anymore. This will most likely come with a breaking change.
Change The tabs
shortcode has changed behavior if you haven’t set the groupid
parameter.
Formerly all tab views without a groupid
were treated as so they belong to the same group. Now, each tab view is treated as it was given a unique id.
New The already known tabs
has a new friend the tab
shortcode to make it easier to create a tab view in case you only need one single tab. Really handy if you want to flag your code examples with a language identifier.
Additionally for such a use case, the whitespace between a tab outline and the code is removed if only a single code block is contained.
New Besides the tag taxonomy the theme now also provides the category taxonomy out of the box and shows them in the content footer of each page.
New The taxonomy pages received some love in this release, making them better leverage available screen space and adding translation support for the taxonomy names.
Hugo’s default taxonmies tags
and categories
are already contained in the theme’s i18n files. If you have self-defined taxonomies, you can add translations by adding them to your own i18n files. If you don’t provide translations, the singualar and plural forms are taken as configured in your hugo.toml
.
New To give you more flexibility in customizing your article layout a new partial content-header.html
is introduced.
This came out of the requirement to customize the position of article tags, which by default are displayed above the title. A second requirement was to also show additional taxonomies not supported by the theme natively. While Hugo supports tags and categories by default, the theme only displays tags.
So how to adjust the position of tags starting from the theme’s default where tags are only shown above the title?
content-header.html
with an empty file.heading-post.html
and add {{ partial "tags.html" . }}
to it.content-footer.html
and add {{ partial "tags.html" . }}
to it.New The new parameter breadcrumbSeparator
is now available in your hugo.toml
to change the - well - separator of the breadcrumb items. An appropriate default is in place if you do not configure anything.
Change The swagger
shortcode was deprecated in favor for the openapi
shortcode. You don’t need to change anything yet as the old name will be used as a fallback. It is planned to remove the swagger
shortcode in the next major release.
Additionally, the implemantion of this shortcode was switched from RapiDoc to SwaggerUI.
New Support for the great VSCode Front Matter CMS extension which provides on-premise CMS capabilties to Hugo.
The theme provides Front Matter CMS snippets for its shortcodes. Currently only English and German is supported. Put a reference into your frontmatter.json
like this
{
...
"frontMatter.extends": [
"./vscode-frontmatter/snippets.en.json"
]
...
}
New Support for languages that are written right to left (like Arabic) is now complete and extended to the menu, the top navigation bar and print. You can experience this in the pirate translation. This feature is not available in Internet Explorer 11.
New The scrollbars are now colored according to their variant color scheme to better fit into the visuals.
Change The theme removed the popular jQuery library from its distribution.
In case you made changes to the theme that are depending on this library you can place a copy of jQuery into your static/js
directory and load it from your own layouts/partials/custom-header.html
like this:
<script src="{{"js/jquery.min.js"| relURL}}" defer></script>
Change Mermaid diagrams can now be configured for pan and zoom on site-, page-level or individually for each graph.
The default setting of on
, in effect since 1.1.0, changed back to off
as there was interference with scrolling on mobile and big pages.
Change The theme is now capable to visually adapt to your OS’s light/dark mode setting.
This is also the new default setting if you haven’t configured themeVariant
in your hugo.toml
.
Additionally you can configure the variants to be taken for light/dark mode with the new themeVariantAuto
parameter.
This is not supported for Internet Explorer 11, which still displays in the relearn-light
variant.
Change The JavaScript code for handling image lightboxes (provided by Featherlight) was replaced by a CSS-only solution.
This also changed the lightbox effects parameter from featherlight=false
to lightbox=false
. Nevertheless you don’t need to change anything as the old name will be used as a fallback.
Change In the effort to comply with WCAG standards, the implementation of the expand
shortcode was changed. While Internet Explorer 11 has issues in displaying it, the functionality still works.
New Translation into Czech. This language is not supported for search.
New GitHub releases are also now tagged for the main version (eg. 1.2.x
), major version (eg. 1.x
) and the latest (just x
) release making it easier for you to pin the theme to a certain version.
New The attachments
, badge
, button
and notice
shortcodes have a new parameter color
to set arbitrary CSS color values.
Additionally the --ACCENT-color
brand color introduced in version 5.8.0 is now supported with these shortcodes.
Breaking With this version it is now possible to not only have sections on the first menu level but also pages.
It was later discovered, that this causes pages only meant to be displayed in the More
section of the menu and stored directly inside your content
directory to now show up in the menu as well.
To get rid of this undesired behavior you have two choices:
Make the page file a headless branch bundle (contained in its own subdirectory and called _index.md
) and add the following front matter configuration to the file (see exampleSite’s content/showcase/_index.en.md
). This causes its content to not be ontained in the sitemap.
+++
title = 'Showcase'
[_build]
list = 'never'
publishResources = true
render = 'always'
+++
---
_build:
list: never
publishResources: true
render: always
title: Showcase
---
{
"_build": {
"list": "never",
"publishResources": true,
"render": "always"
},
"title": "Showcase"
}
Store the page file for below a parent headless branch bundle and add the following front matter to he parent (see exampleSite’s content/more/_index.en.md
). Don’t give this page a title
as this will cause it to be shown in the breadcrumbs - a thing you most likely don’t want.
+++
[_build]
list = 'never'
publishResources = false
render = 'never'
+++
---
_build:
list: never
publishResources: false
render: never
---
{
"_build": {
"list": "never",
"publishResources": false,
"render": "never"
}
}
In this case, the file itself can be a branch bundle, leaf bundle or simple page (see exampleSite’s content/more/credits.en.md
). This causes its content to be contained in the sitemap.
+++
title = 'Credits'
+++
---
title: Credits
---
{
"title": "Credits"
}
Change The required directory name for the attachments
shortcode was changed for leaf bundles.
Previously, the attachments for leaf bundles in non-multilang setups were required to be in a files
subdirectory. For page bundles and leaf bundles in multilang setups they were always required to be in a _index.<LANGCODE>.files
or index.<LANGCODE>.files
subdirectory accordingly.
This added unnecessary complexity. So attachments for leaf bundles in non-multilang setups can now also reside in a index.files
directory. Although the old files
directory is now deprecated, if both directories are present, only the old files
directory will be used for compatibility.
Change Absolute links prefixed with http://
or https://
are now opened in a separate browser tab.
You can revert back to the old behavior by defining externalLinkTarget="_self"
in the params
section of your hugo.toml
.
New The new badge
shortcode is now available to add highly configurable markers to your content as you can see it on this page.
New The new icon
shortcode simplyfies the usage of icons. This can even be combined with also new badge
shortcode.
New The theme now supports some of GFM (GitHub Flavored Markdown) syntax and Hugo Markdown extensions, namely task lists, defintion lists and footnotes.
New A new color --ACCENT-color
was introduced which is used for highlighting search results on the page. In case you simply don’t care, you don’t need to change anything in your variant stylesheet as the old yellow
color is still used as default.
ko
. Formerly the country code kr
was used instead.New The button
shortcode can now also be used as a real button inside of HTML forms - although this is a pretty rare use case. The documentation was updated accordingly.
New The search now supports the Korean language.
New This release introduces an additional dedicated search page. On this page, displayed search results have more space making it easier scanning through large number of results.
To activate this feature, you need to configure it in your hugo.toml
as a new outputformat searchpage
for the home page. If you don’t configure it, no dedicated search page will be accessible and the theme works as before.
You can access the search page by either clicking on the magnifier glass or pressing enter inside of the search box.
New Keyboard handling for the TOC and search was improved.
Pressing CTRL+ALT+t
now will not only toggle the TOC overlay but also places the focus to the first heading on opening. Subsequently this makes it possible to easily select headings by using the TAB
key.
The search received its own brand new keyboard shortcut CTRL+ALT+f
. This will focus the cursor inside of the search box so you can immediately start your search by typing.
New You are now able to turn off the generation of generator meta tags in your HTML head to hide the used versions of Hugo and this theme.
To configure this in your hugo.toml
make sure to set Hugo’s disableHugoGeneratorInject=true
and also [params] disableGeneratorVersion=true
, otherwise Hugo will generate a meta tag into your home page automagically.
New Creation of your project gets a little bit faster with this release.
This addresses increased build time with the version 5 releases. The theme now heavily caches partial results leading to improved performance. To further increase performance, unnecessary parts of the page are now skipped for creation of the print output (eg. menus, navigation bar, etc.).
Change The way images are processed has changed. Now images are lazy loaded by default which speeds up page load on slow networks and/or big pages and also the print preview.
For that the JavaScript code to handle the lightbox and image effects on the client side was removed in favour for static generation of those effects on the server.
If you have used HTML directly in your Markdown files, this now has the downside that it doesn’t respect the effect query parameter anymore. In this case you have to migrate all your HTML img
URLs manually to the respective HTML attributes.
Old | New |
---|---|
<img src="pic.png?width=20vw&classes=shadow,border"> |
<img src="pic.png" style="width:20vw;" class="shadow border"> |
Change With the proper settings in your hugo.toml
your page is now servable from the local file system using file://
URLs.
Please note that the searchbox will only work for this if you reconfigure your outputformat for the home page in your hugo.toml
from json
to search
. The now deprecated json
outputformat still works as before, so there is no need to reconfigure your installation if it is only served from http://
or https://
.
Change The button
shortcode has a new parameter target
to set the destination frame/window for the URL to open. If not given, it defaults to a new window/tab for external URLs or is not set at all for internal URLs. Previously even internal URLs where opened in a new window/tab.
New The math
shortcode and mermaid
shortcode now also support the align
parameter if Markdown codefences are used.
New Support for languages that are written right to left (like Arabic). This is only implemented for the content area but not the navigation sidebar. This feature is not available in Internet Explorer 11.
New Translation into Finnish (Suomi).
New Image formatting has two new classes to align images to the left
or right
. Additionally, the already existing inline
option is now documented.
New Printing for the swagger
shortcode was optimized to expand sections that are usually closed in interactive mode. This requires print support to be configured.
collapsibleMenu = true
in your hugo.toml
, the menu will be expanded if a search term is found in a collapsed submenu. The menu will return to its initial collapse state once the search term does not match any submenus.
Change Because the print preview URLs were non deterministic for normal pages in comparison to page bundles, this is now changed. Each print preview is now accessible by adding a index.print.html
to the default URL.
You can revert this behavior by overwriting the print
output format setting in your hugo.toml
to:
[outputFormats]
[outputFormats.print]
baseName = 'index'
isHTML = true
mediaType = 'text/html'
name = 'print'
path = '_print'
permalinkable = false
outputFormats:
print:
baseName: index
isHTML: true
mediaType: text/html
name: print
path: _print
permalinkable: false
{
"outputFormats": {
"print": {
"baseName": "index",
"isHTML": true,
"mediaType": "text/html",
"name": "print",
"path": "_print",
"permalinkable": false
}
}
}
Breaking The theme changed how JavaScript and CSS dependencies are loaded to provide a better performance. In case you’ve added own JavaScript code that depends on the themes jQuery implementation, you have to put it into a separate *.js
file (if not already) and add the defer
keyword to the script
element. Eg.
<script defer src="myscript.js"></script>
Change The way archetypes are used to generate output has changed. The new systems allows you, to redefine existing archetypes or even generate your own ones.
Your existing markdown files will still work like before and therefore you don’t need to change anything after the upgrade. Nevertheless, it is recommended to adapt your existing markdown files to the new way as follows:
for your home page, add the front matter parameter archetype = "home"
and remove the leading heading
for all files containing the deprecated front matter parameter chapter = true
, replace it with archetype = "chapter"
and remove the leading headings
Change The front matter options pre
/ post
were renamed to menuPre
/ menuPost
. The old options will still be used if the new options aren’t set. Therefore you don’t need to change anything after the upgrade.
New Adding new partials heading-pre.html
/ heading-post.html
and according front matter options headingPre
/ headingPost
to modify the way your page`s main heading gets styled.
New The new shortcode math
is available to add beautiful math and chemical formulae. See the documentation for available features. This feature will not work with Internet Explorer 11.
0.126.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
Breaking The second parameter for the include
shortcode was switched in meaning and was renamed from showfirstheading
to hidefirstheading
. If you haven’t used this parameter in your shortcode, the default behavior hasn’t changed and you don’t need to change anything.
If you’ve used the second boolean parameter, you have to rename it and invert its value to achieve the same behavior.
Change Previously, if the tabs
shortcode could not find a tab item because, the tabs ended up empty. Now the first tab is selected instead.
Change The landingPageURL
was removed from hugo.toml
. You can safely remove this as well from your configuration as it is not used anymore. The theme will detect the landing page URL automatically and will point to the project’s home page. If you want to support a different link, overwrite the logo.html
partial.
Breaking The custom_css
config parameter was removed from the configuration. If used in an existing installation, it can be achieved by overriding the custom-header.html
template in a much more generic manner.
Breaking Because anchor hover color was not configurable without introducing more complexity to the variant stylesheets, we decided to remove --MAIN-ANCHOR-color
instead. You don’t need to change anything in your custom color stylesheet as the anchors now get their colors from --MAIN-LINK-color
and --MAIN-ANCHOR-HOVER-color
respectively.
New All shortcodes now support named parameter. The positional parameter are still supported but will not be enhanced with new features, so you don’t need to change anything in your installation.
New The button
shortcode received some love and now has a parameter for the color style similar to other shortcodes.
New New colors --PRIMARY-color
and --SECONDARY-color
were added to provide easier modification of your custom style. Shortcodes with a color style can now have primary
or secondary
as additional values.
These two colors are the default for other, more specific color variables. You don’t need to change anything in your existing custom color stylesheets as those variables get reasonable default values.
New Translation into Polish. This language is not supported for search.
New The documentation for all shortcodes were revised.
0.126.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
custom-footer.html
partial to add visual elements below the content of your page, you have to move this content to the new partial content-footer.html
. custom-footer.html
was never meant to contain HTML other than additional styles and JavaScript.New If you prefer expandable/collapsible menu items, you can now set collapsibleMenu=true
in your hugo.toml
. This will add arrows to all menu items that contain sub menus. The menu will expand/collapse without navigation if you click on an arrow.
New You can activate print support in your hugo.toml
to add the capability to print whole chapters or even the complete site.
New Translation into Traditional Chinese.
New Introduction of new CSS variables to set the font. The theme distinguishes between --MAIN-font
for all content text and --CODE-font
for inline or block code. There are additional overrides for all headings. See the theme variant generator of the exampleSite for all available variables.
New The new shortcode swagger
is available to include a UI for REST OpenAPI specifications. See the documentation for available features. This feature will not work with Internet Explorer 11.
Change In this release the Mermaid JavaScript library will only be loaded on demand if the page contains a Mermaid shortcode or is using Markdown codefences. This changes the behavior of disableMermaid
config option as follows: If a Mermaid shortcode or Markdown codefence is found, the option will be ignored and Mermaid will be loaded regardlessly.
The option is still useful in case you are using scripting to set up your graph. In this case no shortcode or Markdown codefence is involved and the library is not loaded by default. In this case you can set disableMermaid=false
in your front matter to force the library to be loaded. See the theme variant generator of the exampleSite for an example.
--MERMAID-theme
to set the variant’s Mermaid theme. This causes the Mermaid theme to switch with the color variant if it defers from the setting of the formerly selected color variant.
attachment
and notice
shortcodes have a new parameter to override the default icon. Allowed values are all Font Awesome 5 Free icons.
Breaking We made changes to the menu footer. If you have your menu-footer.html
partial overridden, you may have to review the styling (eg. margins/paddings) in your partial. For a reference take a look into the menu-footer.html
partial that is coming with the exampleSite.
This change was made to allow your own menu footer to be placed right after the so called prefooter that comes with the theme (containing the language switch and Clear history functionality).
Breaking We have changed the default colors from the original Learn theme (the purple menu header) to the Relearn defaults (the light green menu header) as used in the official documentation.
This change will only affect your installation if you’ve not set the themeVariant
parameter in your hugo.toml
. If you still want to use the Learn color variant, you have to explicitly set themeVariant="learn"
in your hugo.toml
.
Note, that this will also affect your site if viewed with Internet Explorer 11 but in this case it can not be reconfigured as Internet Explorer does not support CSS variables.
Change Due to a bug, that we couldn’t fix in a general manner for color variants, we decided to remove --MENU-SEARCH-BOX-ICONS-color
and introduced --MENU-SEARCH-color
instead. You don’t need to change anything in your custom color stylesheet as the old name will be used as a fallback.
Change For consistency reasons, we renamed --MENU-SEARCH-BOX-color
to --MENU-SEARCH-BORDER-color
. You don’t need to change anything in your custom color stylesheet as the old name will be used as a fallback.
New With this release you are now capable to define your own dark mode variants.
To make this possible, we have introduced a lot more color variables you can use in your color variants. Your old variants will still work and don’t need to be changed as appropriate fallback values are used by the theme. Nevertheless, the new colors allow for much more customization.
To see what’s now possible, see the new variants relearn-dark
and neon
that are coming with this release.
New To make the creation of new variants easier for you, we’ve added a new interactive theme variant generator. This feature will not work with Internet Explorer 11.
New You can now configure multiple color variants in your hugo.toml
. In this case, the first variant is the default chosen on first view and a variant selector will be shown in the menu footer. See the documentation for configuration.
Note, that the new variant selector will not work with Internet Explorer 11 as it does not support CSS variables. Therefore, the variant selector will not be displayed with Internet Explorer 11.
0.126.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
Breaking This release removes the themes implementation of ref
/relref
in favor for Hugo’s standard implementation. This is because of inconsistencies with the themes implementation. In advantage, your project becomes standard compliant and exchanging this theme in your project to some other theme will be effortless.
In a standard compliant form you must not link to the *.md
file but to its logical name. You’ll see, referencing other pages becomes much easier. All three types result in the same reference:
Type | Non-Standard | Standard |
---|---|---|
Branch bundle | configuration/reference/_index.md |
configuration/reference |
Leaf bundle | configuration/reference/index.md |
configuration/reference |
Page | configuration/reference.md |
configuration/reference |
If you’ve linked from a page of one language to a page of another language, conversion is a bit more difficult but Hugo got you covered as well.
Also, the old themes implementation allowed refs to non-existing content. This will cause Hugo’s implementation to show the error below and abort the generation. If your project relies on this old behavior, you can reconfigure the error handling of Hugo’s implementation.
In the best case your usage of the old implementation is already standard compliant and you don’t need to change anything. You’ll notice this very easily once you’ve started hugo server
after an upgrade and no errors are written to the console.
You may see errors on the console after the update in the form:
ERROR 2021/11/19 22:29:10 [en] REF_NOT_FOUND: Ref "configuration/reference/_index.md": "hugo-theme-relearn\exampleSite\content\_index.en.md:19:22": page not found
In this case, you must apply one of two options:
Start up a text editor with regular expression support for search and replace. Search for (ref\s+"[^"]*?)(?:/_index|/index)?(?:\.md)?(#[^"]*?)?"
and replace it by $1$2"
in all *.md
files. This is the recommended choice.
Copy the old implementation files theme/hugo-theme-relearn/layouts/shortcode/ref.html
and theme/hugo-theme-relearn/layouts/shortcode/relref.html
to your own projects layouts/shortcode/ref.html
and layouts/shortcode/relref.html
respectively. This is not recommended as your project will still rely on non-standard behavior afterwards.
Novacento
/Novecento
. If you use it in an overwritten CSS please replace it with Work Sans
. This change was necessary as Novacento did not provide all Latin special characters and lead to mixed styled character text eg. for Czech.New The theme now supports favicons served from static/images/
named as favicon
or logo
in SVG, PNG or ICO format out of the box. An overridden partial layouts/partials/favicon.html
may not be necessary anymore in most cases.
New You can hide the table of contents menu for the whole site by setting the disableToc
option in your hugo.toml
. For an example see the example configuration.
notice
shortcode to set title in box header.
baseURL
in your hugo.toml
. See the documentation for a detailed example.
--CODE-BLOCK-color
and --CODE-BLOCK-BG-color
were added to provide a fallback for Hugo’s syntax highlighting in case no language was given or the language is unsupported. Ideally the colors are set to the same values as the ones from your chosen chroma style.
New Hidden pages are displayed by default in their according tags page. You can now turn off this behavior by setting disableTagHiddenPages=true
in your hugo.toml
.
New You can define the expansion state of your menus for the whole site by setting the alwaysopen
option in your hugo.toml
. Please see further documentation for possible values and default behavior.
New New front matter ordersectionsby
option to change immediate children sorting in menu and children
shortcode. Possible values are title
or weight
.
New Alternate content of a page is now advertised in the HTML meta tags. See Hugo documentation.
disableSeoHiddenPages=true
in your hugo.toml
.
CHANGELOG.md
in the exampleSite), they will now be ignored by the search.New Hidden pages are indexed for the site search by default. You can now turn off this behavior by setting disableSearchHiddenPages=true
in your hugo.toml
.
New If a search term is found in an expand
shortcode, the expand will be opened.
New The menu will scroll the active item into view on load.
Change Syntax highlighting was switched to the built in Hugo mechanism. You may need to configure a new stylesheet or decide to roll you own as described on in the Hugo documentation
Change In the predefined stylesheets there was a typo and --MENU-HOME-LINK-HOVERED-color
must be changed to --MENU-HOME-LINK-HOVER-color
. You don’t need to change anything in your custom color stylesheet as the old name will be used as a fallback.
Change --MENU-HOME-LINK-color
and --MENU-HOME-LINK-HOVER-color
were missing in the documentation. You should add them to your custom stylesheets if you want to override the defaults.
Change Arrow navigation and children
shortcode were ignoring setting for ordersectionsby
. This is now changed and may result in different sorting order of your sub pages.
Change If hidden pages are accessed directly by typing their URL, they will be exposed in the menu.
Change A page without a title
will be treated as hidden=true
.
New You can define the expansion state of your menus in the front matter. Please see further documentation for possible values and default behavior.
New New partials for defining pre/post content for menu items and the content. See documentation for further reading.
New Shortcode children
with new parameter containerstyle
.
New New shortcode include
to include arbitrary file content into a page.
0.126.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
expand
with new parameter to open on page load.
Mermaid
config options can be set in hugo.toml
.
Relearn
and a new logo. For the reasons behind forking the Learn theme, see this comment in the Learn issues.
expanded
parameter for shortcodes #911expanded
parameter #908hidefirstheading=true
#914open
parameter to expanded
#902file://
protocol #806relativeURLs=false
#804
./
#747hugo --minifiy
#724hugo --printI18nWarnings
#670removePathAccents=true
#669context
parameter to page
if called as partial #595No changelog for this release.
theme-auto.css
in distribution #467
prefers-color-scheme
#445page
parameter from docs #336zn
code #287No changelog for this release.
No changelog for this release.
No changelog for this release.
disableInlineCopyToClipBoard=true
#153