Cap'n Hugo Relearrrn Theme

Arrr! Pirrrates

Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like Merrrmaids, do'n math or chemistrrry and stuff.

Cap'n Hugo Relearrrn Theme

A theme fer Cap'n Hugo designed fer documentat'n.

★ What’s new 'n th' latest release ★

Image o' th' Relearrrn theme 'n light an' dark mode on phone, tablet an' desktop Image o' th' Relearrrn theme 'n light an' dark mode on phone, tablet an' desktop

Motivat'n

Th' Relearrrn theme be a fork o' th' great Learrrn theme wit' th' aim o' fix'n long outstand'n bugs an' adapt'n t' latest Cap'n Hugo features. As far as poss'ble this theme tries t' be a drop-in replacement fer th' Learrrn theme.

Features

Installat'n & Usage

For a detailed descript'n o' th' theme’s capabilities visit th' official documentat'n.

Changelog

See th' What’s New plank fer release highlights or th' detailed change history fer a complete list o' changes.

Contribut'ns

Ye be most welcome t' contribute bugfixes or new features. Check th' contribut'n guidelines first before start'n.

License

Th' Relearrrn theme be licensed under th' MIT License.

Credits

This theme would not be poss'ble without th' work o' many others.

Subsct'ns o' Cap'n Hugo Relearrrn Theme

T' chapterrr 1

Basics

Discover what this Cap'n Hugo theme be all about an' th' core-concepts behind it.

Subsct'ns o' Basics

What's New

Arrr! Pirrrates

Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like Merrrmaids, do'n math or chemistrrry and stuff.

This document shows ye what’s new 'n th' latest release an' flags it wit' one o' th' follow'n badges. For a detailed list o' changes, see th' history plank.

  • 0.121.0 Th' minimum required Cap'n Hugo version.

  • Break'n A change that requires act'n by ye after upgrad'n t' assure th' ship be still functional.

  • Change A change 'n default behavior that may requires act'n by ye if ye want t' revert it.

  • New Marks new behavior ye might find interest'n or comes configur'ble.


6.0.0 (2024-04-27)

  • Break'n This release requires ye t' move yer self-defined variant (theme-*.css) an' chroma stylesheets (chroma-*.css) from static/css t' assets/css.

    This was necessary t' avoid permission errors on build if runn'n 'n certain Unix configurat'ns.

    In addit'n it be not allowed anymore t' @import yer chroma stylesheet from inside o' yer variant stylesheet.

    Say, yer chroma stylesheet be named chroma-monokai.css, ye have t' add th' follow'n inside yer variant stylesheet:

    --CODE-theme: monokai;
  • Break'n Th' parameter descript'n 'n yer hugo.toml will now be ignored.

    Wit' th' newly introduced unified handl'n o' descript'ns throughout th' theme, th' only place th' old parameter would have been used was yer home plank.

    For migrat'n, move th' descript'n parameter o' yer hugo.toml into th' frontmatter section o' yer home plank.

  • Break'n Search support fer th' json outputformat deprecated 'n 5.4.0 was removed.

    Change it t' search fer th' homepage 'n yer hugo.toml. See th' docs fer detailed configurat'n.

  • Break'n Th' frontmatter opt'n menuTitle deprecated 'n 5.24.0 was removed 'n favor fer Hugo’s own linkTitle.

    Additionally, if set, linkTitle will now be used instead o' title t' generate th' breadcrumb.

  • Break'n Th' swagger shortcode deprecated 'n 5.13.0 was removed 'n favor fer th' openapi shortcode wit' th' same set o' parameter.

  • Break'n Support fer Internet Explorer 11 was finally dropped.

  • Change Wit' th' removal o' support fer Internet Explorer 11, Font Awesome was upgraded t' version 6.5.2.

    Ye may experience slight changes fer some ay'cons. In addit'n ye have additional ~1700 ay'cons t' chose from.

  • Change Th' children shortcode was fixed t' adhere t' its documentat'n, generat'n th' descript'n based on this rule: When no descript'n or summary exists fer th' plank, th' first 70 words o' th' rrrambl'n be taken.

    Previously, th' summary erroneously was ignored which now can lead t' different output if ye set description=true as a parameter.

  • New Th' include shortcode be now able t' resolve links t' resources as well as t' files 'n th' file system (the old behavior). Ye can configure t' generate warnings or errors dur'n build by sett'n include.errorlevel t' either warning or error 'n yer hugo.toml if a path can not be resolved.

  • New Math be now us'ble without enclos'n it 'n a shortcode or codefence by us'n Hugo’s passthrough configurat'n.

  • New Translat'n into Romanian.


5.27.0 (2024-04-07)

  • 0.121.0 This release requires a newer Cap'n Hugo version.

  • Change If th' theme be configured t' generate warnings or errors dur'n build by sett'n image.errorlevel t' either warning or error 'n yer hugo.toml, it will now also generate output if a link fragment be not found 'n th' target plank.

  • Change Th' dependency loader was made more versatile.

    Th' configurat'n 'n yer hugo.toml does not require th' locat'n parameter anymore. If ye still use it, th' theme will work as before but will generate a warning. So ye don’t need t' change anyth'n, yet.

    Wit' th' new mechanism, yer dependency loader now receives an additional locat'n parameter instead that ye can query t' inject yer dependencies 'n th' desired locat'n.

    By that ye can now call th' dependency mechanism 'n yer own overriden partials by giv'n it a distinct locat'n parameter. In addit'n yer injected files can now be spread t' multiple locat'ns which wasn’t previously poss'ble.

  • New Additional styl'n was added fer th' native HTML elements <mark> an' <kbd>. T' use them ye must allow th' usage o' HTML 'n yer hugo.toml. Th' Marrrkdown documentat'n was enhanced fer this.

  • New Ye now can scroll forward an' backward through all head'ns o' a plank by us'n ALT 🡑 an' ALT 🡓. This also works fer th' PRINT output format.

  • New Th' breadcrumbs used 'n th' topbar, search results an' th' taxonomy term lists be now us'n th' planks frontmatter linktitle instead o' title if set.


5.26.0 (2024-03-18)

  • New Th' lazy load'n o' images be now configur'ble by us'n th' new lazy image effect. Th' default value hasn’t changed 'n comparison t' older versions, ye don’t need t' change anyth'n.

  • New It be now poss'ble t' adjust th' max width o' th' main area, eg. 'n case ye want t' use th' full plank width fer yer rrrambl'n.

  • New Images an' Codefences be now respect'n Hugo’s Marrrkdown attributes.

  • New Th' theme has updated its Merrrmaid dependency t' 10.6.0. This adds support fer block diagrams.

  • New This release fixes a long outstand'n bug whar' th' plank wasn’t reposition'n correctly when go'n forward or backward 'n yer browser history.


5.25.0 (2024-02-29)

  • Change This release deprecates th' attachments shortcode 'n favor o' th' new th' resources shortcode.

    If ye be us'n Hugo below 0.123.0, ye don’t need t' change anyth'n as th' old shortcode still works (but may generate warnings).

    Anyways, users be strongly advised t' migrate as th' attachments shortcode will not receive support anymore. Migrat'n instruct'ns be listed on th' attachments shortcode plank.

  • Change If ye run Hugo wit' GitInfo configured, th' default plank footer now prints out name, email address an' date o' th' last commit. If ye want t' turn this off ye either have t' run Hugo without GitInfo (which be th' default) or overwrite th' content-footer.html partial.

5.24.0 (2024-02-28)

  • 0.112.4 This release requires a newer Cap'n Hugo version.

  • Change Th' topbar button received a way t' add text next t' th' ay'con. For this, th' original title opt'n was renamed t' hint while th' new title opt'n be now displayed next t' th' ay'con.

  • Change Th' frontmatter opt'n menuTitle be now deprecated 'n favor fer Hugo’s own linkTitle. Ye don’t need t' change anyth'n as th' old menuTitle opt'n be still supported.

  • Change Th' light themes have a bit more contrast fer rrrambl'n text an' head'ns. Also th' syntaxhighlight'n was changed t' th' more colorful MonokaiLight. This br'ns th' syntaxhighlight'n 'n sync wit' th' correspond'n dark theme variants, which be us'n Monokai. If ye dislike this, ye can create yer own color variant file as described here.

  • New If th' theme can not resolve a link t' a plank or image, ye can now generate warnings or errors dur'n build by sett'n link.errorlevel or image.errorlevel t' either warning or error 'n yer hugo.toml respectively. By default this condit'n be silently ignored an' th' link be written as-is.

    Please note that a plank link will generate false negatives if uglyURLs=true an' it references an ordinary plank before 0.123.0.

    Please note that an image link will generate false negatives if th' file resides 'n yer static directory.

  • New Ye now can configure additional opt'ns fer every theme variant 'n yer hugo.toml. This allows fer optional advanced functionality. Ye don’t need t' change anyth'n as th' old configurat'n opt'ns will still work (but may generate warnings now).

    Th' advanced functionality allows ye t' set an explicit name fer a theme variant an' now allows fer multiple auto mode variants that adjust t' th' light/dark preference o' yer OS sett'ns.

  • New New partial fer defin'n th' head'n. See documentat'n fer further read'n.

  • New Support fer Hugo’s built-in figure shortcode.

  • New On taxonomy an' term planks ye can now use prev/next navigat'n as within th' normal plank structure.

  • New In additiion t' th' exist'n menu width customizat'n, it be now also poss'ble t' set th' width o' th' menu flyout fer small screen sizes wit' th' --MENU-WIDTH-S CSS property.

  • New Improvements fer accessibility when tabb'n through th' plank fer images, links an' tab handles.

  • New Th' editURL config parameter be now overwrit'ble 'n yer planks frontmatter. In addit'n it received more versatility by lett'n ye control whar' t' put th' file path into th' URL. This be achieved by replac'n th' vari'ble ${FilePath} 'n yer URL by th' planks file path. Ye don’t need t' change anyth'n 'n yer exist'n configurat'n as th' old way without th' replacement vari'ble still works.

  • New Th' themes config an' frontmatter opt'ns received a comprehensive documentat'n update. In addit'n th' theme switched from config.toml t' hugo.toml.

  • New Restored compatibility wit' Cap'n Hugo versions 0.121.0 or higher fer th' highlight shortcode. This does not change th' minimum required Cap'n Hugo version.

  • New Restored compatibility wit' Cap'n Hugo versions 0.123.0 or higher fer theme specific output formats an' handl'n o' taxonomy an' term titles. This does not change th' minimum required Cap'n Hugo version.


5.23.0 (2023-11-03)

  • Change Wit' 0.120.0 th' author sett'ns move into th' [params] array 'n yer hugo.toml. Because this collides wit' th' previous way, th' theme expected author informat'n, it now adheres t' Cap'n Hugo standards an' prints out a warning dur'n built if someth'n be wrong.

    Change yer previous sett'n from

    hugo.
    [params]
      author = 'Hugo'
    params:
      author: Cap'n Hugo
    {
       "params": {
          "author": "Hugo"
       }
    }

    t'

    hugo.
    [params]
      [params.author]
        name = 'Hugo'
    params:
      author:
        name: Cap'n Hugo
    {
       "params": {
          "author": {
             "name": "Hugo"
          }
       }
    }
  • Change Taxonomy term planks now add th' breadcrumb fer each listed plank. If this gets too crowded fer ye, ye can turn th' breadcrumbs off 'n yer hugo.toml by add'n disableTermBreadcrumbs=true.

  • New Taxonomy an' term planks be now allowed t' contain rrrambl'n. This be added inbetween th' title an' th' plank list.

  • New It be now poss'ble t' print custom taxonomies anywhere 'n yer plank. See th' docs.

  • New It be now poss'ble t' adjust th' menu width fer yer whole ship. See th' docs.

  • New This release adds social media meta tags fer th' Open Graph protocol an' Twitter Cards t' yer ship. See th' docs.

  • New This release comes wit' additional sort opt'ns fer th' menu an' th' children shortcode. Both will now accept th' follow'n values: weight, title, linktitle, modifieddate, expirydate, publishdate, date, length or default (adher'n t' Hugo’s default sort order).

  • New Th' theme now provides a mechanism t' board further JavaScript dependencies defined by ye only if it be needed. This comes 'n handy if ye want t' add own shorrrtcodes that depend on additional JavaScript code t' be boarded. See th' docs.

  • New Th' theme has updated its Merrrmaid dependency t' 10.6.0. This adds support fer th' xychart type.

  • New This release adds port'ble Marrrkdown links.

    Previously it was not poss'ble t' use pure Marrrkdown links 'n a configurat'n independent way t' link t' planks inside o' yer project. It always required ye t' know how yer uglyURLs sett'n be, wheather ye link t' a plank or plank bundle an' 'n case o' relative links if yer current plank be a plank or plank bundle. (eg. [generator](generator/index.html) vs. [generator](generator.html)). This be a hassle as ye have t' change these links manually once ye change yer uglyURLs sett'n or change th' type o' a plank.

    Ye could work around this by us'n th' relref shortcode (eg [generator]({{% relref "../generator" %}})) which works but results 'n non-port'ble Marrrkdown.

    Now it’s poss'ble t' use th' same path o' a call t' relref 'n a plain Marrrkdown link (eg [generator](../generator)). This be independent o' any configurat'n sett'ns or th' plank types involved 'n link'n. Avast, that this requires yer links t' be given without any extension, so [generator](generator/index.html) will work as before.

    Th' follow'n types o' link'n be supported:

    link descript'n
    [generator](en/basics/generator) absolute from yer project root (multilang)
    [generator](/en/basics/generator) absolute from yer project root (multilang)
    [generator](basics/generator) absolute from yer current language root
    [generator](/basics/generator) absolute from yer current language root
    [generator](./../generator) relative from th' current plank
    [generator](../generator) relative from th' current plank

5.22.0 (2023-10-02)

  • Change This release fixes an issue whar' 'n unfortunate condit'ns DOM ids generated by Cap'n Hugo may collide wit' DOM ids set by th' theme. T' avoid this, all theme DOM ids be now prefixed wit' R-.

    If ye haven’t modified anyth'n, everyth'n be fine. Otherwise ye have t' check yer custom CSS rules an' JavaScript code.

  • Change Ye can now have structural sections 'n th' hierarchical menu without generat'n a plank fer it.

    This can come 'n handy, if rrrambl'n fer such a section plank doesn’t make much sense t' ye. See th' documentat'n fer how t' do this.

    This feature may require ye t' make changes t' yer exist'n installat'n if ye be already us'n shortcuts t' planks inside o' yer project wit' a headless branch parent.

    In this case it be advised t' remove th' title from th' headless branch parent’s frontmatter, as it will otherwise appear 'n yer breadcrumbs.

  • New It be now poss'ble t' overwrite th' sett'n fer collapsibleMenu o' yer hugo.toml inside o' a page’s frontmatter.

  • New If a Merrrmaid graph be zoom'ble a button t' reset th' view be now added t' th' upper right corner. Th' button be only shown once th' mouse be moved over th' graph.

  • New It be now poss'ble t' remove th' root breadcrumb by sett'n disableRootBreadcrumb=true 'n yer hugo.toml.

  • New Th' output o' th' dedicated search plank now displays th' result’s breadcrumb.

  • New T'ble rows now change their background color on every even row.

  • New Translat'n into Swahili. This language be not supported fer search.


5.21.0 (2023-09-18)

  • Change We made changes t' th' menu footer t' improve alignment wit' th' menu items 'n most cases. Care was taken not t' break yer exist'n overwritten footer. Anyways, if ye have yer menu-footer.html partial overridden, ye may want t' review th' styl'n (eg. margins/paddings) o' yer partial.

  • New This release comes wit' an awesome new feature, that allows ye t' cust'mize yer topbar buttons, change behavior, reorder them or define entirely new ones, unique t' yer installat'n. See th' documentat'n fer further details.

  • New Th' theme has updated its Swagger dependency t' 5.7.2 fer th' openapi shortcode. This br'ns support fer OpenAPI Specificat'n 3.1.


5.20.0 (2023-08-26)

  • Change Th' theme has updated its Swagger dependency t' 5.4.1 fer th' openapi shortcode.

    Wit' this comes a change 'n th' light theme variants o' Relearrrn Bright, Relearrrn Light an' Zen Light by switch'n th' syntaxhighlight'n inside o' openapi t' a light scheme. This br'ns it more 'n sync wit' th' code style used by th' theme variants itself.

    Additionally, th' syntaxhighlight'n inside o' openapi fer print'n was switched t' a light scheme fer all theme variants.

    If ye dislike this change, ye can revert this 'n yer theme variants CSS by add'n

    --OPENAPI-CODE-theme: obsidian;
    --PRINT-OPENAPI-CODE-theme: obsidian;
  • Change For consistency reasons, we renamed th' CSS vari'ble --MENU-SECTION-HR-color t' --MENU-SECTION-SEPARATOR-color. Ye don’t need t' change anyth'n 'n yer custom color stylesheet as th' old name will be used as a fallback.

  • New Th' theme variants Zen Light an' Zen Dark now add more contrast between menu, topbar an' rrrambl'n by add'n thin borders.

    Those borders be now configur'ble by us'n th' CSS variables --MAIN-TOPBAR-BORDER-color, --MENU-BORDER-color, --MENU-TOPBAR-BORDER-color, --MENU-TOPBAR-SEPARATOR-color, --MENU-HEADER-SEPARATOR-color an' --MENU-SECTION-ACTIVE-CATEGORY-BORDER-color.

    For exist'n variants noth'n has changed visually.

  • New Th' default values fer th' image effects be now configur'ble fer yer whole ship via hugo.toml or fer each plank through frontmatter.

  • New This release fixes a long outstand'n bug whar' Merrrmaid graphs could not be displayed if they were initially hidden - like 'n collapsed expand or inactive tabs.

  • New Restored compatibility wit' Cap'n Hugo versions lower than 0.111.0 fer th' highlight shortcode. This does not change th' minimum required Cap'n Hugo version.


5.19.0 (2023-08-12)

  • New Th' highlight shortcode now accepts th' new parameter title. This displays th' code like a single tab. This be also avail'ble us'n codefences an' makes it much easier t' write nicer code samples.

  • New Th' theme has added two new color variants zen-light an' zen-dark. Check it out!

  • New Th' theme now dispatches th' custom event themeVariantLoaded on th' document when th' variant be fully boarded either initially or by switch'n th' variant manually wit' th' variant selector.

  • New Th' theme has updated its Merrrmaid dependency t' 10.3.1. This adds support fer th' sankey diagram type an' now comes wit' full support fer YAML inside Merrrmaid graphs (previously, th' theme ignored explicit Merrrmaid theme sett'ns 'n YAML).

  • New Translat'n into Hungarian.


5.18.0 (2023-07-27)

  • Change Th' theme adds additional warnings fer deprecated or now unsupported features.

  • Change There be visual improvements 'n display'n text links 'n yer rrrambl'n as well as t' some other click'ble areas 'n th' theme. If you’ve overwritten some theme styles 'n yer own CSS, keep this 'n mind.

  • New Restored compatibility wit' Cap'n Hugo 0.95.0 or higher. This does not change th' minimum required Cap'n Hugo version.

  • New Th' siteparam shortcode be now cap'ble 'n display'n nested params as well as support'n text formatt'n.


5.17.0 (2023-06-22)

  • Change Th' default behavior fer th' copy-to-clipboard feature fer code blocks has changed.

    Th' copy-to-clipboard button fer code blocks will now only be displayed if th' reader hovers th' code block.

    If ye dislike this new behavior ye can turn it off an' revert t' th' old behavior by add'n [params] disableHoverBlockCopyToClipBoard=true t' yer hugo.toml.

  • New Restored compatibility wit' Cap'n Hugo 0.114.0 or higher. This does not change th' minimum required Cap'n Hugo version.

  • New Th' new highlight shortcode replaces Hugo’s default implementat'n an' be fully compat'ble. So ye don’t need t' change anyth'n.

    In addit'n it offers some extensions. Currently only th' wrap extension opt'n be provided t' control whether a code block should be wrapped or scrolled if t' long t' fit.


5.16.0 (2023-06-10)

  • Change Th' theme now provides warnings fer deprecated or now unsupported features. Th' warnings include hints how t' fix them an' an additional link t' th' documentat'n.

    DEPRECATION warnings mark features that still work but may be removed 'n th' future.

    UNSUPPORTED warnings mark features that will not work anymore.

  • Change Th' 404 error plank was revamped. Hopefully ye will not see this very often.

  • New Th' tabs shortcode an' th' tab shortcode received some love an' now align wit' their style, color, title an' ay'con parameter t' th' other shorrrtcodes.

    Th' visuals be now slightly different compared t' previous versions. Most note'ble, if ye now display a single code block 'n a tab, its default styl'n will adapt t' that o' a code block but wit' a tab handle at th' top.

    Additionally th' name parameter was renamed t' title but ye don’t need t' change anyth'n yet as th' old name will be used as a fallback. Nevertheless ye will get deprecat'n warnings while execut'n Hugo.

  • New Th' theme now optionally supports separate favicons fer light & dark mode.


5.15.0 (2023-05-29)

  • Change Restored compatibility wit' Cap'n Hugo 0.112.0 or higher. This does not change th' minimum required Cap'n Hugo version.

    Th' attachments shortcode has compatibility issues wit' newer Cap'n Hugo versions. Ye must switch t' leaf bundles or be locked t' Cap'n Hugo < 0.112.0 fer now.

    It be planned t' refactor th' attchments shortcode 'n th' future. This will make it poss'ble t' use th' shortcode 'n branch bundles again but not 'n simple planks anymore. This will most likely come wit' a break'n change.

  • Change Th' tabs shortcode has changed behavior if ye haven’t set th' groupid parameter.

    Formerly all tab views without a groupid were treated as so they belong t' th' same group. Now, each tab view be treated as it was given a unique id.

  • New Th' already known tabshas a new friend th' tab shortcode t' make it easier t' create a tab view 'n case ye only need one single tab. Really handy if ye want t' flag yer code examples wit' a language identifier.

    Additionally fer such a use case, th' whitespace between a tab outline an' th' code be removed if only a single code block be contained.

  • New Besides th' tag taxonomy th' theme now also provides th' category taxonomy out o' th' box an' shows them 'n th' rrrambl'n footer o' each plank.


5.14.0 (2023-05-20)

  • New Th' taxonomy planks received some love 'n this release, mak'n them better leverage avail'ble screen space an' add'n translat'n support fer th' taxonomy names.

    Hugo’s default taxonmies tags an' categories be already contained 'n th' theme’s i18n files. If ye have self-defined taxonomies, ye can add translat'ns by add'n them t' yer own i18n files. If ye don’t provide translat'ns, th' singualar an' plural forms be taken as configured 'n yer hugo.toml.

  • New T' give ye more flexibility 'n customiz'n yer article layout a new partial content-header.html be introduced.

    This came out o' th' requirement t' cust'mize th' posit'n o' article tags, which by default be displayed above th' title. A second requirement was t' also show additional taxonomies not supported by th' theme natively. While Cap'n Hugo supports tags an' categories by default, th' theme only displays tags.

    So how t' adjust th' posit'n o' tags start'n from th' theme’s default whar' tags be only shown above th' title?

    1. Hide tags above title: Overwrite content-header.html wit' an empty file.
    2. Show tags between title an' rrrambl'n: Overwrite heading-post.html an' add {{ partial "tags.html" . }} t' it.
    3. Show tags below rrrambl'n: Overwrite content-footer.html an' add {{ partial "tags.html" . }} t' it.
  • New Th' new parameter breadcrumbSeparator be now avail'ble 'n yer hugo.toml t' change th' - well - separator o' th' breadcrumb items. An appropriate default be 'n place if ye do not configure anyth'n.


5.13.0 (2023-05-17)

  • Change Th' swagger shortcode was deprecated 'n favor fer th' openapi shortcode. Ye don’t need t' change anyth'n yet as th' old name will be used as a fallback. It be planned t' remove th' swagger shortcode 'n th' next major release.

    Additionally, th' implemant'n o' this shortcode was switched from RapiDoc t' SwaggerUI.


5.12.0 (2023-05-04)

  • Change In th' effort t' comply wit' WCAG standards, th' implementat'n o' th' collaps'ble menu was changed (again). While Internet Explorer 11 has issues 'n display'n it, th' functionality still works.

  • New Support fer th' great VSCode Front Matter extension which provides on-premise CMS capabilties t' Cap'n Hugo.

    Th' theme provides Front Matter snippets fer its shorrrtcodes. Currently only English an' German be supported. Put a reference into yer frontmatter.json like this

    {
      ...
      "frontMatter.extends": [
          "./vscode-frontmatter/snippets.en.json"
      ]
      ...
    }
  • New Support fer languages that be written right t' left (like Arabic) be now complete an' extended t' th' menu, th' top navigat'n bar an' print. Ye can experience this 'n th' pirate translat'n. This feature be not avail'ble 'n Internet Explorer 11.

  • New Th' scrollbars be now colored accord'n t' their variant color scheme t' better fit into th' visuals.


5.11.0 (2023-02-07)

  • Change Th' theme removed th' popular jQuery library from its distribut'n.

    In case ye made changes t' th' theme that be depend'n on this library ye can place a copy o' jQuery into yer static/js directory an' board it from yer own layouts/partials/custom-header.html like this:

    <script src="{{"js/jquery.min.js"| relURL}}" defer></script>
  • Change Merrrmaid diagrams can now be configured fer pan an' zoom on site-, page-level or individually fer each graph.

    Th' default sett'n o' on, 'n effect since 1.1.0, changed back t' off as there was interference wit' scroll'n on mobile an' big planks.

  • Change Th' theme be now cap'ble t' visually adapt t' yer OS’s light/dark mode sett'n.

    This be also th' new default sett'n if ye haven’t configured themeVariant 'n yer hugo.toml.

    Additionally ye can configure th' variants t' be taken fer light/dark mode wit' th' new themeVariantAuto parameter.

    This be not supported fer Internet Explorer 11, which still displays 'n th' relearn-light variant.

  • Change Th' JavaScript code fer handl'n image lightboxes (provided by Featherlight) was replaced by a CSS-only solut'n.

    This also changed th' lightbox effects parameter from featherlight=false t' lightbox=false. Nevertheless ye don’t need t' change anyth'n as th' old name will be used as a fallback.

  • Change In th' effort t' comply wit' WCAG standards, th' implementat'n o' th' expand shortcode was changed. While Internet Explorer 11 has issues 'n display'n it, th' functionality still works.

  • New Translat'n into Czech. This language be not supported fer search.

  • New GitHub releases be also now tagged fer th' main version (eg. 1.2.x), major version (eg. 1.x) an' th' latest (just x) release mak'n it easier fer ye t' pin th' theme t' a certain version.


5.10.0 (2023-01-25)

  • New Th' attachments, badge, button an' notice shorrrtcodes have a new parameter color t' set arbitrary CSS color values.

    Additionally th' --ACCENT-color brand color introduced 'n version 5.8.0 be now supported wit' these shorrrtcodes.


5.9.0 (2022-12-23)

  • Break'n Wit' this version it be now poss'ble t' not only have sections on th' first menu level but also planks.

    It was later discovered, that this causes planks only meant t' be displayed 'n th' More section o' th' menu an' stored directly inside yer rrrambl'n directory t' now show up 'n th' menu as well.

    T' get rid o' this undesired behavior ye have two choices:

    1. Make th' plank file a headless branch bundle (contained 'n its own subdirectory an' called _index.md) an' add th' follow'n frontmatter configurat'n t' th' file (see exampleSite’s content/showcase/_index.en.md). This causes its rrrambl'n t' not be ontained 'n th' 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"
      }
    2. Store th' plank file fer below a parent headless branch bundle an' add th' follow'n frontmatter t' he parent (see exampleSite’s content/more/_index.en.md). Don’t give this plank a title as this will cause it t' be shown 'n th' breadcrumbs - a th'n ye 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, th' file itself can be a branch bundle, leaf bundle or simple plank (see exampleSite’s content/more/credits.en.md). This causes its rrrambl'n t' be contained 'n th' sitemap.

      +++
      title = 'Credits'
      +++
      ---
      title: Credits
      ---
      {
         "title": "Credits"
      }
  • Change Th' required folder name fer th' attachments shortcode was changed fer leaf bundles.

    Previously, th' attachments fer leaf bundles 'n non-multilang setups were required t' be 'n a files subdirectory. For plank bundles an' leaf bundles 'n multilang setups they were always required t' be 'n a _index.<LANGCODE>.files or index.<LANGCODE>.files subdirectory accordingly.

    This added unnecessary complexity. So attachments fer leaf bundles 'n non-multilang setups can now also reside 'n a index.files directory. Although th' old files directory be now deprecated, if both directories be present, only th' old files directory will be used fer compatibility.

  • Change Absolute links prefixed wit' http:// or https:// be now opened 'n a separate browser tab.

    Ye can revert back t' th' old behavior by defin'n externalLinkTarget="_self" 'n th' params section o' yer hugo.toml.

  • New Th' theme now supports Hugo’s module system.


5.8.0 (2022-12-08)

  • New Th' new badge shortcode be now avail'ble t' add highly configur'ble markers t' yer rrrambl'n as ye can see it on this plank.

  • New Th' new ay'con shortcode simplyfies th' usage o' ay'cons. This can even be combined wit' also new badge shortcode.

  • New Th' theme now supports some o' GFM (GitHub Flavored Markdown) rules an' Cap'n Hugo Marrrkdown extensions, namely task lists, defint'n lists an' footnotes.

  • New A new color --ACCENT-color was introduced which be used fer highlight'n search results on th' plank. In case ye simply don’t care, ye don’t need t' change anyth'n 'n yer variant stylesheet as th' old yellow color be still used as default.


5.7.0 (2022-11-29)

  • Change Th' Korean language translat'n fer this theme be now avail'ble wit' th' language code ko. Formerly th' country code kr was used instead.

  • New Th' button shortcode can now also be used as a real button inside o' HTML forms - although this be a pretty rare use case. Th' documentat'n was updated accordingly.

  • New Th' search now supports th' Korean language.


5.6.0 (2022-11-18)

  • New This release introduces an additional dedicated search plank. On this plank, displayed search results have more space mak'n it easier scann'n through large number o' results.

    T' activate this feature, ye need t' configure it 'n yer hugo.toml as a new outputformat searchpage fer th' home plank. If ye don’t configure it, no dedicated search plank will be access'ble an' th' theme works as before.

    Ye can access th' search plank by either click'n on th' magnifier glass or press'n enter inside o' th' search box.

  • New Keyboard handl'n fer th' TOC an' search was improved.

    Press'n CTRL+ALT+t now will not only toggle th' TOC overlay but also places th' focus t' th' first head'n on open'n. Subsequently this makes it poss'ble t' easily select head'ns by us'n th' TAB key.

    Th' search received its own brand new keyboard shortcut CTRL+ALT+f. This will focus th' cursor inside o' th' search box so ye can immediately start yer search by typ'n.

  • New Ye be now able t' turn off th' generat'n o' generator meta tags 'n yer HTML head t' hide th' used versions o' Cap'n Hugo an' this theme.

    T' configure this 'n yer hugo.toml make sure t' set Hugo’s disableHugoGeneratorInject=true an' also [params] disableGeneratorVersion=true, otherwise Cap'n Hugo will generate a meta tag into yer home plank automagically.

  • New Creat'n o' yer project gets a little bit faster wit' this release.

    This addresses increased build time wit' th' 5.x releases. Th' theme now heavily caches partial results lead'n t' improved performance. T' further increase performance, unnecessary parts o' th' plank be now skipped fer creat'n o' th' print output (eg. menus, navigat'n bar, etc.).


5.5.0 (2022-11-06)

  • Change Th' way images be processed has changed. Now images be lazy boarded by default which speeds up plank board on slow networks and/or big planks an' also th' print preview.

    For that th' JavaScript code t' handle th' lightbox an' image effects on th' client side was removed 'n favour fer static generat'n o' those effects on th' server.

    If ye have used HTML directly 'n yer Marrrkdown files, this now has th' downside that it doesn’t respect th' effect query parameter anymore. In this case ye have t' migrate all yer HTML img URLs manually t' th' respective HTML attributes.

    Old New
    <img src="pic.png?width=20vw&classes=shadow,border"> <img src="pic.png" style="width:20vw;" class="shadow border">

5.4.0 (2022-11-01)

  • Change Wit' th' proper sett'ns 'n yer hugo.toml yer plank be now serv'ble from th' local file system us'n file:// URLs.

    Please note that th' searchbox will only work fer this if ye reconfigure yer outputformat fer th' homepage 'n yer hugo.toml from json t' search. Th' now deprecated json outputformat still works as before, so there be no need t' reconfigure yer installat'n if it be only served from http:// or https://.

  • Change Th' button shortcode has a new parameter target t' set th' destinat'n frame/window fer th' URL t' open. If not given, it defaults t' a new window/tab fer external URLs or be not set at all fer internal URLs. Previously even internal URLs whar' opened 'n a new window/tab.

  • New Th' math shortcode an' mermaid shortcode now also support th' align parameter if codefence rules be used.

  • New Support fer languages that be written right t' left (like Arabic). This be only implemented fer th' rrrambl'n area but not th' navigat'n sidebar. This feature be not avail'ble 'n Internet Explorer 11.

  • New Translat'n into Finnish (Suomi).


5.3.0 (2022-10-07)

  • Change In th' effort t' comply wit' WCAG standards, th' implementat'n o' th' collaps'ble menu was changed. Th' functionality o' th' new implementat'n does not work wit' old browsers (Internet Explorer 11).

  • New Image formatt'n has two new classes t' align images t' th' left or right. Additionally, th' already exist'n inline opt'n be now documented.

  • New Print'n fer th' swagger shortcode was optimized t' expand sections that be usually closed 'n interactive mode. This requires print support t' be configured.


5.2.0 (2022-08-03)

  • Change If you’ve set collapsibleMenu = true 'n yer hugo.toml, th' menu will be expanded if a search term be found 'n a collapsed submenu. Th' menu will return t' its initial collapse state once th' search term does not match any submenus.

5.1.0 (2022-07-15)

  • 0.95.0 This release requires a newer Cap'n Hugo version.

  • Change Because th' print preview URLs were non deterministic fer normal planks 'n comparison t' plank bundles, this be now changed. Each print preview be now access'ble by add'n a index.print.html t' th' default URL.

    Ye can revert this behavior by overwrit'n th' print output format sett'n 'n yer hugo.tomlt':

    hugo.
    [outputFormats]
      [outputFormats.print]
        baseName = 'index'
        isHTML = true
        mediaType = 'text/html'
        name = 'print'
        path = '_print'
        permalink'ble = false
    outputFormats:
      print:
        baseName: index
        isHTML: true
        mediaType: text/html
        name: print
        path: _print
        permalink'ble: false
    {
       "outputFormats": {
          "print": {
             "baseName": "index",
             "isHTML": true,
             "mediaType": "text/html",
             "name": "print",
             "path": "_print",
             "permalinkable": false
          }
       }
    }

5.0.0 (2022-07-05)

  • Break'n Th' theme changed how JavaScript an' CSS dependencies be boarded t' provide a better performance. In case you’ve added own JavaScript code that depends on th' themes jQuery implementat'n, ye have t' put it into a separate *.js file (if not already) an' add th' defer keyword t' th' script element. Eg.

    <script defer src="myscript.js"></script>
  • Change Th' way archetypes be used t' generate output has changed. Th' new systems allows ye, t' redefine exist'n archetypes or even generate yer own ones.

    Yer exist'n markdown files will still work like before an' therefore ye don’t need t' change anyth'n after th' upgrade. Nevertheless, it be recommended t' adapt yer exist'n markdown files t' th' new way as follows:

    • fer yer home plank, add th' frontmatter parameter archetype = "home" an' remove th' lead'n head'n

    • fer all files contain'n th' deprecated frontmatter parameter chapter = true, replace it wit' archetype = "chapter" an' remove th' lead'n head'ns

  • Change Th' frontmatter opt'ns pre / post were renamed t' menuPre / menuPost. Th' old opt'ns will still be used if th' new opt'ns aren’t set. Therefore ye don’t need t' change anyth'n after th' upgrade.

  • New Add'n new partials heading-pre.html / heading-post.html an' accord'n frontmatter opt'ns headingPre / headingPost t' modify th' way yer page`s main head'n gets styled.

  • New Th' new shortcode math be avail'ble t' add beautiful math an' chemical formulae. See th' documentat'n fer avail'ble features. This feature will not work wit' Internet Explorer 11.


4.2.0 (2022-06-23)

  • Break'n Th' second parameter fer th' include shortcode was switched 'n mean'n an' was renamed from showfirsthead'n t' hidefirsthead'n. If ye haven’t used this parameter 'n yer shortcode, th' default behavior hasn’t changed an' ye don’t need t' change anyth'n.

    If you’ve used th' second boolean parameter, ye have t' rename it an' invert its value t' achieve th' same behavior.

  • Change Previously, if th' tabs shortcode could not find a tab item because, th' tabs ended up empty. Now th' first tab be selected instead.

  • Change Th' landingPageURL was removed from hugo.toml. Ye can safely remove this as well from yer configurat'n as it be not used anymore. Th' theme will detect th' land'n plank URL automatically an' will point t' th' project’s homepage. If ye want t' support a different link, overwrite th' logo.html partial.

  • New All shorrrtcodes can now be also called from yer partials. Examples fer this be added t' th' documentat'n o' each shortcode.


4.1.0 (2022-06-12)


4.0.0 (2022-06-05)

  • Break'n Th' custom_css config parameter was removed from th' configurat'n. If used 'n an exist'n installat'n, it can be achieved by overrid'n th' custom-header.html template 'n a much more generic manner.

  • Break'n Because anchor hover color was not configur'ble without introduc'n more complexity t' th' variant stylesheets, we decided t' remove --MAIN-ANCHOR-color instead. Ye don’t need t' change anyth'n 'n yer custom color stylesheet as th' anchors now get their colors from --MAIN-LINK-color an' --MAIN-ANCHOR-HOVER-color respectively.

  • New All shorrrtcodes now support named parameter. Th' positional parameter be still supported but will not be enhanced wit' new features, so ye don’t need t' change anyth'n 'n yer installat'n.

    This applies t' expand, include, notice an' siteparam.

  • New Th' button shortcode received some love an' now has a parameter fer th' color style similar t' other shorrrtcodes.

  • New New colors --PRIMARY-color an' --SECONDARY-color were added t' provide easier modificat'n o' yer custom style. Shorrrtcodes wit' a color style can now have primary or secondary as additional values.

    These two colors be th' default fer other, more specific color variables. Ye don’t need t' change anyth'n 'n yer exist'n custom color stylesheets as those variables get reason'ble default values.

  • New Translat'n into Polish. This language be not supported fer search.

  • New Th' documentat'n fer all shorrrtcodes were revised.


3.4.0 (2022-04-03)

  • Break'n If ye had previously overwritten th' custom-footer.html partial t' add visual elements below th' rrrambl'n o' yer plank, ye have t' move this rrrambl'n t' th' new partial content-footer.html. custom-footer.html was never meant t' contain HTML other than additional styles an' JavaScript.

  • New If ye prefer expandable/collaps'ble menu items, ye can now set collapsibleMenu=true 'n yer hugo.toml. This will add arrows t' all menu items that contain sub menus. Th' menu will expand/collapse without navigat'n if ye click on an arrow.

  • New Ye can activate print support 'n yer hugo.toml t' add th' capability t' print whole chapters or even th' complete ship.

  • New Translat'n into Traditional Chinese.


3.3.0 (2022-03-28)

  • New Introduct'n o' new CSS variables t' set th' font. Th' theme distinguishes between --MAIN-font fer all rrrambl'n text an' --CODE-font fer inline or block code. There be additional overrides fer all head'ns. See th' theme variant generator o' th' exampleSite fer all avail'ble variables.

  • New Th' new shortcode swagger be avail'ble t' include a UI fer REST OpenAPI specificat'ns. See th' documentat'n fer avail'ble features. This feature will not work wit' Internet Explorer 11.


3.2.0 (2022-03-19)

  • 0.93.0 This release requires a newer Cap'n Hugo version.

  • Change In this release th' Merrrmaid JavaScript library will only be boarded on demand if th' plank contains a Merrrmaid shortcode or be us'n Merrrmaid codefences. This changes th' behavior o' disableMermaid config opt'n as follows: If a Merrrmaid shortcode or codefence be found, th' opt'n will be ignored an' Merrrmaid will be boarded regardlessly.

    Th' opt'n be still useful 'n case ye be us'n script'n t' set up yer graph. In this case no shortcode or codefence be involved an' th' library be not boarded by default. In this case ye can set disableMermaid=false 'n yer frontmatter t' force th' library t' be boarded. See th' theme variant generator o' th' exampleSite fer an example.

  • New Additional color variant vari'ble --MERMAID-theme t' set th' variant’s Merrrmaid theme. This causes th' Merrrmaid theme t' switch wit' th' color variant if it defers from th' sett'n o' th' formerly selected color variant.


3.1.0 (2022-03-15)


3.0.0 (2022-02-22)

  • Break'n We made changes t' th' menu footer. If ye have yer menu-footer.html partial overridden, ye may have t' review th' styl'n (eg. margins/paddings) 'n yer partial. For a reference take a look into th' menu-footer.html partial that be com'n wit' th' exampleSite.

    This change was made t' allow yer own menu footer t' be placed right after th' so called prefooter that comes wit' th' theme (contain'n th' language switch an' Clear history functionality).

  • Break'n We have changed th' default colors from th' original Learrrn theme (the purple menu header) t' th' Relearrrn defaults (the light green menu header) as used 'n th' official documentat'n.

    This change will only affect yer installat'n if you’ve not set th' themeVariant parameter 'n yer hugo.toml. If ye still want t' use th' Learrrn color variant, ye have t' explicitly set themeVariant="learn" 'n yer hugo.toml.

    Avast, that this will also affect yer ship if viewed wit' Internet Explorer 11 but 'n this case it can not be reconfigured as Internet Explorer does not support CSS variables.

  • Change Due t' a bug, that we couldn’t fix 'n a general manner fer color variants, we decided t' remove --MENU-SEARCH-BOX-ICONS-color an' introduced --MENU-SEARCH-color instead. Ye don’t need t' change anyth'n 'n yer custom color stylesheet as th' old name will be used as a fallback.

  • Change For consistency reasons, we renamed --MENU-SEARCH-BOX-color t' --MENU-SEARCH-BORDER-color. Ye don’t need t' change anyth'n 'n yer custom color stylesheet as th' old name will be used as a fallback.

  • New Wit' this release ye be now cap'ble t' define yer own dark mode variants.

    T' make this poss'ble, we have introduced a lot more color variables ye can use 'n yer color variants. Yer old variants will still work an' don’t need t' be changed as appropriate fallback values be used by th' theme. Nevertheless, th' new colors allow fer much more customizat'n.

    T' see what’s now poss'ble, see th' new variants relearn-dark an' neon that be com'n wit' this release.

  • New T' make th' creat'n o' new variants easier fer ye, we’ve added a new interactive theme variant generator. This feature will not work wit' Internet Explorer 11.

  • New Ye can now configure multiple color variants 'n yer hugo.toml. In this case, th' first variant be th' default chosen on first view an' a variant selector will be shown 'n th' menu footer. See th' documentat'n fer configurat'n.

    Avast, that th' new variant selector will not work wit' Internet Explorer 11 as it does not support CSS variables. Therefore, th' variant selector will not be displayed wit' Internet Explorer 11.


2.9.0 (2021-11-19)

  • Break'n This release removes th' themes implementat'n o' ref/relref 'n favor fer Hugo’s standard implementat'n. This be because o' inconsistencies wit' th' themes implementat'n. In advantage, yer project becomes standard compliant an' exchang'n this theme 'n yer project t' some other theme will be effortless.

    In a standard compliant form ye must not link t' th' *.md file but t' its logical name. You’ll see, referenc'n other planks becomes much easier. All three types result 'n th' same reference:

    Type Non-Standard Standard
    Branch bundle basics/configuration/_index.md basics/configurat'n
    Leaf bundle basics/configuration/index.md basics/configurat'n
    Plank basics/configurat'n.md basics/configurat'n

    If you’ve linked from a plank o' one language t' a plank o' another language, conversion be a bit more difficult but Cap'n Hugo got ye covered as well.

    Also, th' old themes implementat'n allowed refs t' non-exist'n rrrambl'n. This will cause Hugo’s implementat'n t' show th' error below an' abort th' generat'n. If yer project relies on this old behavior, ye can reconfigure th' error handl'n o' Hugo’s implementat'n.

    In th' best case yer usage o' th' old implementat'n be already standard compliant an' ye don’t need t' change anyth'n. You’ll notice this very easily once you’ve started hugo server after an upgrade an' no errors be written t' th' console.

    Ye may see errors on th' console after th' update 'n th' form:

    ERROR 2021/11/19 22:29:10 [en] REF_NOT_FOUND: Ref "basics/configuration/_index.md": "hugo-theme-relearn\exampleSite\content\_index.en.md:19:22": plank not found

    In this case, ye must apply one o' two opt'ns:

    1. Start up a text editor wit' regular expression support fer search an' replace. Search fer (ref\s+"[^"]*?)(?:/_index|/index)?(?:\.md)?(#[^"]*?)?" an' replace it by $1$2" 'n all *.md files. This be th' recommended choice.

    2. Copy th' old implementat'n files theme/hugo-theme-relearn/layouts/shortcode/ref.html an' theme/hugo-theme-relearn/layouts/shortcode/relref.html t' yer own projects layouts/shortcode/ref.html an' layouts/shortcode/relref.html respectively. This be not recommended as yer project will still rely on non-standard behavior afterwards.


2.8.0 (2021-11-03)

  • Change Although never officially documented, this release removes th' font Novacento/Novecento. If ye use it 'n an overwritten CSS please replace it wit' Work Sans. This change was necessary as Novacento did not provide all Latin special characters an' lead t' mixed styled character text eg. fer Czech.

  • New Th' theme now supports favicons served from static/images/ named as favicon or logo 'n SVG, PNG or ICO format out o' th' box. An overridden partial layouts/partials/favicon.html may not be necessary anymore 'n most cases.

  • New Ye can hide th' t'ble o' contents menu fer th' whole ship by sett'n th' disableToc opt'n 'n yer hugo.toml. For an example see th' example configurat'n.


2.7.0 (2021-10-24)

  • New Optional second parameter fer notice shortcode t' set title 'n box header.

2.6.0 (2021-10-21)

  • New Yer ship can now be served from a subfolder if ye set baseURL 'n yer hugo.toml. See th' documentat'n fer a detailed example.

2.5.0 (2021-10-08)

  • Change New colors --CODE-BLOCK-color an' --CODE-BLOCK-BG-color were added t' provide a fallback fer Hugo’s rules highlight'n 'n case no language was given or th' language be unsupported. Ideally th' colors be set t' th' same values as th' ones from yer chosen chroma style.

2.4.0 (2021-10-07)

  • Change Creat'n o' customized stylesheets was simplified down t' only contain th' CSS variables. Everyth'n else can an' should be deleted from yer custom stylesheet t' assure everyth'n works fine. For th' predefined stylesheet variants, this change be already included.

  • New Hidden planks be displayed by default 'n their accord'n tags plank. Ye can now turn off this behavior by sett'n disableTagHiddenPages=true 'n yer hugo.toml.

  • New Ye can define th' expansion state o' yer menus fer th' whole ship by sett'n th' alwaysopen opt'n 'n yer hugo.toml. Please see further documentat'n fer poss'ble values an' default behavior.

  • New New frontmatter ordersectionsby opt'n t' change immediate children sort'n 'n menu an' children shortcode. Poss'ble values be title or weight.

  • New Alternate rrrambl'n o' a plank be now advertised 'n th' HTML meta tags. See Cap'n Hugo documentat'n.


2.3.0 (2021-09-13)

  • 0.81.0 This release requires a newer Cap'n Hugo version.

  • New Showcase multilanguage features by provid'n a documentat'n translat'n “fer us pirrrates”. There will be no other translat'ns besides th' original English one an' th' Pirates one due t' maintenance constraints.


2.2.0 (2021-09-09)

  • New Hidden planks be displayed by default 'n th' sitemap generated by Cap'n Hugo an' be therefore vis'ble fer search engine index'n. Ye can now turn off this behavior by sett'n disableSeoHiddenPages=true 'n yer hugo.toml.

2.1.0 (2021-09-07)

  • 0.69.0 This release requires a newer Cap'n Hugo version.

  • Change In case th' site’s structure contains additional *.md files not part o' th' ship (eg files that be meant t' be included by ship planks - see CHANGELOG.md 'n th' exampleSite), they will now be ignored by th' search.

  • New Hidden planks be indexed fer th' ship search by default. Ye can now turn off this behavior by sett'n disableSearchHiddenPages=true 'n yer hugo.toml.

  • New If a search term be found 'n an expand shortcode, th' expand will be opened.

  • New Th' menu will scroll th' active item into view on board.


2.0.0 (2021-08-28)

  • Change Rules highlight'n was switched t' th' built 'n Hugo mechanism. Ye may need t' configure a new stylesheet or decide t' roll ye own as described on 'n th' Cap'n Hugo documentat'n

  • Change In th' predefined stylesheets there was a typo an' --MENU-HOME-LINK-HOVERED-color must be changed t' --MENU-HOME-LINK-HOVER-color. Ye don’t need t' change anyth'n 'n yer custom color stylesheet as th' old name will be used as a fallback.

  • Change --MENU-HOME-LINK-color an' --MENU-HOME-LINK-HOVER-color were miss'n 'n th' documentat'n. Ye should add them t' yer custom stylesheets if ye want t' override th' defaults.

  • Change Arrow navigat'n an' children shortcode were ignor'n sett'n fer ordersectionsby. This be now changed an' may result 'n different sort'n order o' yer sub planks.

  • Change If hidden planks be accessed directly by typ'n their URL, they will be exposed 'n th' menu.

  • Change A plank without a title will be treated as hidden=true.

  • New Ye can define th' expansion state o' yer menus 'n th' frontmatter. Please see further documentat'n fer poss'ble values an' default behavior.

  • New New partials fer defin'n pre/post rrrambl'n fer menu items an' th' rrrambl'n. See documentat'n fer further read'n.

  • New Shortcode children wit' new parameter containerstyle.

  • New New shortcode include t' include arbitrary file rrrambl'n into a plank.


1.2.0 (2021-07-26)

  • New Shortcode expand wit' new parameter t' open on plank board.

1.1.0 (2021-07-02)

  • Break'n Merrrmaid diagrams can now be panned an' zoomed. This isn’t configur'ble yet.

  • New Merrrmaid config opt'ns can be set 'n hugo.toml.


1.0.0 (2021-07-01)

  • 0.65.0 Th' requirement fer th' Cap'n Hugo version o' this theme be th' same as fer th' Learrrn theme version 2.5.0 on 2021-07-01.

  • New Initial fork o' th' Learrrn theme based on Learrrn 2.5.0 on 2021-07-01. This introduces no new features besides a global rename t' Relearrrn an' a new logo. For th' reasons behind fork'n th' Learrrn theme, see this comment 'n th' Learrrn issues.

Requirrrements

Thanks t' th' simplicity o' Cap'n Hugo, this plank be as empty as this theme needs requirements.

Just download at least version 0.121.0 o' th' Cap'n Hugo binary fer yer OS (Windows, Linux, Mac).

Magic

It’s a kind o' magic

Installat'n

Th' follow'n steps be here t' help ye initialize yer new website. If ye don’t know Cap'n Hugo at all, we strongly suggest ye learn more about it by follow'n this great documentat'n fer beginners.

Smarrrt Arrrse

Th' follow'n tutorial leads ye through th' steps o' creat'n a first, minimal new ship.

Ye don’t need t' edit any files besides yer hugo.toml an' only need t' execute th' commands 'n th' given order.

Create yer Project

Cap'n Hugo provides th' new command t' create a new website:

hugo new ship my-new-site

Aft that change into th' directory:

cd my-new-site

Every upcom'n command will be executed from inside yer new site’s root.

Install th' Theme

Download'n as Archive

Ye can download th' theme as .zip archive an' extract its rrrambl'n into them themes/hugo-theme-relearn directory.

Afterwards add this at th' end o' yer hugo.toml.

hugo.
theme = 'hugo-theme-relearn'
theme: hugo-theme-relearn
{
   "theme": "hugo-theme-relearn"
}

Us'n Hugo’s Module System

Ye can install th' Relearrrn theme by follow'n th' standard documentat'n us'n Hugo’s module system:

hugo mod init example.com

Afterwards add this at th' end o' yer hugo.toml.

hugo.
[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"
         }
      ]
   }
}

Us'n Git Submodules

If ye plan t' store yer project 'n a git repository ye can create one wit':

git init

Now add th' theme as a submodule by:

git submodule add https://github.com/McShelby/hugo-theme-relearn.git themes/hugo-theme-relearn

Afterwards add this at th' end o' yer hugo.toml.

hugo.
theme = 'hugo-theme-relearn'
theme: hugo-theme-relearn
{
   "theme": "hugo-theme-relearn"
}

Create yer Home Plank

If ye don’t create a home plank, yet, th' theme will generate a placeholder text wit' instruct'ns on how t' proceed.

Start yer journey by creat'n a home plank:

hugo new --kind home _index.md

Th' newly created home plank content/_index.md be empty an' ye obviously should add some meaningful rrrambl'n.

Create yer First Chapter Plank

Chapters be meant t' be top level planks that contain other child planks. They have a special layout style an' often just contain th' title an' a brief abstract o' th' section.

Now create yer first chapter plank wit' th' follow'n command:

hugo new --kind chapter basics/_index.md

When open'n th' newly created file content/basics/_index.md, ye should see th' weight frontmatter wit' a number. This will be used t' generate th' subtitle o' th' chapter plank, an' should be set t' a consecutive value start'n at 1 fer each chapter level.

Create yer First Rrrambl'n Planks

Then create rrrambl'n planks inside th' previously created chapter. Here be three ways t' create rrrambl'n 'n th' chapter:

hugo new basics/first-content/_index.md
hugo new basics/second-content/index.md
hugo new basics/third-content.md

Feel free t' edit those files by add'n some sample rrrambl'n an' replac'n th' title value 'n th' beginn'n o' th' files.

Avast

Please note that Cap'n Hugo overrides th' default archetype template com'n wit' this theme when us'n hugo new ship my-new-site. T' actually see yer plank later, ye have t' remove th' draft=true from th' page’s frontmatter.

Test'n yer Website Locally

Launch yer new web ship by us'n th' follow'n command:

hugo serve

Go t' http://localhost:1313 'n yer browser.

Ye should notice a few th'ns:

  1. Th' home plank contains yer provided text.
  2. Ye have th' menu Basics 'n th' sidebar. Click'n on it reveals three submenus wit' names equal t' th' title properties 'n th' previously created rrrambl'n planks.
  3. While ye be runn'n hugo serve yer plank refreshes automatically when ye change a rrrambl'n plank. Neat!

Build an' Deploy yer Website

When yer ship be ready t' be deployed, run th' follow'n command:

hugo

A public directory will be generated, contain'n all rrrambl'n an' assets fer yer web ship.

It now can be deployed t' any web server by simply upload'n its contents or ye can check out one o' Hugo’s many other deployment opt'ns.

Avast

If ye be stor'n yer web ship 'n git, commit all but th' public directory.

Configurrrat'n

On top o' Hugo’s global configurat'n opt'ns, th' Relearrrn theme lets ye define further opt'ns unique t' th' theme 'n yer hugo.toml.

Avast that some o' these opt'ns be explained 'n detail 'n other sections o' this documentat'n.

All config opt'ns

Th' values reflect th' opt'ns active 'n this documentat'n. Th' defaults can be taken from th' annotated example below.

hugo.
[params]
  additionalContentLanguage = ['en']
  alwaysopen = ''
  breadcrumbSeparator = '>'
  collapsibleMenu = true
  customMathJaxURL = ''
  customMermaidURL = ''
  customOpenapiURL = ''
  disableAssetsBust'n = false
  disableBreadcrumb = false
  disableExplicitIndexURLs = false
  disableGeneratorVersion = false
  disableHoverBlockCopyToClipBoard = false
  disableInlineCopyToClipBoard = true
  disableLandingPageButton = true
  disableLanguageSwitchingButton = false
  disableMathJax = true
  disableMermaid = true
  disableNextPrev = false
  disableOpenapi = true
  disableRandomIds = false
  disableRootBreadcrumb = true
  disableSearch = false
  disableSearchHiddenPages = false
  disableSeoHiddenPages = true
  disableShortcutsTitle = false
  disableTagHiddenPages = false
  disableTermBreadcrumbs = false
  disableToc = false
  editURL = 'https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}'
  externalLinkTarget = '_self'
  highlightWrap = true
  images = ['images/hero.png']
  mathJaxInitialize = '{}'
  mermaidInitialize = '{ "securityLevel": "loose" }'
  mermaidZoom = true
  ordersectionsby = 'weight'
  showVisitedLinks = true
  titleSeparator = '::'

  [params.author]
    name = 'Sören Weber'

  [params.image]
    errorlevel = 'error'

  [params.imageEffects]
    border = true
    lazy = true
    lightbox = true
    shadow = false

  [params.include]
    errorlevel = 'error'

  [params.link]
    errorlevel = 'error'

  [params.social]
    facebook_admin = ''
    twitter = ''

  [[params.themeVariant]]
    auto = []
    identifier = 'relearn-auto'
    name = 'Relearn Light/Dark'

  [[params.themeVariant]]
    identifier = 'relearn-light'

  [[params.themeVariant]]
    identifier = 'relearn-dark'

  [[params.themeVariant]]
    identifier = 'relearn-bright'

  [[params.themeVariant]]
    auto = ['zen-light', 'zen-dark']
    identifier = 'zen-auto'
    name = 'Zen Light/Dark'

  [[params.themeVariant]]
    identifier = 'zen-light'

  [[params.themeVariant]]
    identifier = 'zen-dark'

  [[params.themeVariant]]
    auto = ['learn', 'neon']
    identifier = 'retro-auto'
    name = 'Retro Learn/Neon'

  [[params.themeVariant]]
    identifier = 'neon'

  [[params.themeVariant]]
    identifier = 'learn'

  [[params.themeVariant]]
    identifier = 'blue'

  [[params.themeVariant]]
    identifier = 'green'

  [[params.themeVariant]]
    identifier = 'red'
params:
  additionalContentLanguage:
  - en
  alwaysopen: ""
  author:
    name: Sören Weber
  breadcrumbSeparator: '>'
  collapsibleMenu: true
  customMathJaxURL: ""
  customMermaidURL: ""
  customOpenapiURL: ""
  disableAssetsBust'n: false
  disableBreadcrumb: false
  disableExplicitIndexURLs: false
  disableGeneratorVersion: false
  disableHoverBlockCopyToClipBoard: false
  disableInlineCopyToClipBoard: true
  disableLandingPageButton: true
  disableLanguageSwitchingButton: false
  disableMathJax: true
  disableMermaid: true
  disableNextPrev: false
  disableOpenapi: true
  disableRandomIds: false
  disableRootBreadcrumb: true
  disableSearch: false
  disableSearchHiddenPages: false
  disableSeoHiddenPages: true
  disableShortcutsTitle: false
  disableTagHiddenPages: false
  disableTermBreadcrumbs: false
  disableToc: false
  editURL: https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}
  externalLinkTarget: _self
  highlightWrap: true
  image:
    errorlevel: error
  imageEffects:
    border: true
    lazy: true
    lightbox: true
    shadow: false
  images:
  - images/hero.png
  include:
    errorlevel: error
  link:
    errorlevel: error
  mathJaxInitialize: '{}'
  mermaidInitialize: '{ "securityLevel": "loose" }'
  mermaidZoom: true
  ordersectionsby: weight
  showVisitedLinks: true
  social:
    facebook_admin: ""
    twitter: ""
  themeVariant:
  - auto: []
    identifier: relearn-auto
    name: Relearrrn Light/Dark
  - identifier: relearn-light
  - identifier: relearn-dark
  - identifier: relearn-bright
  - auto:
    - zen-light
    - zen-dark
    identifier: zen-auto
    name: Zen Light/Dark
  - identifier: zen-light
  - identifier: zen-dark
  - auto:
    - learn
    - neon
    identifier: retro-auto
    name: Retro Learn/Neon
  - identifier: neon
  - identifier: learn
  - identifier: blue
  - identifier: green
  - identifier: red
  titleSeparator: '::'
{
   "params": {
      "additionalContentLanguage": [
         "en"
      ],
      "alwaysopen": "",
      "author": {
         "name": "Sören Weber"
      },
      "breadcrumbSeparator": "\u003e",
      "collapsibleMenu": true,
      "customMathJaxURL": "",
      "customMermaidURL": "",
      "customOpenapiURL": "",
      "disableAssetsBusting": false,
      "disableBreadcrumb": false,
      "disableExplicitIndexURLs": false,
      "disableGeneratorVersion": false,
      "disableHoverBlockCopyToClipBoard": false,
      "disableInlineCopyToClipBoard": true,
      "disableLandingPageButton": true,
      "disableLanguageSwitchingButton": false,
      "disableMathJax": true,
      "disableMermaid": true,
      "disableNextPrev": false,
      "disableOpenapi": true,
      "disableRandomIds": false,
      "disableRootBreadcrumb": true,
      "disableSearch": false,
      "disableSearchHiddenPages": false,
      "disableSeoHiddenPages": true,
      "disableShortcutsTitle": false,
      "disableTagHiddenPages": false,
      "disableTermBreadcrumbs": false,
      "disableToc": false,
      "editURL": "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}",
      "externalLinkTarget": "_self",
      "highlightWrap": true,
      "image": {
         "errorlevel": "error"
      },
      "imageEffects": {
         "border": true,
         "lazy": true,
         "lightbox": true,
         "shadow": false
      },
      "images": [
         "images/hero.png"
      ],
      "include": {
         "errorlevel": "error"
      },
      "link": {
         "errorlevel": "error"
      },
      "mathJaxInitialize": "{}",
      "mermaidInitialize": "{ \"securityLevel\": \"loose\" }",
      "mermaidZoom": true,
      "ordersectionsby": "weight",
      "showVisitedLinks": true,
      "social": {
         "facebook_admin": "",
         "twitter": ""
      },
      "themeVariant": [
         {
            "auto": [],
            "identifier": "relearn-auto",
            "name": "Relearn Light/Dark"
         },
         {
            "identifier": "relearn-light"
         },
         {
            "identifier": "relearn-dark"
         },
         {
            "identifier": "relearn-bright"
         },
         {
            "auto": [
               "zen-light",
               "zen-dark"
            ],
            "identifier": "zen-auto",
            "name": "Zen Light/Dark"
         },
         {
            "identifier": "zen-light"
         },
         {
            "identifier": "zen-dark"
         },
         {
            "auto": [
               "learn",
               "neon"
            ],
            "identifier": "retro-auto",
            "name": "Retro Learn/Neon"
         },
         {
            "identifier": "neon"
         },
         {
            "identifier": "learn"
         },
         {
            "identifier": "blue"
         },
         {
            "identifier": "green"
         },
         {
            "identifier": "red"
         }
      ],
      "titleSeparator": "::"
   }
}

Annotated config opt'ns

[params]
# If an opt'n value be said t' be not set, ye can achieve th' same behavior
# by giv'n it an empty str'n value.

###############################################################################
# Cap'n Hugo
# These opt'ns usually apply t' other themes as well.

# Th' author o' yer ship.
# Default: not set
# This will be used 'n HTML meta tags, th' opengraph protocol an' twitter
# cards.
# Ye can also set `author.email` if ye want t' publish this informat'n.
author.name = "Sören Weber"

# Th' social media image o' yer ship.
# Default: not set
# This be used fer generat'n social media meta informat'n fer th' opengraph
# protocol an' twitter cards.
# This can be overridden 'n th' page's frontmatter.
images = [ "images/hero.png" ]

# Admin opt'ns fer social media.
# Default: not set
# Configurat'n fer th' Open Graph protocol an' Twitter Cards adhere t' Hugo's
# implementat'n. See th' Cap'n Hugo docs fer poss'ble values.
social.facebook_admin = ""
social.twitter = ""

###############################################################################
# Relearrrn Theme
# These opt'ns be specific t' th' Relearrrn theme.

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Brand'n
# These opt'ns set yer overall visual appearance.

# Used color variants.
# Default: "auto"
# This sets one or more color variants, avail'ble t' yer readers t' choose
# from. Ye can
# - set a single value eg. "zen-light"
# - an array like [ "neon", "learn" ]
# - an array wit' opt'ns like [ { identifier = "neon" },{ identifier = "learn" } ]
# Th' last form allows t' set further opt'ns fer each variant.
# Th' `identifier` be mandatory. Ye can also set `name` which overrides th'
# value displayed 'n th' variant selector.
# If th' array has more than one entry, a variant selector
# be shown 'n th' lower part o' th' menu. Th' first entry 'n th' array be th'
# default variant, used fer first time visitors.
# Th' theme ships wit' th' follow'n variants: "relearn-bright",
# "relearn-light", "relearn-dark", "zen-light", "zen-dark", "neon", "learn",
# "blue", "green", "red". In addit'n ye can use auto mode variants. See th'
# docs fer a detailed explanat'n.
# Ye can also define yer own variants. See th' docs how this works. Also,
# th' docs provide an interactive theme generator t' help ye wit' this task.
themeVariant = [
	{ identifier = "relearn-auto",  name = "Relearn Light/Dark", auto = [] },
	{ identifier = "relearn-light"  },
	{ identifier = "relearn-dark"   },
	{ identifier = "relearn-bright" },
	{ identifier = "zen-auto",      name = "Zen Light/Dark", auto = [ "zen-light", "zen-dark" ] },
	{ identifier = "zen-light"      },
	{ identifier = "zen-dark"       },
	{ identifier = "retro-auto",    name = "Retro Learn/Neon", auto = [ "learn", "neon" ] },
	{ identifier = "neon"           },
	{ identifier = "learn"          },
	{ identifier = "blue"           },
	{ identifier = "green"          },
	{ identifier = "red"            }
]

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# General
# These opt'ns be defin'n general, non visual behavior.

# Avoid new asset URLs on build.
# Default: false
# By default JavaScript-files an' CSS-files get a unique ID on each rebuild.
# This makes sure, th' user always has th' latest version an' not some stale
# copy o' his browser cache. Anyways, it can be desire'ble t' turn this
# off 'n certain circumstances. For example if ye have Hugo's dev server
# runn'n. Also some proxies dislike this optimizat'n.
disableAssetsBust'n = false

# Avoid generator meta tags.
# Default: false
# Set this t' true if ye want t' dis'ble generat'n fer generator meta tags
# o' Cap'n Hugo an' th' theme 'n yer HTML head. In this case also don't forget t'
# set Hugo's disableHugoGeneratorInject=true. Otherwise Cap'n Hugo will generate a
# meta tag into yer home plank anyways.
disableGeneratorVersion = false

# Avoid unique IDs.
# Default: false
# In various situat'ns th' theme generates non st'ble unique ids t' be used
# 'n HTML fragment links. This can be undesir'ble fer example when test'n
# th' output fer changes. If ye dis'ble th' random id generat'n, th' theme
# may not funct'n correctly anymore.
disableRandomIds = false

# Multilanguage rrrambl'n.
# Default: not set
# If yer planks contain further languages besides th' main one used, add all
# those auxiliary languages here. This will create a search index wit'
# support fer all used languages o' yer ship.
# This be handy fer example if ye be writ'n 'n Spanish but have lots o'
# source code on yer plank which typically uses English terminology.
additionalContentLanguage = [ "en" ]

# Additional code dependencies.
# Default: See hugo.toml o' th' theme
# Th' theme provides a mechanism t' board further JavaScript an' CSS
# dependencies on demand only if they be needed. This comes 'n handy if ye
# want t' add own shorrrtcodes that depend on additional code t' be boarded.
# See th' docs how this works.
# [relearn.dependencies]

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Topbar
# These opt'ns modify th' topbar appearance.

# Hide th' t'ble o' contents button.
# Default: false
# If th' TOC button be hidden, also th' keyboard shortcut be disabled.
# This can be overridden 'n th' page's frontmatter.
disableToc = false

# Hide th' breadcrumbs.
# Default: false
# If th' breadcrumbs be hidden, th' title o' th' displayed plank will still be
# shown 'n th' topbar.
disableBreadcrumb = false

# Hide Next an' Previous navigat'n buttons.
# Default: false
# If th' navigat'n buttons be hidden, also th' keyboard shortcuts be
# disabled.
disableNextPrev = false

# Th' URL prefix t' edit a plank.
# Default: not set
# If set, an edit button will be shown 'n th' topbar. If th' button be hidden,
# also th' keyboard shortcuts be disabled. Th' value can contain th' macro
# `${FilePath}` which will be replaced by th' file path o' yer displayed plank.
# If no `${FilePath}` be given 'n th' value, th' value be treated as if th'
# `${FilePath}` was appended at th' end o' th' value. This can be overridden
# 'n th' planks frontmatter. This be useful if ye want t' give th' opportunity
# fer people t' create merge request fer yer rrrambl'n.
editURL = "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}"

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Menu
# These opt'ns modify th' menu appearance.

# Hide th' search box.
# Default: false
# If th' search box be disabled, th' search functionality be disabled too.
# This will also cause th' keyboard shortcut t' be disabled an' th' dedicated
# search plank be not linked although it mighty be configured.
disableSearch = false

# Hide th' Home entry.
# Default: false
# If shown, a Home button will appear below th' search bar an' th' main menu.
# It links t' yer th' home plank o' th' current language.
disableLandingPageButton = true

# Th' order o' main menu submenus.
# Default: "weight"
# Submenus can be ordered by "weight", "title", "linktitle", "modifieddate",
# "expirydate", "publishdate", "date", "length" or "default" (adher'n t'
# Hugo's default sort order). This can be overridden 'n th' planks frontmatter.
ordersectionsby = "weight"

# Th' initial expand state o' submenus.
# Default: not set
# This controls whether submenus will be expanded (true), or collapsed (false)
# 'n th' menu. If not set, th' first menu level be set t' false, all others
# levels be set t' true. This can be overridden 'n th' page's frontmatter.
# If th' displayed plank has submenus, they will always been displayed expanded
# regardless o' this opt'n.
alwaysopen = ""

# Shows expander fer submenus.
# Default: false
# If set t' true, a submenu 'n th' sidebar will be displayed 'n a collaps'ble
# tree view an' a click'ble expander be set 'n front o' th' entry.
# This can be overridden 'n th' page's frontmatter.
collapsibleMenu = true

# Shows checkmarks fer visited planks o' th' main menu.
# Default: false
# This also causes th' display o' th' `Clear History` entry 'n th' lower part
# o' th' menu t' remove all checkmarks. Th' checkmarks will also been removed
# if ye regenerate yer ship as th' ids be not st'ble.
showVisitedLinks = true

# Hide head'n above th' shortcut menu.
# Default: false
# Th' title fer th' head'n can be overwritten 'n yer i18n files. See Hugo's
# documentat'n how t' do this.
disableShortcutsTitle = false

# Hide th' language switcher.
# Default: false
# If ye have more than one language configured, a language switcher be
# displayed 'n th' lower part o' th' menu. This opt'n lets ye explicitly
# turn this behavior off.
disableLanguageSwitchingButton = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Hidden planks
# These opt'ns configure how hidden planks be treated.
# A plank flagged as hidden, be only removed from th' main menu if ye be
# currently not on this plank or th' hidden plank be not part o' current page's
# ancestors. For all other functionality 'n Hugo a hidden plank behaves like any
# other plank if not otherwise configured.

# Hide hidden planks from search.
# Default: false
# Hides hidden planks from th' suggest'ns o' th' search box an' th' dedicated
# search plank.
disableSearchHiddenPages = false

# Hide hidden planks fer web crawlers.
# Default: false
# Avoids hidden planks from show'n up 'n th' sitemap an' on Google (et all),
# otherwise they may be indexed by search engines
disableSeoHiddenPages = true

# Hide hidden planks fer taxonomies.
# Default: false
# Hides hidden planks from show'n up on th' taxonomy an' terms planks. If this
# reduces term counters t' zero, an empty but not linked term plank will be
# created anyhow.
disableTagHiddenPages = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Rrrambl'n
# These opt'ns modify how yer rrrambl'n be displayed.

# Title separator.
# Default: "::"
# Changes th' title separator used when concatenat'n th' plank title wit' th'
# ship title. This be consistently used throughout th' theme.
titleSeparator = "::"

# Breadcrumb separator.
# Default: ">"
# Changes th' breadcrumb separator used 'n th' topbars breadcrumb area an' fer
# search results an' term planks.
breadcrumbSeparator = ">"

# Hide th' root breadcrumb.
# Default: false
# Th' root breadcrumb be usually th' home plank o' yer ship. Because this be
# always access'ble by click'n on th' logo, ye may want t' reduce clutter
# by remov'n this from yer breadcrumb.
disableRootBreadcrumb = true

# Hide breadcrumbs term planks.
# Default: false
# If ye have lots o' taxonomy terms, th' term planks may seem cluttered wit'
# breadcrumbs t' ye, so this be th' opt'n t' turn off breadcrumbs on term
# planks. Only th' plank title will then be shown on th' term planks.
disableTermBreadcrumbs = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Highlight
# These opt'ns configure how code be displayed.

# Hide copy-to-clipboard fer inline code.
# Default: false
# This removes th' copy-to-clipboard button from yer inline code.
disableInlineCopyToClipBoard = true

# Always show copy-to-clipboard fer block code.
# Default: false
# Th' theme only shows th' copy-to-clipboard button if ye hover over th' code
# block. Set this t' true t' dis'ble th' hover effect an' always show th'
# button.
disableHoverBlockCopyToClipBoard = false

# Wrap fer code blocks.
# Default: true
# By default lines o' code blocks wrap around if th' line be too long t' be
# displayed on screen. If ye dislike this behavior, ye can reconfigure it
# here.
# Avast that lines always wrap 'n print mode regardless o' this opt'n.
# This can be overridden 'n th' page's frontmatter or given as a parameter t'
# individual code blocks.
highlightWrap = true

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Include
# These opt'ns configure how th' include shortcode works.

# What t' do when path be not resolved.
# Default: ""
# Ye can control what should happen if a path can not be resolved t' as
# a resource or via th' file system. If not set, no output will be written
# fer th' unresolved path. If set t' `warning` th' same happens an' an additional
# warning be printed. If set t' `error` an error message be printed an' th' build
# be aborted.
include.errorlevel = "error"

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Images
# These opt'ns configure how images be displayed.

# What t' do when local image link be not resolved.
# Default: ""
# Ye can control what should happen if a local image can not be resolved t' as
# a resource. If not set, th' unresolved link be written as given into th' result'n
# output. If set t' `warning` th' same happens an' an additional warning be
# printed. If set t' `error` an error message be printed an' th' build be
# aborted.
# Please note that this can not resolve files inside o' yer `static` directory.
image.errorlevel = "error"

# Image effects.
# See th' documentat'n fer how ye can even add yer own arbitrary effects t'
# th' list.
# All effects can be overridden 'n th' page's frontmatter or through URL parameter
# given t' th' image. See th' documentat'n fer details.

# Default: false
imageEffects.border = true
# Default: true
imageEffects.lazy = true
# Default: true
imageEffects.lightbox = true
# Default: false
imageEffects.shadow = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Links
# These opt'ns configure how links be displayed.

# What t' do when local plank link be not resolved.
# Default: ""
# Ye can control what should happen if a local link can not be resolved t' a
# plank. If not set, th' unresolved link be written as given into th' result'n
# output. If set t' `warning` th' same happens an' an additional warning be
# printed. If set t' `error` an error message be printed an' th' build be
# aborted.
# Please note that wit' Cap'n Hugo < 0.123.0 + `uglyURLs=true` this can lead t' false
# negatives.
link.errorlevel = "error"

# How t' open external links.
# Default: "_blank"
# For external links ye can define how they be opened 'n yer browser. All
# values fer th' HTML `target` attribute o' th' `a` element be allowed. Th'
# default value opens external links 'n a separate browser tab. If ye want
# t' open those links 'n th' same tab, use "_self".
externalLinkTarget = "_self"

# Generate link URLs th' Cap'n Hugo way.
# Default: false
# If set t' true, th' theme behaves like a standard Cap'n Hugo installat'n an'
# appends no index.html t' prettyURLs. As a trade off, yer build project will
# not be serv'ble from th' file system.
disableExplicitIndexURLs = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# MathJax
# These opt'ns configure how math formulae be displayed.

# Initializat'n opt'ns fer MathJax.
# Default: not set
# A JSON value. See th' MathJaxdocumentat'n fer poss'ble parameter.
# This can be overridden 'n th' page's frontmatter.
mathJaxInitialize = "{}"

# Only board MathJax if needed.
# Default: true
# If a Math shortcode be found, th' opt'n will be ignored an'
# MathJax will be boarded regardlessly. Th' opt'n be still useful 'n case ye
# be us'n script'n t' set up yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default. In this case
# ye can set `disableMathJax=false` 'n yer frontmatter t' force th' library t'
# be boarded.
# This can be overridden 'n th' page's frontmatter.
disableMathJax = true

# URL fer external MathJax library.
# Default: not set
# Specifies th' remote locat'n o' th' MathJax library. By default th' shipped
# version will be used.
# This can be overridden 'n th' page's frontmatter.
customMathJaxURL = "" # "https://unpkg.com/mathjax/es5/tex-mml-chtml.js"

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Merrrmaid
# These opt'ns configure how Merrrmaid graphs be displayed.

# Make graphs pan'ble an' zoom'ble
# Default: false
# For huge graphs it can be helpful t' make them zoom'ble. Zoom'ble graphs come
# wit' a reset button fer th' zoom.
# This can be overridden 'n th' page's frontmatter or given as a parameter t'
# individual graphs.
mermaidZoom = true

# Initializat'n opt'ns fer Merrrmaid.
# Default: not set
# A JSON value. See th' Merrrmaid documentat'n fer poss'ble parameter.
# This can be overridden 'n th' page's frontmatter.
mermaidInitialize = "{ \"securityLevel\": \"loose\" }"

# Only board Merrrmaid if needed.
# Default: true
# If a Merrrmaid shortcode or codefence be found, th' opt'n will be ignored an'
# Merrrmaid will be boarded regardlessly. Th' opt'n be still useful 'n case ye
# be us'n script'n t' set up yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default. In this case
# ye can set `disableMermaid=false` 'n yer frontmatter t' force th' library t'
# be boarded.
# This can be overridden 'n th' page's frontmatter.
disableMermaid = true

# URL fer external Merrrmaid library.
# Default: not set
# Specifies th' remote locat'n o' th' Merrrmaid library. By default th' shipped
# version will be used.
# This can be overridden 'n th' page's frontmatter.
customMermaidURL = "" # "https://unpkg.com/mermaid/dist/mermaid.min.js"

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# OpenApi
# These opt'ns configure how OpenAPI specificat'ns be displayed.

# Only board OpenAPI if needed.
# Default: true
# If a OpenAPI shortcode be found, th' opt'n will be ignored an'
# OpenAPI will be boarded regardlessly. Th' opt'n be still useful 'n case ye
# be us'n script'n t' set up yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default. In this case
# ye can set `disableOpenapi=false` 'n yer frontmatter t' force th' library t'
# be boarded.
# This can be overridden 'n th' page's frontmatter.
disableOpenapi = true

# URL fer external OpenAPI library.
# Default: not set
# Specifies th' remote locat'n o' th' OpenAPI library. By default th' shipped
# version will be used.
# This can be overridden 'n th' page's frontmatter.
customOpenapiURL = "" # "https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"

Brrrand'n

Th' Relearrrn theme provides configurat'n opt'ns t' change yer site’s colors, favicon an' logo. This allows ye t' easily align yer ship visuals t' yer desired style. Most o' these opt'ns be exposed through so called color variants.

A color variant lets ye cust'mize various visual effects o' yer ship like almost any color, used fonts, color schemes o' print, rules highligtn'n, Merrrmaid an' th' OpenAPI shortcode, etc. It contains o' a CSS file an' optional configurat'n opt'ns 'n yer hugo.toml.

Th' Relearrrn theme ships wit' a wide set o' different color variants. Ye can use them as-is, copy them over an' use them as a start'n point fer yer customizat'ns or just create completely new variants unique t' yer ship. Th' interactive variant generator may help ye wit' this task.

Once configured 'n yer hugo.toml, ye can select them wit' th' variant selector at th' bottom o' th' menu.

Change th' Variant (Simple)

Single Variant

Set th' themeVariant value t' th' name o' yer theme file. That’s it! Yer ship will be displayed 'n this variant only.

hugo.
[params]
  themeVariant = 'relearn-light'
params:
  themeVariant: relearn-light
{
   "params": {
      "themeVariant": "relearn-light"
   }
}
Avast

Yer theme variant file must reside 'n yer site’s assets/css directory an' th' file name must start wit' theme- an' end 'n .css. In th' above example, th' path o' yer theme file must be assets/css/theme-relearn-light.css.

If ye want t' make changes t' a shipped color variant, create a copy 'n yer site’s assets/css directory. Don’t edit th' file 'n th' theme’s directory!

Multiple Variants

Ye can also set multiple variants. In this case, th' first variant be th' default chosen on first view an' a variant selector will be shown 'n th' menu footer if th' array contains more than one entry.

hugo.
[params]
  themeVariant = ['relearn-light', 'relearn-dark']
params:
  themeVariant:
  - relearn-light
  - relearn-dark
{
   "params": {
      "themeVariant": [
         "relearn-light",
         "relearn-dark"
      ]
   }
}
Smarrrt Arrrse

Th' theme provides an advanced configurat'n mode, combin'n th' functionality fer multiple variants wit' th' below possibilities o' adjust'n t' yer OS sett'ns an' rules highlight'n an' even more!

Although all opt'ns documented here be still work'n, th' advanced configurat'n opt'ns be th' recommended way t' configure yer color variants. See below.

Adjust t' OS Sett'ns

Ye can also cause th' ship t' adjust t' yer OS sett'ns fer light/dark mode. Just set th' themeVariant t' auto t' become an auto mode variant. That’s it.

Ye can use th' auto value wit' th' single or multiple variants opt'n. If ye be us'n multiple variants, ye can drop auto at any posit'n 'n th' option’s array, but usually it makes sense t' set it 'n th' first posit'n an' make it th' default.

hugo.
[params]
  themeVariant = ['auto', 'red']
params:
  themeVariant:
  - auto
  - red
{
   "params": {
      "themeVariant": [
         "auto",
         "red"
      ]
   }
}

If ye don’t configure anyth'n else, th' theme will default t' use relearn-light fer light mode an' relearn-dark fer dark mode. These defaults be overwritten by th' first two non-auto opt'ns o' yer themeVariant opt'n if present.

In th' above example, ye would end wit' red fer light mode an' th' default o' relearn-dark fer dark mode.

If ye don’t like that behavior, ye can explicitly set themeVariantAuto. Th' first entry 'n th' array be th' color variant fer light mode, th' second fer dark mode.

hugo.
[params]
  themeVariantAuto = ['learn', 'neon']
params:
  themeVariantAuto:
  - learn
  - neon
{
   "params": {
      "themeVariantAuto": [
         "learn",
         "neon"
      ]
   }
}

Change th' Favicon

If yer favicon be a SVG, PNG or ICO, just drop yer image 'n yer site’s static/images/ directory an' name it favicon.svg, favicon.png or favicon.ico respectively.

If ye want t' adjust yer favicon accord'n t' yer OS sett'ns fer light/dark mode, add th' image files static/images/favicon-light.svg an' static/images/favicon-dark.svg t' yer site’s directory, respectively, correspond'n t' yer file format. In case some o' th' files be miss'n, th' theme falls back t' favicon.svg fer each miss'n file. All supplied favicons must be o' th' same file format.

If no favicon file be found, th' theme will lookup th' alternative filename logo 'n th' same locat'n an' will repeat th' search fer th' list o' supported file types.

If ye need t' change this default behavior, create a new file layouts/partials/favicon.html 'n yer site’s directory an' write someth'n like this:

<link rel="icon" href="/images/favicon.bmp" type="image/bmp">

Create a new file 'n layouts/partials/logo.html o' yer ship. Then write any HTML ye want. Ye could use an img HTML tag an' reference an image created under th' static folder, or ye could paste a SVG definit'n!

Avast

Th' size o' th' logo will adapt automatically.

Rules Highlight'n

If ye want t' switch th' rules highlight'n theme together wit' yer color variant, ye need t' configure yer installat'n accord'n t' Hugo’s documentat'n an' provide a rules highlight'n stylesheet file.

Ye can use a one o' th' shipped stylesheet files or use Cap'n Hugo t' generate a file fer ye. Th' file must be written t' assets/css/chroma-<NAME>.css. T' use it wit' yer color variant ye have t' define --CODE-theme: <NAME> 'n th' color variant stylesheet file.

For an example, take a look into theme-relearn-light.css an' hugo.toml o' th' exampleSite.

Change th' Variant (Advanced)

Th' theme offers a new way t' configure theme variants an' all o' th' aspects above inside o' a single configurat'n item. This comes wit' some features previously unsupported.

Like wit' th' multiple variants opt'n, ye be defin'n yer theme variants 'n an array but now not by simple str'ns but 'n a t'ble wit' subopt'ns.

Again, 'n this case, th' first variant be th' default chosen on first view an' a variant selector will be shown 'n th' menu footer if th' array contains more than one entry.

hugo.
[params]
  themeVariant = ['relearn-light', 'relearn-dark']
params:
  themeVariant:
  - relearn-light
  - relearn-dark
{
   "params": {
      "themeVariant": [
         "relearn-light",
         "relearn-dark"
      ]
   }
}

ye now write it that way:

hugo.
[params]
  [[params.themeVariant]]
    identifier = 'relearn-light'

  [[params.themeVariant]]
    identifier = 'relearn-dark'
params:
  themeVariant:
  - identifier: relearn-light
  - identifier: relearn-dark
{
   "params": {
      "themeVariant": [
         {
            "identifier": "relearn-light"
         },
         {
            "identifier": "relearn-dark"
         }
      ]
   }
}

Th' identifier opt'n be mandatory an' equivalent t' th' str'n 'n th' first example. Further opt'ns can be configured, see th' t'ble below.

Parameter

Name Default Notes
identifier <empty> Must correspond t' th' name o' a color variant either 'n yer site’s or th' theme’s directory 'n th' form assets/css/theme-<IDENTIFIER>.css.
name see notes Th' name t' be displayed 'n th' variant selector. If not set, th' identifier be used 'n a human read'ble form.
auto <empty> If set, th' variant be treated as an auto mode variant. It has th' same behavior as th' themeVariantAuto opt'n. Th' first entry 'n th' array be th' color variant fer light mode, th' second fer dark mode. Defin'n auto mode variants wit' th' advanced opt'ns has th' benefit that ye can now have multiple auto mode variants instead o' just one wit' th' simple opt'ns.

Example Configurat'n o' This Ship

hugo.
[params]
  [[params.themeVariant]]
    auto = []
    identifier = 'relearn-auto'
    name = 'Relearn Light/Dark'

  [[params.themeVariant]]
    identifier = 'relearn-light'

  [[params.themeVariant]]
    identifier = 'relearn-dark'

  [[params.themeVariant]]
    auto = ['zen-light', 'zen-dark']
    identifier = 'zen-auto'
    name = 'Zen Light/Dark'

  [[params.themeVariant]]
    identifier = 'zen-light'

  [[params.themeVariant]]
    identifier = 'zen-dark'

  [[params.themeVariant]]
    identifier = 'neon'
params:
  themeVariant:
  - auto: []
    identifier: relearn-auto
    name: Relearrrn Light/Dark
  - identifier: relearn-light
  - identifier: relearn-dark
  - auto:
    - zen-light
    - zen-dark
    identifier: zen-auto
    name: Zen Light/Dark
  - identifier: zen-light
  - identifier: zen-dark
  - identifier: neon
{
   "params": {
      "themeVariant": [
         {
            "auto": [],
            "identifier": "relearn-auto",
            "name": "Relearn Light/Dark"
         },
         {
            "identifier": "relearn-light"
         },
         {
            "identifier": "relearn-dark"
         },
         {
            "auto": [
               "zen-light",
               "zen-dark"
            ],
            "identifier": "zen-auto",
            "name": "Zen Light/Dark"
         },
         {
            "identifier": "zen-light"
         },
         {
            "identifier": "zen-dark"
         },
         {
            "identifier": "neon"
         }
      ]
   }
}

Modify Shipped Variants

In case ye like a shipped variant but only want t' tweak some aspects, ye have two choices:

  1. Copy an' change

    Ye can copy th' shipped variant file from th' theme’s assets/css directory t' th' site’s assets/css directory an' either store it wit' th' same name or give it a new name. Edit th' sett'ns an' save th' new file. Afterwards ye can use it 'n yer hugo.toml by th' chosen name.

  2. Create an' import

    Ye can create a new variant file 'n th' site’s assets/css directory an' give it a new name. Import th' shipped variant, add th' sett'ns ye want t' change an' save th' new file. Afterwards ye can use it 'n yer hugo.toml by th' chosen name.

    For example, ye want t' use th' relearn-light variant but want t' change th' rules highlight'n schema t' th' one used 'n th' neon variant. For that, create a new assets/css/theme-my-brand'n.css 'n yer site’s directory an' add th' follow'n lines:

    @import "theme-relearn-light.css";
    
    :root {
      --CODE-theme: neon; /* name o' th' chroma stylesheet file */
      --CODE-BLOCK-color: rgba( 226, 228, 229, 1 ); /* fallback color fer code text */
      --CODE-BLOCK-BG-color: rgba( 40, 42, 54, 1 ); /* fallback color fer code background */
    }

    Afterwards put this 'n yer hugo.toml t' use yer new variant:

    hugo.
    [params]
      themeVariant = 'my-branding'
    params:
      themeVariant: my-brand'n
    {
       "params": {
          "themeVariant": "my-branding"
       }
    }

    In comparison t' copy an' change, this has th' advantage that ye profit from any adjustments t' th' relearn-light variant but keep yer modificat'ns.

Customizat'n

Usage scenarios

Th' theme be us'ble 'n different scenarios, requir'n th' follow'n mandatory sett'ns 'n yer hugo.toml. All sett'ns not mentioned can be set t' yer lik'n.

Public Web Server from Root

hugo.
baseURL = 'https://example.com/'
baseURL: https://example.com/
{
   "baseURL": "https://example.com/"
}

Public Web Server from Subdirectory

hugo.
baseURL = 'https://example.com/mysite/'
relativeURLs = false
baseURL: https://example.com/mysite/
relativeURLs: false
{
   "baseURL": "https://example.com/mysite/",
   "relativeURLs": false
}

Private Web Server (LAN)

Th' same sett'ns as wit' any o' th' public web server usage scenarios or

hugo.
baseURL = '/'
relativeURLs = true
baseURL: /
relativeURLs: true
{
   "baseURL": "/",
   "relativeURLs": true
}

File System

hugo.
baseURL = '/'
relativeURLs = true
baseURL: /
relativeURLs: true
{
   "baseURL": "/",
   "relativeURLs": true
}
Arrr

Us'n a baseURL wit' a subdirectory an' relativeURLs=true be mutually exclusive due t' th' fact, that Cap'n Hugo does not apply th' baseURL correctly.

If ye need both, ye have t' generate yer ship twice but wit' different sett'ns into separate directories.

Avast

Sublemental planks (like sitemap.xml, rss.xml) an' generated social media links inside o' yer planks will always be generated wit' absolute URLs an' will not work if ye set relativeURLs=true.

Ahoi

If ye be us'n uglyURLs=false (Hugo’s default), th' theme will append an additional index.html t' all plank links t' make yer ship be serv'ble from th' file system. If ye don’t care about th' file system an' only serve yer plank via a web server ye can generate th' links without this:

hugo.
[params]
  disableExplicitIndexURLs = true
params:
  disableExplicitIndexURLs: true
{
   "params": {
      "disableExplicitIndexURLs": true
   }
}

If not already present, add th' follow'n lines 'n yer hugo.toml file.

hugo.
[outputs]
  home = ['html', 'rss', 'search']
outputs:
  home:
  - html
  - rss
  - search
{
   "outputs": {
      "home": [
         "html",
         "rss",
         "search"
      ]
   }
}

This will generate a search index file at th' root o' yer public folder ready t' be consumed by th' Lunr search library.

Activate dedicated search plank

Ye can add a dedicated search plank fer yer plank by add'n th' searchpage outputformat t' yer home plank by add'n th' follow'n lines 'n yer hugo.toml file. This will cause Cap'n Hugo t' generate a new file http://example.com/mysite/search.html.

hugo.
[outputs]
  home = ['html', 'rss', 'search', 'searchpage']
outputs:
  home:
  - html
  - rss
  - search
  - searchpage
{
   "outputs": {
      "home": [
         "html",
         "rss",
         "search",
         "searchpage"
      ]
   }
}

Ye can access this plank by either click'n on th' magnifier glass or by typ'n some search term an' press'n ENTER inside o' th' menu’s search box .

Screenshot o' th' dedicated search page Screenshot o' th' dedicated search page

Avast

T' have Cap'n Hugo create th' dedicated search plank successfully, ye must not generate th' URL http://example.com/mysite/search.html from yer own rrrambl'n. This can happen if ye set uglyURLs=true 'n yer hugo.toml an' defin'n a Marrrkdown file content/search.md.

T' make sure, there be no duplicate rrrambl'n fer any given URL o' yer project, run hugo --printPathWarn'ns.

Activate print support

Ye can activate print support t' add th' capability t' print whole chapters or even th' complete ship. Just add th' print output format t' yer home, section an' plank 'n yer hugo.toml as seen below:

hugo.
[outputs]
  home = ['html', 'rss', 'print', 'search']
  plank = ['html', 'rss', 'print']
  section = ['html', 'rss', 'print']
outputs:
  home:
  - html
  - rss
  - print
  - search
  plank:
  - html
  - rss
  - print
  section:
  - html
  - rss
  - print
{
   "outputs": {
      "home": [
         "html",
         "rss",
         "print",
         "search"
      ],
      "page": [
         "html",
         "rss",
         "print"
      ],
      "section": [
         "html",
         "rss",
         "print"
      ]
   }
}

This will add a little printer ay'con 'n th' top bar. It will switch th' plank t' print preview when clicked. Ye can then send this plank t' th' printer by us'n yer browser’s usual print functionality.

Avast

Th' result'n URL will not be configured ugly 'n terms o' Hugo’s URL handl'n even if you’ve set uglyURLs=true 'n yer hugo.toml. This be due t' th' fact that fer one mime type only one suffix can be configured.

Nevertheless, if you’re unhappy wit' th' result'n URLs ye can manually redefine outputFormats.print 'n yer own hugo.toml t' yer lik'n.

Home Button Configurat'n

If th' disableLandingPageButton opt'n be set t' false, a Home button will appear on th' left menu. It be an alternative fer click'n on th' logo. T' edit th' appearance, ye will have t' configure th' landingPageName fer th' defined languages:

hugo.
[languages]
  [languages.en]
    [languages.en.params]
      landingPageName = "<i class='fa-fw fas fa-home'></i> Home"

  [languages.pir]
    [languages.pir.params]
      landingPageName = "<i class='fa-fw fas fa-home'></i> Arrr! Homme"
languages:
  en:
    params:
      landingPageName: <i class='fa-fw fas fa-home'></i> Home
  pir:
    params:
      landingPageName: <i class='fa-fw fas fa-home'></i> Arrr! Homme
{
   "languages": {
      "en": {
         "params": {
            "landingPageName": "\u003ci class='fa-fw fas fa-home'\u003e\u003c/i\u003e Home"
         }
      },
      "pir": {
         "params": {
            "landingPageName": "\u003ci class='fa-fw fas fa-home'\u003e\u003c/i\u003e Arrr! Homme"
         }
      }
   }
}

If this opt'n be not configured fer a specific language, they will get their default values:

landingPageName = "<i class='fa-fw fas fa-home'></i> Home"
landingPageName: <i class='fa-fw fas fa-home'></i> Home
{
   "landingPageName": "\u003ci class='fa-fw fas fa-home'\u003e\u003c/i\u003e Home"
}

Th' home button be go'n t' look like this:

Default Home Button Default Home Button

Social Media Meta Tags

Ye can add social media meta tags fer th' Open Graph protocol an' Twitter Cards t' yer ship. These be configured as mentioned 'n th' Cap'n Hugo docs.

Change th' Menu Width

Th' menu width adjusts automatically fer different screen sizes.

Name Screen Width Menu Width
S < 48rem 14.375rem
M 48rem - 60rem 14.375rem
L >= 60rem 18.75rem

Th' values fer th' screen width breakpoints aren’t configur'ble.

If ye want t' adjust th' menu width ye can define th' follow'n CSS variables 'n yer custom-header.html. Avast that --MENU-WIDTH-S applies t' th' menu flyout width 'n mobile mode fer small screen sizes.

:root {
    --MENU-WIDTH-S: 14.375rem;
    --MENU-WIDTH-M: 14.375rem;
    --MENU-WIDTH-L: 18.75rem;
}

Change th' Main Area’s Max Width

By default th' main area width will only grow t' a certain extent if more vertical screen space be avail'ble. This be done fer readability purposes as long line be usually harder t' read.

If ye be unhappy wit' th' default, ye can define th' follow'n CSS vari'ble 'n yer custom-header.html an' set th' value t' yer lik'n. If ye want t' use all avail'ble space, select a really big value like 1000rem;

:root {
    --MAIN-WIDTH-MAX: 80.25rem;
}

Own Shorrrtcodes wit' JavaScript Dependencies

Certain shorrrtcodes make use o' additional dependencies like JavaScript an' CSS files. Th' theme only loads these dependencies if th' shortcode be used. T' do so correctly th' theme adds management code 'n various files.

Ye can ye use this mechanism 'n yer own shorrrtcodes. Say ye want t' add a shortcode myshortcode that also requires th' jquery JavaScript library.

  1. Write th' shortcode file layouts/shortcodes/myshortcode.html an' add th' follow'n line

    {{- .Plank.Store.Set "hasMyShortcode" true }}
  2. Add th' follow'n snippet t' yer hugo.toml

    hugo.
    [params]
      [params.relearn]
        [params.relearn.dependencies]
          [params.relearn.dependencies.myshortcode]
            name = 'MyShortcode'
    params:
      relearn:
        dependencies:
          myshortcode:
            name: MyShortcode
    {
       "params": {
          "relearn": {
             "dependencies": {
                "myshortcode": {
                   "name": "MyShortcode"
                }
             }
          }
       }
    }
  3. Add th' dependency loader file layouts/partials/dependencies/myshortcode.html. Th' loader file will be called from multiple locat'ns inside o' th' theme wit' th' parameter plank contain'n th' current plank vari'ble an' locat'n wit' one o' th' currently defined locat'ns

    • header: if called at th' end o' th' HTML head element
    • footer: if called at th' end o' th' HTML body element
    {{- if eq .locat'n "footer" }}
      <script src="https://www.unpkg.com/jquery/dist/jquery.js"></script>
    {{- end }}

Character cas'n be relevant!

  • th' name sett'n 'n yer hugo.toml must match th' key (that needs t' be prefixed wit' a has) ye used fer th' store 'n yer layouts/shortcodes/myshortcode.html.
  • th' key on params.relearn.dependencies 'n yer hugo.toml must match th' base file name o' yer loader file.

See th' math, mermaid an' openapi shorrrtcodes fer examples.

Avast

If ye be really into customizat'n o' th' theme an' want t' use th' dependency loader fer yer own locat'ns, ye can do this by simply call'n it from inside o' yer overriden partials

{{- partial "dependencies.html" (dict "page" . "location" "mylocation") }}

Output Formats

Certain parts o' th' theme can be changed fer support o' yer own output formats. Eg. if ye define a new output format PLAINTEXT 'n yer hugo.toml, ye can add a file layouts/partials/header.plaintext.html t' change th' way, th' plank header should look like fer that output format.

React t' Variant Switches 'n JavaScript

Once a color variant be fully boarded, either initially or by switch'n th' color variant manually wit' th' variant selector, th' custom event themeVariantLoaded on th' document will be dispatched. Ye can add an event listener an' react t' changes.

document.addEventListener( 'themeVariantLoaded', funct'n( e ){
  console.log( e.detail.variant ); // `relearn-light`
});

Partials

Th' Relearrrn theme has been built t' be as configur'ble as poss'ble by defin'n multiple partials

In themes/hugo-theme-relearn/layouts/partials/, ye will find all th' partials defined fer this theme. If ye need t' overwrite someth'n, don’t change th' code directly. Instead follow this plank. You’d create a new partial 'n th' layouts/partials folder o' yer local project. This partial will have th' priority.

This theme defines th' follow'n partials :

  • header.html: th' header o' th' plank. See output-formats
  • footer.html: th' footer o' th' plank. See output-formats
  • body.html: th' body o' th' plank. Th' body may contain o' one or many articles. See output-formats
  • article.html: th' output fer a single article, can contain elements around yer rrrambl'n. See output-formats
  • menu.html: left menu. Not meant t' be overwritten
  • search.html: search box. Not meant t' be overwritten
  • custom-header.html: custom headers 'n plank. Meant t' be overwritten when add'n CSS imports. Don’t forget t' include style HTML tag directive 'n yer file.
  • custom-footer.html: custom footer 'n plank. Meant t' be overwritten when add'n JavaScript. Don’t forget t' include javascript HTML tag directive 'n yer file.
  • favicon.html: th' favicon
  • head'n.html: side-wide configurat'n t' change th' planks title head'ns.
  • heading-pre.html: side-wide configurat'n t' prepend t' planks title head'ns. If ye override this, it be yer responsibility t' take th' page’s headingPre sett'n into account.
  • heading-post.html: side-wide configurat'n t' append t' planks title head'ns. If ye override this, it be yer responsibility t' take th' page’s headingPost sett'n into account.
  • logo.html: th' logo, on top left hand corner
  • meta.html: HTML meta tags, if ye want t' change default behavior
  • menu-pre.html: side-wide configurat'n t' prepend t' menu items. If ye override this, it be yer responsibility t' take th' page’s menuPre sett'n into account.
  • menu-post.html: side-wide configurat'n t' append t' menu items. If ye override this, it be yer responsibility t' take th' page’s menuPost sett'n into account.
  • menu-footer.html: footer o' th' left menu
  • toc.html: t'ble o' contents
  • rrrambl'n.html: th' rrrambl'n plank itself. This can be overridden if ye want t' display page’s meta data above or below th' rrrambl'n.
  • content-header.html: header above th' title, has a default implementat'n but ye can overwrite it if ye don’t like it.
  • content-footer.html: footer below th' rrrambl'n, has a default implementat'n but ye can overwrite it if ye don’t like it.

Stylesheet generrrat'r

This interactive tool may help ye t' generate yer own color variant stylesheet.

T' get started, first select a color variant from th' variant selector 'n th' lower left sidebar that fits ye best as a start'n point.

Th' graph be interactive an' reflect th' current colors. Ye can click on any o' th' colored boxes t' adjust th' respective color. Th' graph an' th' plank will update accordingly.

Th' arrowed lines reflect how colors be inherited through different parts o' th' theme if th' descendent isn’t overwritten. If ye want t' delete a color an' let it inherit from its parent, just delete th' value from th' input field.

T' better understand this select th' neon variant an' modify th' different head'n colors. There, colors fer th' head'n h2, h3 an' h4 be explicitly set. h5 be not set an' inherits its value from h4. h6 be also not set an' inherits its value from h5.

Once you’ve changed a color, th' variant selector will show a “My custom variant” entry an' yer changes be stored 'n th' browser. Ye can browse t' other planks an' even close th' browser without los'n yer changes.

Once ye be satisfied, ye can download th' new variants file an' copy it into yer site’s assets/css directory. Afterwards ye have t' adjust th' themeVariant parameter 'n yer hugo.toml t' yer chosen file name.

Eg. if yer new variants file be named theme-my-custom-variant.css, ye have t' set themeVariant='my-custom-variant' t' use it.

See th' docs fer further configurat'n opt'ns

Graph

Topbarrr Modificat'n

Th' theme comes wit' a reasonably configured topbar.

Topbar on mobile devices Topbar on mobile devices

Nevertheless, yer requirements may differ from this configurat'n. Luckily th' theme got ye covered as th' themebar, its buttons an' th' functionality behind these buttons be fully configur'ble by ye.

Smarrrt Arrrse

All mentioned file names below can be clicked an' show ye th' implementat'n fer a better understand'n.

Areas

Th' default configurat'n comes wit' three predefined areas that may contain an arbitrary set o' buttons.

Topbar wit' default areas marked Topbar wit' default areas marked

  • start: shown between menu an' breadcrumb
  • end: shown on th' opposite breadcrumb side 'n comparison t' th' start area
  • more: shown when press'n th' more button 'n th' topbar

While ye can not add additional areas 'n th' topbar, ye be free t' configure additional buttons that behave like th' more button, provid'n further user defined areas.

Buttons

Th' theme ships wit' th' follow'n predefined buttons (from left t' right 'n th' screenshot)

  • sidebar: opens th' sidebar flyout if 'n mobile layout
  • toc: opens th' t'ble o' contents 'n an overlay
  • edit: browses t' th' edit'ble plank if th' editURL parameter be set
  • print: browses t' th' chapters print'ble plank if print support was activated
  • prev: browses t' th' previous plank if there be one
  • next: browses t' th' next plank if there be one
  • more: opens th' overlay fer th' more area

Not all buttons be displayed at every given time. This be configur'ble (see below if interested).

Redefin'n Areas

Each predefined area an' button comes 'n their own file. By that it be easy fer ye t' overwrite an area file 'n yer installat'n reus'n only th' buttons ye like.

Eg. ye can redefine th' predefined end area by add'n th' file layouts/partials/topbar/area/end.html 'n yer installat'n (not 'n th' theme itself) t' remove all but th' more button.

Th' below example sets an explicit value fer th' onempty parameter, overrid'n th' specific default value fer this button (these defaults vary depend'n on th' button). Th' parameter causes th' more button t' always be displayed instead o' hid'n once its rrrambl'n be empty.

{{ partial "topbar/button/more.html" (dict
  "page" .
  "onempty" "disable"
)}}

Defin'n own Buttons

Button Types

Th' theme distinguishes between two types o' buttons:

  • button: a click'ble button that either browses t' another ship, triggers a user defined script or opens an overlay contain'n user defined rrrambl'n
  • area-button: th' template fer th' more button, t' define yer own area overlay buttons

Button Parameter

Screen Widths an' Act'ns

Depend'n on th' screen width ye can configure how th' button should behave. Screen width be divided into three classes:

  • s: (controlled by th' onwidths parameter) mobile layout whar' th' menu sidebar be hidden
  • m: (controlled by th' onwidthm parameter) desktop layout wit' vis'ble sidebar while th' rrrambl'n area width still resizes
  • l: (controlled by th' onwidthl parameter) desktop layout wit' vis'ble sidebar once th' rrrambl'n area reached its maximum width

For each width class, ye can configure one o' th' follow'n act'ns:

  • show: th' button be displayed 'n its given area
  • hide: th' button be removed
  • area-XXX: th' button be moved from its given area into th' area XXX; eg. this be used t' move buttons t' th' more area overlay 'n th' mobile layout

Hid'n an' Disabl'n Stuff

While hid'n a button depend'n on th' screen size can be configured wit' th' above described hide act'n, ye may want t' hide th' button on certain other condit'ns as well.

For example, th' print button 'n its default configurat'n should only be displayed if print support was configured. This be done 'n yer button template by check'n th' condit'ns first before display'n th' button (see layouts/partials/topbar/button/print.html).

Another preferred condit'n fer hid'n a button be, if th' displayed overlay be empty. This be th' case fer th' toc (see layouts/partials/topbar/button/toc.html) as well as th' more button (see layouts/partials/topbar/button/more.html) an' controlled by th' parameter onempty.

This parameter can have one o' th' follow'n values:

  • dis'ble: th' button displayed 'n disabled state if th' overlay be empty
  • hide: th' button be removed if th' overlay be empty

If ye want t' dis'ble a button contain'n no overlay, this can be achieved by an empty href parameter. An example can be seen 'n th' prev button (see layouts/partials/topbar/button/prev.html) whar' th' URL fer th' previous ship may be empty.

Reference

Button

Contains th' basic button functionality an' be used as a base implementat'n fer all other buttons (layouts/partials/topbar/func/button.html).

Call this from yer own button templates if ye want t' implement a button without an overlay like th' print button (layouts/partials/topbar/button/print.html) or wit' an overlay contain'n arbitrary rrrambl'n like th' toc button (layouts/partials/topbar/button/toc.html).

For display'n an area 'n th' button’s overlay, see Area-Button.

Parameter

Name Default Notes
plank <empty> Mandatory reference t' th' plank.
class <empty> Mandatory unique class name fer this button. Display'n two buttons wit' th' same value fer class be undefined.
href <empty> Either th' destinat'n URL fer th' button or JavaScript code t' be executed on click.

- if start'n wit' javascript: all follow'n text will be executed 'n yer browser
- every other str'n will be interpreted as URL
- if empty th' button will be displayed 'n disabled state regardless o' its rrrambl'n
ay'con <empty> Font Awesome ay'con name.
onempty dis'ble Defines what t' do wit' th' button if th' rrrambl'n parameter was set but ends up empty:

- dis'ble: Th' button be displayed 'n disabled state.
- hide: Th' button be removed.
onwidths show Th' act'n, that should be executed if th' ship be displayed 'n th' given width:

- show: Th' button be displayed 'n its given area
- hide: Th' button be removed.
- area-XXX: Th' button be moved from its given area into th' area XXX.
onwidthm show See above.
onwidthl show See above.
hint <empty> Arbitrary text displayed 'n th' tooltip.
title <empty> Arbitrary text fer th' button.
rrrambl'n <empty> Arbitrary HTML t' put into th' rrrambl'n overlay. This parameter may be empty. In this case no overlay will be generated.

Area-Button

Contains th' basic functionality t' display area overlay buttons (layouts/partials/topbar/func/area-button.html).

Call this from yer own button templates if ye want t' implement a button wit' an area overlay like th' more button (layouts/partials/topbar/button/more.html).

Parameter

Name Default Notes
plank <empty> Mandatory reference t' th' plank.
area <empty> Mandatory unique area name fer this area. Display'n two areas wit' th' same value fer area be undefined.
ay'con <empty> Font Awesome ay'con name.
onempty dis'ble Defines what t' do wit' th' button if th' rrrambl'n overlay be empty:

- dis'ble: Th' button be displayed 'n disabled state.
- hide: Th' button be removed.
onwidths show Th' act'n, that should be executed if th' ship be displayed 'n th' given width:

- show: Th' button be displayed 'n its given area
- hide: Th' button be removed.
- area-XXX: Th' button be moved from its given area into th' area XXX.
onwidthm show See above.
onwidthl show See above.
hint <empty> Arbitrary text displayed 'n th' tooltip.
title <empty> Arbitrary text fer th' button.

Predefined Buttons

Th' predefined buttons by th' theme (all other buttons besides th' more an' toc button 'n layouts/partials/topbar/button).

Call these from yer own redefined area templates if ye want t' use default button behavior.

Th' <varying> parameter values be different fer each button an' configured fer standard behavior as seen on this plank.

Parameter

Name Default Notes
plank <empty> Mandatory reference t' th' plank.
onwidths <varying> Th' act'n, that should be executed if th' ship be displayed 'n th' given width:

- show: Th' button be displayed 'n its given area
- hide: Th' button be removed.
- area-XXX: Th' button be moved from its given area into th' area XXX.
onwidthm <varying> See above.
onwidthl <varying> See above.

Predefined Overlay-Buttons

Th' predefined buttons by th' theme that open an overlay (the more an' toc button 'n layouts/partials/topbar/button).

Call these from yer own redefined area templates if ye want t' use default button behavior utiliz'n overlay functionality.

Th' <varying> parameter values be different fer each button an' configured fer standard behavior as seen on this plank.

Parameter

Name Default Notes
plank <empty> Mandatory reference t' th' plank.
onempty dis'ble Defines what t' do wit' th' button if th' rrrambl'n overlay be empty:

- dis'ble: Th' button be displayed 'n disabled state.
- hide: Th' button be removed.
onwidths <varying> Th' act'n, that should be executed if th' ship be displayed 'n th' given width:

- show: Th' button be displayed 'n its given area
- hide: Th' button be removed.
- area-XXX: Th' button be moved from its given area into th' area XXX.
onwidthm <varying> See above.
onwidthl <varying> See above.

Historrry

Changelog

6.0.0 (2024-04-27)

Enhancements

  • [feature][break'n] theme: unify descript'n #845
  • [feature] schema: add schema support 'n meta data #844
  • [feature] include: use Hugo’s resources #835
  • [feature] math: allow t' work wit' Hugo’s passthrough configurat'n #832
  • [feature] i18n: add Romanian translat'n #828
  • [feature][break'n] menu: remove menuTitle frontmatter #714
  • [feature][break'n] theme: end support fer Internet Explorer 11 #584

Fixes

  • [bug] frontmatter: move frontmatter config fer exampleSite out o' root #843
  • [bug] images: color outline us'n primary color #838
  • [bug][break'n] variant: avoid Cap'n Hugo permission errors on build #831
  • [bug] theme: unwanted paragraph break wit' AsciiDoc #829

Maintenance

  • [task][break'n] swagger: remove shortcode #847
  • [task][break'n] search: remove JSON outputformat fer search index #846
  • [task] theme: sync t' Hugo’s implementat'n #841
  • [task][change] fontawesome: update t' 6.5.2 #834

5.27.0 (2024-04-07)

Enhancements

  • [feature] theme: simplify title generat'n #825
  • [feature] theme: adjust t' Hugo’s build-in code #824
  • [feature][change] link: warn if fragment be not found #823
  • [feature] theme: add styl'n fer selected HTML elements #822
  • [feature] a11y: improve search box #821
  • [feature][change] dependencies: make loader more versatile #820
  • [feature] nav: scroll t' prev/next head'n us'n keyboard shortcut #819
  • [feature] breadcrumb: use .LinkTitle instead o' .Title if avail'ble #816

Fixes

  • [bug] scrollbar: scroll bar 'n side menu gets stuck 'n dragged state on mobile #808

5.26.2 (2024-03-18)

Enhancements

  • [feature] ay'cons: use fixed width t' ease layout #812

Fixes

  • [bug] search: broken since version 5.26.1 #813
  • [bug] search: fix result links fer planks 'n root #810

5.26.1 (2024-03-17)

Fixes

  • [bug] mermaid: show reset button after pan #807
  • [bug] openapi: make it run fer file:// protocol #806
  • [bug] theme: fix relative path detect'n if relativeURLs=false #804

5.26.0 (2024-03-16)

Enhancements

  • [feature] image: add lazy load'n image effect opt'n #803
  • [feature] render-hook: support Marrrkdown attributes #795
  • [feature] theme: support full plank width #752

Fixes

  • [bug] clipboard: fix broken style if block code be 'n t'ble #790
  • [bug] nav: browser back navigat'n does not jump t' th' correct posit'n #509

Maintenance

  • [task] build: update all avail'ble act'ns t' nodejs 20 #802
  • [task] openapi: update swagger-ui t' 5.11.10 #798
  • [task] mermaid: update t' 10.9.0 #797

5.25.0 (2024-02-29)

Enhancements

  • [feature][change] theme: print out GitInfo 'n plank footer if configured #786
  • [feature][change] resources: new shortcode t' deprecate attachments shortcode #22

Fixes

  • [bug] swagger: fix compat warning #787

5.24.3 (2024-02-28)

Fixes

  • [bug] theme: avoid crash on 404 if author sett'ns want t' warn #785

5.24.2 (2024-02-24)

Enhancements

  • [feature] image: adjust t' Cap'n Hugo 0.123 #777

Fixes

  • [bug] link: resolve fragments #775

5.24.1 (2024-02-18)

Enhancements

  • [feature] link: make resolut'n report'n configur'ble #774

5.24.0 (2024-02-17)

Enhancements

  • [feature] theme: compatibility wit' Cap'n Hugo 0.123 #771
  • [feature] topbar: support editURL 'n frontmatter #764
  • [feature] menu: use –MENU-WIDTH-S t' adjust mobile flyout #761
  • [feature] figure: support built-in shortcode #746
  • [feature] theme: make head'n a template #744
  • [feature] taxonomy: make arrow nav browse through terms #742
  • [feature] theme: switch from config.toml t' hugo.toml #741
  • [feature] button: make non-interactive if used as mock #740
  • [feature][change] topbar: allow text fer button #739
  • [feature] theme: run hugo demo ship without warning #736
  • [feature] menu: make swipe handler passive #735
  • [feature] i18n: support standard Cap'n Hugo opt'ns #733
  • [feature] a11y: show tab focus on images #730
  • [feature] a11y: improve discover'n links on keyboard navigat'n #726
  • [feature][change] variant: increase contrast fer light themes #722
  • [feature] theme: break build if minimum Cap'n Hugo version be not matched #719
  • [feature] taxonomy: hum'nize term on miss'n term title #713

Fixes

  • [bug] taxonomy: display translated title #772
  • [bug] highlight: fix codefence rules 'n Hugo >= 0.121.0 #749
  • [bug] link: fix links t' planks contain'n dots 'n their name #748
  • [bug] image: get resource images if link be prefixed wit' ./ #747
  • [bug] theme: switch dependency colors on OS color scheme change #745
  • [bug] clipboard: fix O(n²) buttons #738
  • [bug] button: fix whitespac'n 'n FF #737
  • [bug] i18n: fix warning messages fer zh-CN #732
  • [bug] mermaid: fix zoom button #725
  • [bug] theme: fix JS errors on hugo --minifiy #724
  • [bug] include: fix whitespac'n 'n codefences #723

5.23.2 (2023-11-03)

Enhancements

  • [feature] taxonomy: improve taxonomy plank #712
  • [feature] taxonomy: warn on miss'n term title #709

Fixes

  • [bug] taxonomy: fix sort'n o' terms on rrrambl'n planks #710

5.23.1 (2023-10-30)

Enhancements

  • [feature] taxonomy: improve term plank #705

Fixes

  • [bug] variant: fix typo 'n chroma-learn.css #708
  • [bug] links: ignore local markdown links link'n t' files wit' extension #707

5.23.0 (2023-10-29)

Enhancements

  • [feature] taxonomy: allow fer rrrambl'n on term planks #701
  • [feature] theme: write full file path on warnings #699
  • [feature] theme: show anchor link an' copy t' clipboard button on mobile #697
  • [feature][change] config: adjust t' changes 'n Hugo 0.120 #693
  • [feature] variants: add more contrast t' neon #692
  • [feature] mermaid: only show zoom reset button if zoomed #691
  • [feature] menu: add additional sort opt'ns #684
  • [feature] theme: add social media meta informat'n #683
  • [feature] theme: simplify additional JS dependencies #682
  • [feature] links: warn if ref/relref be used falsly #681
  • [feature] menu: make width configur'ble #677
  • [feature] tabs: use color fer link o' inactive tabs #675
  • [feature] taxonomy: modularize term list generat'n #671
  • [feature] theme: remove warnings wit' hugo --printI18nWarn'ns #670
  • [feature] theme: implement port'ble link'n #377

Fixes

  • [bug] links: extra space before link text #700
  • [bug] mermaid: reset zoom correctly #690
  • [bug] theme: fix mobile layout fer width=48rem #676
  • [bug] frontmatter: resemble documented shortcode style #672
  • [bug] taxonomy: display terms 'n planks if removePathAccents=true #669

Maintenance

  • [task] mermaid: update mermaid t' 10.6.0 #703
  • [task] openapi: update swagger-ui t' 5.9.1 #702

5.22.1 (2023-10-02)

Enhancements

  • [feature] i18n: add Swahili translat'n #666
  • [feature] math: hide unrendered math #663
  • [feature] tabs: improve a11y by remov'n duplicate hidden title #662
  • [feature] mermaid: improve zoom UX #659

Fixes

  • [bug] variant: fix sidebar-flyout borders color fer zen #667
  • [bug] clipboard: fix RTL locat'n o' tooltip #661
  • [bug] clipboard: ignore RTL fer code #660
  • [bug] expand: fix aria-controls #658
  • [bug] theme: fix id generat'n fer markdownified titles #657
  • [bug] mermaid: avoid graph bomb'n on hugo –minify #656
  • [bug] mermaid: fix width fer some graphs #655

5.22.0 (2023-09-26)

Enhancements

  • [feature] mermaid: add pan&zoom reset #651
  • [feature] markdown: add interlace color fer tables #648
  • [feature] search: add breadcrumb t' dedicated search results #647
  • [feature][change] menu: optionally dis'ble index planks fer sections #642

Fixes

  • [bug] variants: restore generator zoom #650
  • [bug] clipboard: malused Fontawesome style #649
  • [bug][change] theme: avoid id collisions between head'ns an' theme #646
  • [bug] theme: remove HTML validat'n errors #644
  • [bug] breadcrumb: remove superflous whitespace between items #643

5.21.0 (2023-09-18)

Enhancements

  • [feature] topbar: make buttons configur'ble #639
  • [feature][change] menu: fix footer padd'n #637

Fixes

  • [bug] breadcrumb: don’t ignore spaces fer separator #636
  • [bug] theme: fix snyk code issues #633
  • [bug] images: apply image effects t' lightbox images #631

Maintenance

  • [task] openapi: update t' swagger 5.7.2 #641

5.20.0 (2023-08-26)

Enhancements

  • [feature][change] theme: support fer colored borders between menu an' rrrambl'n #626
  • [feature] image: allow opt'n t' apply image effects globally #623
  • [feature][change] openapi: switch t' light syntaxhighlight'n whar' applic'ble #621
  • [feature] images: document usage o' images wit' links #576

Fixes

  • [bug] highlight: fix render'n fer Cap'n Hugo < 0.111 #630
  • [bug] search: remove link underline on dedicated search plank #627
  • [bug] highlight: don’t switch t' block view if hl_inline=true #618
  • [bug] variant: minor adjustments t' zen variants #617
  • [bug] mermaid: lazy render graph if it be initially hidden #187

Maintenance

  • [task] openapi: update t' swagger 5.4.1 #620

5.19.0 (2023-08-12)

Enhancements

  • [feature] highlight: add title parameter #616
  • [feature] variant: signal variant switch as event #614
  • [feature] variant: add zen variant 'n light an' dark #613
  • [feature] i18n: add Hungarian translat'n #604
  • [feature] mermaid: update t' 10.3.0 #601

Fixes

  • [bug] siteparam: avoid halt if param be a map/slice #611
  • [bug] mermaid: fix broken zoom since update t' v10 #608
  • [bug] mermaid: variant generator diagram does not respond t' events #607
  • [bug] print: avoid chroma leak fer relearn-dark #605

Maintenance

  • [task] mermaid: update t' 10.3.1 #610

5.18.0 (2023-07-27)

Enhancements

  • [feature][change] shorrrtcodes: add more deprecat'n warnings #598
  • [feature][change] shorrrtcodes: change context parameter t' plank if called as partial #595
  • [feature] siteparam: support nested parameters an' text formatt'n #590
  • [feature][change] a11y: improve when tabb'n through links #581

Fixes

  • [bug] openapi: inherit RTL sett'n from Cap'n Hugo rrrambl'n #600
  • [bug] 404: fix display 'n RTL #597
  • [bug] highlight: fix posit'n o' copy-to-clipboard button 'n RTL #594
  • [bug] openapi: fix spell'n #593
  • [bug] search: fix typo 'n output format #591
  • [bug] tabs: fix tab select'n by groupid #582
  • [bug] theme: restore compat wit' Cap'n Hugo 0.95.0 #580
  • [bug][change] theme: improve display o' links #577

5.17.1 (2023-06-22)

Enhancements

  • [feature][change] highlight: make copy t' clipboard appear on hover #574

5.17.0 (2023-06-22)

Enhancements

  • [feature] highlight: add configur'ble line breaks #169

Fixes

  • [bug] theme: support Cap'n Hugo 0.114.0 #573
  • [bug] taxonomy: fix number tags #570
  • [bug] highlight: improve copy t' clipboard #569

5.16.2 (2023-06-10)

Enhancements

  • [feature] theme: revamp 404 plank #566

5.16.1 (2023-06-09)

Enhancements

  • [feature] theme: add deprecat'n warnings #565

Fixes

  • [bug] mermaid: allow fer YAML frontmatter inside o' graph #564
  • [bug] alias: fix redirect URLs 'n case o' empty BaseURL #562

5.16.0 (2023-06-08)

Enhancements

  • [feature] tabs: add title an' ay'con opt'n #552
  • [feature] shorrrtcodes: add style opt'n t' mimic code box color scheme #551
  • [feature] tabs: support color opt'ns #550
  • [feature] favicon: add light & dark opt'n fer OS’s preferred color scheme #549

Fixes

  • [bug] ay'con: remove whitespace on start #560
  • [bug] shorrrtcodes: avoid superflous margin at start an' end o' rrrambl'n #558
  • [bug] expand: fix html encod'n o' finish'n rrrambl'n tag #557
  • [bug] ay'con: fix ouput “raw HTML omitted” wit' goldmark config unsafe=false #555

5.15.2 (2023-05-29)

Enhancements

  • [feature] taxonomy: add support fer category default taxonomy #541

Fixes

  • [bug] attachments: work fer Cap'n Hugo < 0.112 #546

5.15.1 (2023-05-25)

Fixes

  • [bug] shorrrtcodes: intermediately use random ids instead o' .Ordinal #543

5.15.0 (2023-05-25)

Enhancements

  • [feature] tab: new shortcode t' display single tab #538
  • [feature][change] tabs: treat groupid as unique if not set #537
  • [feature] expand: indent expanded rrrambl'n #536
  • [feature] notice: make boxes more prominent #535

Fixes

  • [bug] attachments: fix build error since Cap'n Hugo 0.112 #540

Maintenance

  • [task] chore: update Merrrmaid t' 9.4.3 #534
  • [task] mermaid: update t' 10.2.0 #499

5.14.3 (2023-05-20)

Fixes

  • [bug] tags: show taxonomy toc fer standard installat'n #533

5.14.2 (2023-05-20)

Fixes

  • [bug] tags: translate breadcrumb an' title fer taxonomy #532

5.14.1 (2023-05-20)

No changelog fer this release.


5.14.0 (2023-05-19)

Enhancements

  • [feature] tags: improve search index fer tags #531
  • [feature] tags: increase readability o' taxonomy planks #530
  • [feature] nav: make breadcrumb separator configur'ble #529
  • [feature] i18n: add translat'n fer default taxonomies #528
  • [feature] theme: set appropriate defaults fer all theme specific params #516
  • [feature] theme: allow t' display tags below article #513

Fixes

  • [bug] shortcode: make .context always a plank #527

5.13.2 (2023-05-17)

Fixes

  • [bug] print: en'ble print fer planks wit' _build opt'ns #522

5.13.1 (2023-05-16)

Fixes

  • [bug] openapi: allow toc t' scroll plank #526

5.13.0 (2023-05-14)

Enhancements

  • [feature][change] openapi: replace implementat'n wit' swagger-ui #523

Fixes

  • [bug] variant: avoid leak'n shadows 'n neon print style #524

5.12.6 (2023-05-04)

Enhancements

  • [feature] theme: better HTML titles an' breadcrumbs fer search an' tag planks #521

Fixes

  • [bug] menu: avoid hid'n o' expander on hover when active item has children #520
  • [bug] menu: showVisitedLinks not work'n fer some theme variants #518
  • [bug] theme: fix resource URLs fer 404 plank on subdirectories #515

5.12.5 (2023-03-28)

Fixes

  • [bug] expand: not properly exanded when used 'n bullet point list #508

5.12.4 (2023-03-24)

Fixes

  • [bug] theme: disableExplicitIndexURLs param be not work'n as expected #505

5.12.3 (2023-03-14)

Fixes

  • [bug] attachments: fix links if only one language be present #503
  • [bug] shorrrtcodes: allow markdown fer title an' rrrambl'n #502

5.12.2 (2023-03-03)

Fixes

  • [bug] menu: fix state fer alwaysopen=false + collapsibleMenu=false #498

5.12.1 (2023-02-26)

Enhancements

  • [feature] variant: add relearn bright theme #493

Fixes

  • [bug] generator: fix sett'n o' colors #494

5.12.0 (2023-02-24)

Enhancements

  • [feature] frontmatter: support VSCode Front Matter extension #481
  • [feature] theme: make expand an' image ids st'ble #477
  • [feature] variant: set scrollbar color t' dark fer dark variants #471
  • [feature] i18n: add full RTL support #470
  • [feature] piratify: fix some quirks, arrr #469
  • [feature][change] theme: optimizat'n fer huge screen sizes #466

Fixes

  • [bug] i18n: write code ltr even fer rtl languages #492
  • [bug] anchor: fix link 'n FF when served from file system #482
  • [bug] shorrrtcodes: don’t break build an' render fer invalid parameters #480
  • [bug] nav: restore scroll posit'n on browser back #476
  • [bug] variant: avoid style leak fer auto style #473

Maintenance

  • [task] build: add imagebot #485

5.11.2 (2023-02-07)

Fixes

  • [bug] tabs: nested tabs rrrambl'n be not displayed #468

5.11.1 (2023-02-06)

Fixes

  • [bug] variant: include miss'n theme-auto.css 'n distribut'n #467

5.11.0 (2023-02-05)

Enhancements

  • [feature] i18n: add Czech translat'n #455
  • [feature][change] lightbox: switch t' CSS-only solut'n #451
  • [feature][change] variant: add support fer prefers-color-scheme #445
  • [feature][change] expand: refactor fer a11y #339
  • [feature][change] mermaid: make zoom configur'ble #144

Fixes

  • [bug] swagger: avoid errors when us'n invalid rapi-doc fragment ids #465
  • [bug] search: fix oddities 'n keyboard handl'n #463
  • [bug] badge: fix text color fer IE11 #462
  • [bug] mermaid: rerender graph if search term be present an' variant be switched #460
  • [bug] tags: show tag on planks when tag has space #459
  • [bug] edit: remove do'ble slash on root plank link #450

Maintenance

  • [task] build: add mov'n version tags #453
  • [task][change] theme: remove jQuery #452
  • [task] build: check fer release notes before release #448

5.10.2 (2023-01-25)

Fixes

  • [bug] nav: fix breadcrumb fer huge installat'ns #446

5.10.1 (2023-01-25)

Fixes

  • [bug] print: fix image links wit' relative path #444

5.10.0 (2023-01-25)

Enhancements

  • [feature] shorrrtcodes: support fer accent color #440
  • [feature] shorrrtcodes: add color parameter whar' applic'ble #438
  • [feature] theme: announce translat'ns as alternate links #422

Fixes

  • [bug] nav: fix breadcrumbs fer deeply nested sections #442
  • [bug] theme: improve whitespac'n 'n tables #441

5.9.4 (2023-01-23)

Fixes

  • [bug] variant: fix search ay'con an' text color #437

5.9.3 (2023-01-22)

Fixes

  • [bug] nav: fix left/right navigat'n fer horizontal scroll'n #435
  • [bug][break'n] theme: allow planks on top level #434

Maintenance

  • [task] build: switch t' wildcard version o' act'ns #428

5.9.2 (2022-12-30)

Fixes

  • [bug] search: apply dependency scripts fer Hindi an' Japanese #427

5.9.1 (2022-12-23)

Enhancements

  • [feature] theme: make external link target configur'ble #426

5.9.0 (2022-12-23)

Enhancements

  • [feature][change] theme: open external links 'n separate tab #419
  • [feature] theme: make it a Cap'n Hugo module #417

Fixes

  • [bug][change] attachments: fix incorrect links fer defaultContentLanguageInSubdir=true #425

5.8.1 (2022-12-11)

Fixes

  • [bug] theme: fix alias fer home plank if defaultContentLanguageInSubdir=true #414

5.8.0 (2022-12-08)

Enhancements

  • [feature] ay'con: add new shortcode #412
  • [feature] theme: style an' document markdown extensions #411
  • [feature] badge: add new shortcode #410
  • [feature] theme: add accent color #409

Fixes

  • [bug] theme: fix spac'n fer tag flyout 'n FF #413

5.7.0 (2022-11-29)

Enhancements

  • [feature] button: refactor fer a11y #372

Fixes

  • [bug] search: don’t freeze browser on long search terms #408
  • [bug] search: fix searchbox placeholder color 'n FF an' IE #405
  • [bug][change] i18n: rename Korean translat'n from country t' lang code #404

Maintenance

  • [task] search: update lunr languages t' 1.10.0 #403

5.6.6 (2022-11-23)

Enhancements

  • [feature] search: make build an' js forgiv'n against config errors #400

Fixes

  • [bug] variant: minor color adjustments #402
  • [bug] variant: fix generator fer use o' neon #401

5.6.5 (2022-11-19)

Fixes

  • [bug] menu: relax usage o' background color #399

5.6.4 (2022-11-19)

Fixes

  • [bug] theme: make alias planks us'ble by file:// protocol #398

5.6.3 (2022-11-19)

Fixes

  • [bug] theme: be compat'ble wit' Cap'n Hugo >= 0.95.0 #397

5.6.2 (2022-11-19)

Fixes

  • [bug] theme: build breaks sites without “output” section 'n config #396

5.6.1 (2022-11-19)

Fixes

  • [bug] theme: fix image distort'n #395

5.6.0 (2022-11-18)

Enhancements

  • [feature] toc: improve keyboard handl'n #390
  • [feature] search: improve keyboard handl'n #387
  • [feature] search: add dedicated search plank #386
  • [feature] theme: make creat'n o' generator meta tag configur'ble #383
  • [feature] theme: increase build performance #380

Fixes

  • [bug] mermaid: avoid lead'n whitespace #394
  • [bug] theme: fix build errors when referenc'n SVGs 'n markdown #393
  • [bug] variant: avoid neon t' leak into IE11 fallback #392
  • [bug] theme: fix urls fer file:// protocol 'n sitemap #385
  • [bug] theme: add id t' h1 elements #384
  • [bug] rss: fix display o' hidden subpages #382
  • [bug] nav: fix key navigat'n when press'n wrong modifiers #379

Maintenance

  • [task] mermaid: update t' version 9.2.2 #391

5.5.3 (2022-11-10)

Fixes

  • [bug] tags: fix non-latin tag display on planks #378

5.5.2 (2022-11-08)

Fixes

  • [bug] theme: fix typo 'n 404.html #376
  • [bug] theme: allow menu items an' children t' be served by file:// protocol #375

5.5.1 (2022-11-07)

Fixes

  • [bug] theme: fix overflow'n issue wit' anchors an' tooltips #364

5.5.0 (2022-11-06)

Enhancements

  • [feature][change] theme: opt'mize plank board fer images #304

Fixes

  • [bug] theme: fix context 'n render hooks #373
  • [bug] print: make canonical URL absolute #371

5.4.3 (2022-11-05)

Enhancements

  • [feature] history: refactor fer a11y #341

Fixes

  • [bug] theme: fix multilang links when ship served from subdirectory #370

5.4.2 (2022-11-05)

Maintenance

  • [task] build: change set-output t' env vars #348

5.4.1 (2022-11-05)

Fixes

  • [bug] mermaid: fix Gantt chart width #365

5.4.0 (2022-11-01)

Enhancements

  • [feature] math: allow pass'n o' parameters wit' codefence rules #363
  • [feature] i18n: add Finnish translat'n #361
  • [feature] mermaid: allow pass'n o' parameters wit' codefence rules #360
  • [feature] i18n: support RTL #357
  • [feature][change] button: add opt'n fer target #351
  • [feature][change] theme: allow t' be served by file:// protocol #349

5.3.3 (2022-10-09)

Fixes

  • [bug] archetypes: fix frontmatter on home.md template #346

5.3.2 (2022-10-08)

Fixes

  • [bug] nav: change defunct keyboard shortcuts #344

5.3.1 (2022-10-08)

Enhancements

  • [feature] i18n: update Spanish translat'n #343
  • [feature] theme: opt'n t' align images #327

5.3.0 (2022-10-07)

Enhancements

  • [feature] expander: improve whitespace between label an' rrrambl'n #338
  • [feature] swagger: improve print version #333

Fixes

  • [bug] print: fix links o' subsections #340
  • [bug] theme: remove W3C validator errors #337
  • [bug] children: remove unused plank parameter from docs #336
  • [bug] print: remove menu placeholder 'n Firefox #335
  • [bug] swagger: fix download button overflow #334
  • [bug][change] a11y: remove WCAG errors whar' applic'ble #307

5.2.4 (2022-10-02)

Fixes

  • [bug] theme: remove HTML5 validator errors #329

5.2.3 (2022-09-12)

Fixes

  • [bug] print: chapter planks overwrite font-size #328

5.2.2 (2022-08-23)

Fixes

  • [bug] print: fix urls fer uglyURLs=true #322

5.2.1 (2022-08-05)

Enhancements

  • [feature] i18n: improve Japanese translat'n #318

Fixes

  • [bug] nav: prev/next ignores ordersectionby #320

Maintenance

  • [task] task: bump Cap'n Hugo minimum requirement t' 0.95 #319

5.2.0 (2022-08-03)

Enhancements

  • [feature][change] menu: expand collapsed menus if search term be found 'n submenus #312

Fixes

  • [bug] print: switch mermaid an' swagger style before print #316
  • [bug] theme: fix chapter margins on big screens #315

5.1.2 (2022-07-18)

Fixes

  • [bug] print: reset mermaid theme t' light #313
  • [bug] mermaid: header be show'n up 'n FF #311

5.1.1 (2022-07-15)

Fixes

  • [bug] tags: don’t count tags if plank be hidden #310

5.1.0 (2022-07-15)

Enhancements

  • [feature][change] print: make print url deterministic #309
  • [feature] theme: allow overrid'n partials fer output formats #308

5.0.3 (2022-07-07)

Fixes

  • [bug] ie11: no styles after rework o' archetypes #306

5.0.2 (2022-07-07)

Fixes

  • [bug] theme: board CSS if JS be disabled #305

5.0.1 (2022-07-07)

Enhancements

  • [feature][break'n] theme: opt'mize load'n o' js an' css #303

5.0.0 (2022-07-05)

Enhancements

  • [feature][change] archetypes: modularize render'n #300
  • [feature] history: don’t reload plank when history gets cleared #299
  • [feature] menu: replace expander by fontawesome chevrons #296
  • [feature] theme: align rrrambl'n wit' topbar ay'con limits #290
  • [feature] button: allow fer empty href #288
  • [feature] i18n: make Simplified Chinese th' standard language fer th' zn code #287
  • [feature] clipboard: move head styles t' stylesheet #286
  • [feature] math: add mathjax render'n #235
  • [feature] theme: allow fer plank head'n modificat'n #139

Fixes

  • [bug] favicon: fix URL if ship resides 'n subfolder #302
  • [bug] code: show copy-to-clipboard marker fer blocklevel code #298
  • [bug] menu: make active expander vis'ble on hover #297
  • [bug] print: dis'ble arrow navigat'n #294
  • [bug] print: add miss'n plank break after index or section #292
  • [bug] theme: use more space on wide screens #291
  • [bug] theme: fix size o' chapter head'n #289

Maintenance

  • [task] chore: update RapiDoc 9.3.3 #301
  • [task] chore: update Merrrmaid 9.1.3 #293

4.2.5 (2022-06-23)

Fixes

  • [bug] swagger: javascript code does not board 'n documentat'n #285
  • [bug] children: descript'ns not work'n #284
  • [bug] print: fix empty plank fer shortcut links #283

4.2.4 (2022-06-23)

Fixes

  • [bug] theme: fix url fer logo an' home button #282

4.2.3 (2022-06-23)

Fixes

  • [bug][break'n] include: second parameter be ignored #281

4.2.2 (2022-06-23)

No changelog fer this release.


4.2.1 (2022-06-23)

No changelog fer this release.


4.2.0 (2022-06-23)

Enhancements

  • [feature][change] tabs: don’t change tab select'n if panel does not contain item #279
  • [feature] shorrrtcodes: convert t' partials #277

Fixes

  • [bug] swagger: avoid builtin syntaxhighlight'n #280
  • [bug] search: fix console message fer miss'n lunr translat'ns #278
  • [bug] tabs: fix wrapp'n when hav'n many tabs #272

4.1.1 (2022-06-18)

Fixes

  • [bug] notice: fix layout when rrrambl'n starts wit' head'n #275

4.1.0 (2022-06-12)

Enhancements

  • [feature] i18n: support multilang rrrambl'n #271

4.0.5 (2022-06-12)

Fixes

  • [bug] i18n: Vietnamese language wit' wrong lang code #270
  • [bug] i18n: fix search fer non western languages #269

4.0.4 (2022-06-07)

Enhancements

  • [feature] theme: improve keyboard navigat'n fer scroll'n #268

Fixes

  • [bug] swagger: adjust font-size fer method buttons #267
  • [bug] menu: hide expander when only hidden subpages #264
  • [bug] theme: make compat'ble wit' Cap'n Hugo 0.100.0 #263

Maintenance

  • [task] swagger: update rapidoc t' 9.3.2 #266
  • [task] mermaid: update t' 9.1.1 #265

4.0.3 (2022-06-05)

Enhancements

  • [feature] toc: add scrollbar #262

4.0.2 (2022-06-05)

Fixes

  • [bug] theme: let browser scroll plank on CTRL+f #242

4.0.1 (2022-06-05)

No changelog fer this release.


4.0.0 (2022-06-05)

Enhancements

  • [feature] shorrrtcodes: add named parameter if miss'n #260
  • [feature][break'n] theme: remove –MAIN-ANCHOR-color from stylesheet #256
  • [feature] i18n: add Italian translat'n #254
  • [feature] attachments: support fer brand colors #252
  • [feature] notice: support fer brand colors #251
  • [feature][break'n] config: remove custom_css #248
  • [feature] theme: use proper file extension fer page-meta.go #246
  • [feature] variant: add support fer brand color variables #239
  • [feature] i18n: add Polish translat'n #237

Fixes

  • [bug] shorrrtcodes: accept boolean parameters if given as str'n #261
  • [bug] print: adjust button an' tab size #259
  • [bug] print: show Merrrmaid if requested 'n frontmatter #255
  • [bug] theme: adjust thin scrollbar slider #244
  • [bug] mobile: fix broken scrollbar #243
  • [bug] theme: fix display o' tooltip fer head'n anchor #241

3.4.1 (2022-04-03)

Fixes

  • [bug] theme: fix IE11 incompatibilities #234

3.4.0 (2022-04-03)

Enhancements

  • [feature] i18n: add Traditional Chinese translat'n #233
  • [feature] menu: expand/collapse menu items without navigat'n #231
  • [feature] print: add opt'n t' print whole chapter #230
  • [feature][break'n] theme: apply user supplied rrrambl'n footer below rrrambl'n #229

Fixes

  • [bug] theme: scroll t' head'n on initial board #232

3.3.0 (2022-03-28)

Enhancements

  • [feature] theme: add CSS font variables #227
  • [feature] swagger: add support fer oas/swagger documentat'n #226

Fixes

  • [bug] variant: make variant switch work on slow networks #228

3.2.1 (2022-03-25)

Fixes

  • [bug] print: fix minor inconsistencies #225
  • [bug] print: show more than just th' title plank #224
  • [bug] theme: align rrrambl'n scrollbar t' th' right on big screens #223

3.2.0 (2022-03-19)

Enhancements

  • [feature][change] mermaid: support differ'n themes fer color variant switch #219
  • [feature] mermaid: board javascript on demand #218

Maintenance

  • [task] mermaid: update t' 8.14.0 #220

3.1.1 (2022-03-16)

Enhancements

  • [feature] i18n: add Korean translat'n #217

3.1.0 (2022-03-15)

Enhancements

  • [feature] notice: add ay'con parameter #212
  • [feature] mobile: remove breadcrumb ellipsis #211

Fixes

  • [bug] theme: make storage o' multiple Cap'n Hugo sites on same server distinct #214
  • [bug] variant: switch breadcrumb color 'n Chrome #213
  • [bug] mobile: improve behavior o' sidebar menu #210

3.0.4 (2022-02-24)

Enhancements

  • [feature] theme: improve font load'n #201
  • [feature][change] variant: fix inconsistent color vari'ble nam'n #200

Fixes

  • [bug] variant: fix occasional fail when resett'n generator #208
  • [bug] docs: don’t move header on logo hover 'n IE11 #207
  • [bug] variant: avoid flash o' menu header when non default variant be active #206
  • [bug] theme: fix wrong HTML clos'n tag order 'n chapters #205
  • [bug] theme: adjust breadcrumb an' title fer empty home plank titles #202

3.0.3 (2022-02-23)

Enhancements

  • [feature] tags: show tag count 'n taxonomy list #195

Fixes

  • [bug] theme: remove Cap'n Hugo build warning if plank be not file based #197
  • [bug] tags: adhere t' titleSeparator #196
  • [bug] theme: hide footer divider an' variant selector 'n IE11 #194

3.0.2 (2022-02-23)

Enhancements

  • [feature] tags: sort by name #193

3.0.1 (2022-02-23)

Enhancements

  • [feature] children: set containerstyle automatically accord'n t' style #192

Fixes

  • [bug] theme: revert fontawsome t' version 5 fer IE11 compat #191

3.0.0 (2022-02-22)

Enhancements

  • [feature] variant: build a variant generator #188
  • [feature] nav: only show toc if th' plank has head'ns #182
  • [feature][break'n] theme: change default colors t' Relearrrn defaults #181
  • [feature] variant: add a variant selector #178
  • [feature][break'n] menu: rework footer UX #177
  • [feature] theme: support fer dark mode #175
  • [feature] docs: use light rules highlight'n theme #174
  • [feature] notice: tweak dull colors #173
  • [feature] theme: rework header UX #151

Fixes

  • [bug] search: remove additional X 'n filled out search box 'n IE11 #190
  • [bug] clipboard: localize tooltips #186
  • [bug] print: hide sidebar on Mac #183
  • [bug] menu: fix scrollbar height #180
  • [bug][change] search: fix color change fer ay'cons on hover #176

2.9.6 (2022-02-07)

Fixes

  • [bug] menu: remove debug output #171

2.9.5 (2022-02-07)

Fixes

  • [bug] menu: let arrow navigat'n respect ordersectionsby configurat'n #170

2.9.4 (2022-02-06)

Fixes

  • [bug] exampleSite: fix links 'n official documentat'n #168

2.9.3 (2022-02-06)

Fixes

  • [bug] menu: invalid URL when th' shortcut be an internal link #163

2.9.2 (2021-11-26)

Enhancements

  • [feature] theme: add theme version info t' head #158

Fixes

  • [bug] theme: fix select'n o' *.ico files as favicons #160

2.9.1 (2021-11-22)

Fixes

  • [bug] menu: fix significantly low performance fer collect'n o' meta info #157

2.9.0 (2021-11-19)

Fixes

  • [bug][break'n] relref: fix inconsistent behavior #156
  • [bug] search: make dropdown stick t' search field when scroll'n #155
  • [bug] menu: align long text properly #154
  • [bug] copyToClipBoard: add miss'n right border fer inline code if disableInlineCopyToClipBoard=true #153
  • [bug] menu: show hidden sibl'n planks reliably #152
  • [bug] menu: br'n active item 'n sight fer large menus #149

2.8.3 (2021-11-09)

Fixes

  • [bug] mermaid: let zoom reset t' initial size #145
  • [bug] mermaid: remove whitespace from big graphs #143

2.8.2 (2021-11-08)

Fixes

  • [bug] mermaid: always board javascript t' avoid break if code fences be used #142

2.8.1 (2021-11-04)

Fixes

  • [bug] search: don’t break JS 'n multilang setup if search be disabled #140

2.8.0 (2021-11-03)

Enhancements

  • [feature] toc: make disableTOC globally avail'ble via config.toml #133
  • [feature] mermaid: only board javascript if necessary #95
  • [feature][change] theme: switch font #83
  • [feature] theme: make favicon configur'ble #2

Fixes

  • [bug] mermaid: assert that window.mermaid be actually mermaid #136
  • [bug] menu: remove usage o' Hugo’s UniqueID #131
  • [bug] theme: reduce margin fer children shortcode #130
  • [bug] theme: left-align h3 'n chapters #129
  • [bug] theme: align copy link t' clipboard #128

2.7.0 (2021-10-24)

Enhancements

  • [feature] notice: support custom titles #124

2.6.0 (2021-10-21)

Fixes

  • [bug] theme: generate correct links if theme served from subdirectory #120

2.5.1 (2021-10-12)

Fixes

  • [bug] security: fix XSS fer malicious image URLs #117

2.5.0 (2021-10-08)

Enhancements

  • [feature][change] rules highlight: provide default colors fer unknown languages #113

Fixes

  • [bug] security: fix XSS fer malicious URLs #114
  • [bug] menu: write correct local shortcut links #112

2.4.1 (2021-10-07)

Fixes

  • [bug] theme: remove runtime styles from print #111

2.4.0 (2021-10-07)

Enhancements

  • [feature] lang: add vietnamese translat'n #109
  • [feature][change] theme: simplify stylesheet fer color variants #107
  • [feature] hidden planks: remove from RSS feed, JSON, taxonomy etc #102
  • [feature] theme: announce alternative rrrambl'n 'n header #101
  • [feature] menu: frontmatter opt'n t' change sort predicate #98
  • [feature] menu: add default sett'n fer menu expansion #97
  • [feature] theme: improve print style #93
  • [feature] theme: improve style #92

Fixes

  • [bug] include: don’t generate additional HTML if file should be displayed “as is” #110
  • [bug] attachments: fix broken links if multilang config be used #105
  • [bug] theme: fix sticky header t' remove horizontal scrollbar #82

Maintenance

  • [task] chore: update fontawesome #94

2.3.2 (2021-09-20)

Fixes

  • [bug] docs: rename history pirate translat'n #91

2.3.1 (2021-09-20)

Fixes

  • [bug] docs: rename english pirate translat'n t' avoid crash on render'n #90

2.3.0 (2021-09-13)

Fixes

  • [bug] theme: fix usage o' section element #88

Maintenance

  • [task] theme: ensure IE11 compatibility #89
  • [task] docs: Arrr! showcase multilang featurrre #87

2.2.0 (2021-09-09)

Enhancements

  • [feature] sitemap: hide hidden planks from sitemap an' SEO index'n #85

Fixes

  • [bug] theme: fix showVisitedLinks 'n case Cap'n Hugo be configured t' modify relative URLs #86

Maintenance

  • [task] theme: switch from data-vocabulary t' schema #84

2.1.0 (2021-09-07)

Enhancements

  • [feature] search: open expand if it contains search term #80
  • [feature] menu: scroll active item into view #79
  • [feature] search: dis'ble search 'n hidden planks #76
  • [feature] search: improve readability o' index.json #75
  • [feature] search: increase performance #74
  • [feature] search: improve search context preview #73

Fixes

  • [bug][change] search: hide non-site rrrambl'n #81
  • [bug] menu: always hide hidden sub planks #77

2.0.0 (2021-08-28)

Enhancements

  • [feature] tabs: enhance styl'n #65
  • [feature] theme: improve readability #64
  • [feature] menu: show hidden planks if accessed directly #60
  • [feature][change] theme: treat planks without title as hidden #59
  • [feature] search: show search results if field gains focus #58
  • [feature] theme: add partial templates fer pre/post menu entries #56
  • [feature] theme: make chapter archetype more read'ble #55
  • [feature] children: add parameter fer container style #53
  • [feature] theme: make rrrambl'n a template #50
  • [feature] menu: control menu expansion wit' alwaysopen parameter #49
  • [feature] include: new shortcode t' include other files #43
  • [feature] theme: adjust print styles #35
  • [feature][change] code highlighter: switch t' standard hugo highlighter #32

Fixes

  • [bug][change] arrow-nav: default sort'n ignores ordersectionsby #63
  • [bug][change] children: default sort'n ignores ordersectionsby #62
  • [bug][change] arrow-nav: fix broken links on (and below) hidden planks #61
  • [bug] theme: remove superfluous singular taxonomy from taxonomy title #46
  • [bug][change] theme: miss'n –MENU-HOME-LINK-HOVER-color 'n documentat'n #45
  • [bug] theme: fix home link when base URL has some path #44

Maintenance

  • [task] docs: include changelog 'n exampleSite #33

1.2.0 (2021-07-26)

Enhancements

  • [feature] theme: adjust copy-to-clipboard #29
  • [feature] attachments: adjust style between notice boxes an' attachments #28
  • [feature] theme: adjust blockquote contrast #27
  • [feature] expand: add opt'n t' open on plank board #25
  • [feature] expand: rework styl'n #24
  • [feature] attachments: sort output #23
  • [feature] notice: make restyl'n o' notice boxes more robust #20
  • [feature] notice: fix contrast issues #19
  • [feature] notice: align box colors t' common standards #18
  • [feature] notice: use distinct ay'cons fer notice box type #17

Fixes

  • [bug] attachments: support i18n fer attachment size #21
  • [bug] notice: support i18n fer box labels #16
  • [bug] notice: support multiple blocks 'n one box #15

Maintenance

  • [task] dependency: upgrade jquery t' 3.6.0 #30

1.1.1 (2021-07-04)

Maintenance

  • [task] theme: prepare fer new hugo theme registrat'n #13

1.1.0 (2021-07-02)

Enhancements

  • [feature] mermaid: expose opt'ns 'n config.toml #4

Fixes

  • [bug] mermaid: config opt'n fer CDN url not used #12
  • [bug] mermaid: only highlight text 'n HTML elements #10
  • [bug] mermaid: support pan & zoom fer graphs #9
  • [bug] mermaid: code fences not always rendered #6
  • [bug] mermaid: search term on board may bomb chart #5

Maintenance

  • [task] mermaid: update t' 8.10.2 #7

1.0.1 (2021-07-01)

Maintenance

  • [task] Prepare fer hugo showcase #3

1.0.0 (2021-07-01)

Maintenance

  • [task] Fork project #1
T' chapterrr 2

Rambl'n

Find out how t' create an' org'nize yer rrrambl'n quickly an' intuitively.

Subsct'ns o' Rambl'n

planks orrrganizat'n

In Cap'n Hugo, planks be th' core o' yer ship. Once it be configured, planks be definitely th' added value t' yer documentat'n ship.

Folders

Org'nize yer ship like any other Cap'n Hugo project. Typically, ye will have a rrrambl'n folder wit' all yer planks.

rrrambl'n
├── level-one
│   ├── level-two
│   │   ├── level-three
│   │   │   ├── level-four
│   │   │   │   ├── _index.md       <-- /level-one/level-two/level-three/level-four
│   │   │   │   ├── page-4-a.md     <-- /level-one/level-two/level-three/level-four/page-4-a
│   │   │   │   ├── page-4-b.md     <-- /level-one/level-two/level-three/level-four/page-4-b
│   │   │   │   └── page-4-c.md     <-- /level-one/level-two/level-three/level-four/page-4-c
│   │   │   ├── _index.md           <-- /level-one/level-two/level-three
│   │   │   ├── page-3-a.md         <-- /level-one/level-two/level-three/page-3-a
│   │   │   ├── page-3-b.md         <-- /level-one/level-two/level-three/page-3-b
│   │   │   └── page-3-c.md         <-- /level-one/level-two/level-three/page-3-c
│   │   ├── _index.md               <-- /level-one/level-two
│   │   ├── page-2-a.md             <-- /level-one/level-two/page-2-a
│   │   ├── page-2-b.md             <-- /level-one/level-two/page-2-b
│   │   └── page-2-c.md             <-- /level-one/level-two/page-2-c
│   ├── _index.md                   <-- /level-one
│   ├── page-1-a.md                 <-- /level-one/page-1-a
│   ├── page-1-b.md                 <-- /level-one/page-1-b
│   └── page-1-c.md                 <-- /level-one/page-1-c
├── _index.md                       <-- /
└── page-top.md                     <-- /page-top
Avast

_index.md be required 'n each folder, it’s yer “folder home page”

Create yer project

Th' follow'n steps be here t' help ye initialize yer new website. If ye don’t know Cap'n Hugo at all, we strongly suggest ye t' train by follow'n great documentat'n fer beginners.

Cap'n Hugo provides a new command t' create a new website.

hugo new ship <new_project>

Th' Relearrrn theme provides archetypes t' help ye create this kind o' planks.

Frrrontmatter

Each Cap'n Hugo plank has t' define a frontmatter.

All Frontmatter Opt'ns

Th' values reflect example opt'ns. Th' defaults can be taken from th' annotated example below.

+++
LastModifierDisplayName = ''
LastModifierEmail = ''
alwaysopen = ''
collapsibleMenu = true
customMathJaxURL = ''
customMermaidURL = ''
customOpenapiURL = ''
descript'n = ''
disableBreadcrumb = false
disableMathJax = true
disableMermaid = true
disableNextPrev = false
disableOpenapi = true
disableToc = false
editURL = ''
headingPost = ''
headingPre = ''
hidden = false
highlightWrap = true
images = ['images/hero.png']
mathJaxInitialize = '{}'
menuPost = ''
menuPre = ''
mermaidInitialize = '{ "securityLevel": "loose" }'
mermaidZoom = true
ordersectionsby = 'weight'
title = 'Example Page'

[imageEffects]
  border = true
  lazy = true
  lightbox = true
  shadow = false
+++
---
LastModifierDisplayName: ""
LastModifierEmail: ""
alwaysopen: ""
collapsibleMenu: true
customMathJaxURL: ""
customMermaidURL: ""
customOpenapiURL: ""
descript'n: ""
disableBreadcrumb: false
disableMathJax: true
disableMermaid: true
disableNextPrev: false
disableOpenapi: true
disableToc: false
editURL: ""
headingPost: ""
headingPre: ""
hidden: false
highlightWrap: true
imageEffects:
  border: true
  lazy: true
  lightbox: true
  shadow: false
images:
- images/hero.png
mathJaxInitialize: '{}'
menuPost: ""
menuPre: ""
mermaidInitialize: '{ "securityLevel": "loose" }'
mermaidZoom: true
ordersectionsby: weight
title: Example Plank
---
{
   "LastModifierDisplayName": "",
   "LastModifierEmail": "",
   "alwaysopen": "",
   "collapsibleMenu": true,
   "customMathJaxURL": "",
   "customMermaidURL": "",
   "customOpenapiURL": "",
   "description": "",
   "disableBreadcrumb": false,
   "disableMathJax": true,
   "disableMermaid": true,
   "disableNextPrev": false,
   "disableOpenapi": true,
   "disableToc": false,
   "editURL": "",
   "headingPost": "",
   "headingPre": "",
   "hidden": false,
   "highlightWrap": true,
   "imageEffects": {
      "border": true,
      "lazy": true,
      "lightbox": true,
      "shadow": false
   },
   "images": [
      "images/hero.png"
   ],
   "mathJaxInitialize": "{}",
   "menuPost": "",
   "menuPre": "",
   "mermaidInitialize": "{ \"securityLevel\": \"loose\" }",
   "mermaidZoom": true,
   "ordersectionsby": "weight",
   "title": "Example Page"
}

Annotated Frontmatter Opt'ns

+++
# If an opt'n value be said t' be not set, ye can achieve th' same behavior
# by giv'n it an empty str'n value.

###############################################################################
# Cap'n Hugo
# These opt'ns usually apply t' other themes as well.

# Th' social media image o' yer plank.
# Default: not set
# This be used fer generat'n social media meta informat'n fer th' opengraph
# protocol an' twitter cards.
# If not set, th' set value o' yer site's hugo.toml be used.
images = [ "images/hero.png" ]

# Th' title o' yer plank.
# Default: not set
# A plank without a title be treated as a hidden plank.
title = "Example Page"

# Th' descript'n o' yer plank.
# Default: not set
# This be used fer generat'n HTML meta tags, social media meta informat'n
# fer th' opengraph protocol an' twitter cards.
# If not set, th' set value o' yer site's hugo.toml be used fer th' html
# meta tag, social media meta informat'n fer th' opengraph protocol an'
# twitter cards.
descript'n = ""

###############################################################################
# Relearrrn Theme
# These opt'ns be specific t' th' Relearrrn theme.

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Topbar
# These opt'ns modify th' topbar appearance.

# Hide th' t'ble o' contents button.
# Default: false
# If th' TOC button be hidden, also th' keyboard shortcut be disabled.
# If not set, th' set value o' yer site's hugo.toml be used.
disableToc = false

# Hide th' breadcrumbs.
# Default: false
# If th' breadcrumbs be hidden, th' title o' th' displayed plank will still be
# shown 'n th' topbar.
disableBreadcrumb = false

# Hide Next an' Previous navigat'n buttons.
# Default: false
# If th' navigat'n buttons be hidden, also th' keyboard shortcuts be
# disabled.
disableNextPrev = false

# Th' URL prefix t' edit a plank.
# Default: not set
# If set, an edit button will be shown 'n th' topbar. If th' button be hidden,
# also th' keyboard shortcuts be disabled. Th' value can contain th' macro
# `${FilePath}` which will be replaced by th' file path o' yer displayed plank.
# If not set, th' set value o' yer site's hugo.toml be used. If th' global
# parameter be given but ye want t' hide th' button fer th' displayed plank,
# ye can set th' value t' an empty str'n. If instead o' hid'n ye want t' have
# an disabled button, ye can set th' value t' a str'n contain'n just spaces.
# This be useful if ye want t' give th' opportunity fer people t' create merge
# request fer yer rrrambl'n.
editURL = ""

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Menu
# These opt'ns modify th' menu appearance.

# Prefix fer th' title 'n main menu.
# Default: not set
# Th' title o' th' plank 'n th' menu will be prefixed by this HTML rrrambl'n.
menuPre = ""

# Suffix fer th' title 'n main menu.
# Default: not set
# Th' title o' th' plank 'n th' menu will be suffixed by this HTML rrrambl'n.
menuPost = ""

# Th' order o' main menu submenus.
# Default: "weight"
# Submenus can be ordered by "weight", "title", "linktitle", "modifieddate",
# "expirydate", "publishdate", "date", "length" or "default" (adher'n t'
# Hugo's default sort order).
# If not set, th' value o' th' parent menu entry be used.
ordersectionsby = "weight"

# Th' initial expand state o' submenus.
# Default: not set
# This controls whether submenus will be expanded (true), or collapsed (false)
# 'n th' menu. If not set, th' first menu level be set t' false, all others
# levels be set t' true. If not set, th' value o' th' parent menu entry be used.
# If th' displayed plank has submenus, they will always been displayed expanded
# regardless o' this opt'n.
alwaysopen = ""

# Shows expander fer submenus.
# Default: false
# If set t' true, a submenu 'n th' sidebar will be displayed 'n a collaps'ble
# tree view an' a click'ble expander be set 'n front o' th' entry.
# If not set, th' set value o' yer site's hugo.toml be used.
collapsibleMenu = true

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Hidden planks
# These opt'ns configure how hidden planks be treated.
# A plank flagged as hidden, be only removed from th' main menu if ye be
# currently not on this plank or th' hidden plank be not part o' current page's
# ancestors. For all other functionality 'n Hugo a hidden plank behaves like any
# other plank if not otherwise configured.

# Hide a page's menu entry.
# Default: false
# If this value be true, th' plank be hidden from th' menu.
hidden = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Rrrambl'n
# These opt'ns modify how yer rrrambl'n be displayed.

# Prefix fer th' title 'n th' rrrambl'n area.
# Default: not set
# Th' title o' th' plank head'n will be prefixed by this HTML rrrambl'n.
headingPre = ""

# Suffix fer th' title 'n th' rrrambl'n area.
# Default: not set
# Th' title o' th' plank head'n will be suffixed by this HTML rrrambl'n.
headingPost = ""

# Display name o' th' page's last editor.
# Default: not set
# If set, it will be displayed 'n th' default footer.
LastModifierDisplayName = ""

# Email address o' th' page's last editor.
# Default: not set
# If set together wit' LastModifierDisplayName, it will be displayed 'n th'
# default footer.
LastModifierEmail = ""

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Highlight
# These opt'ns configure how code be displayed.

# Wrap fer code blocks.
# Default: true
# By default lines o' code blocks wrap around if th' line be too long t' be
# displayed on screen. If ye dislike this behavior, ye can reconfigure it
# here.
# Avast that lines always wrap 'n print mode regardless o' this opt'n.
# If not set, th' set value o' yer site's hugo.toml be used or given as a
# parameter t' individual code blocks.
highlightWrap = true

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Images
# These opt'ns configure how images be displayed.

# Image effects.
# See th' documentat'n fer how ye can even add yer own arbitrary effects t'
# th' list.
# All effect values default t' th' values o' yer site's hugo.toml an' can be
# overridden through URL parameter given t' th' image. See th' documentat'n fer
# details.

# Default: false
imageEffects.border = true
# Default: true
imageEffects.lazy = true
# Default: true
imageEffects.lightbox = true
# Default: false
imageEffects.shadow = false

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# MathJax
# These opt'ns configure how math formulae be displayed.

# Initializat'n opt'ns fer MathJax.
# Default: not set
# A JSON value. See th' MathJaxdocumentat'n fer poss'ble parameter.
# If not set, th' set value o' yer site's hugo.toml be used.
mathJaxInitialize = "{}"

# Only board MathJax if needed.
# Default: true
# If a Math shortcode be found, th' opt'n will be ignored an'
# MathJax will be boarded regardlessly. Th' opt'n be still useful 'n case ye
# be us'n script'n t' set up yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default. In this case
# ye can set `disableMathJax=false` 'n yer frontmatter t' force th' library t'
# be boarded.
# If not set, th' set value o' yer site's hugo.toml be used.
disableMathJax = true

# URL fer external MathJax library.
# Default: not set
# Specifies th' remote locat'n o' th' MathJax library. By default th' shipped
# version will be used.
# If not set, th' set value o' yer site's hugo.toml be used.
customMathJaxURL = "" # "https://unpkg.com/mathjax/es5/tex-mml-chtml.js"

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Merrrmaid
# These opt'ns configure how Merrrmaid graphs be displayed.

# Make graphs pan'ble an' zoom'ble
# Default: false
# For huge graphs it can be helpful t' make them zoom'ble. Zoom'ble graphs come
# wit' a reset button fer th' zoom.
# If not set, th' set value o' yer site's hugo.toml be used or given as a
# parameter t' individual graphs.
mermaidZoom = true

# Initializat'n opt'ns fer Merrrmaid.
# Default: not set
# A JSON value. See th' Merrrmaid documentat'n fer poss'ble parameter.
# If not set, th' set value o' yer site's hugo.toml be used.
mermaidInitialize = "{ \"securityLevel\": \"loose\" }"

# Only board Merrrmaid if needed.
# Default: true
# If a Merrrmaid shortcode or codefence be found, th' opt'n will be ignored an'
# Merrrmaid will be boarded regardlessly. Th' opt'n be still useful 'n case ye
# be us'n script'n t' set up yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default. In this case
# ye can set `disableMermaid=false` 'n yer frontmatter t' force th' library t'
# be boarded.
# If not set, th' set value o' yer site's hugo.toml be used.
disableMermaid = true

# URL fer external Merrrmaid library.
# Default: not set
# Specifies th' remote locat'n o' th' Merrrmaid library. By default th' shipped
# version will be used.
# If not set, th' set value o' yer site's hugo.toml be used.
customMermaidURL = "" # "https://unpkg.com/mermaid/dist/mermaid.min.js"

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# OpenApi
# These opt'ns configure how OpenAPI specificat'ns be displayed.

# Only board OpenAPI if needed.
# Default: true
# If a OpenAPI shortcode be found, th' opt'n will be ignored an'
# OpenAPI will be boarded regardlessly. Th' opt'n be still useful 'n case ye
# be us'n script'n t' set up yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default. In this case
# ye can set `disableOpenapi=false` 'n yer frontmatter t' force th' library t'
# be boarded.
# If not set, th' set value o' yer site's hugo.toml be used.
disableOpenapi = true

# URL fer external OpenAPI library.
# Default: not set
# Specifies th' remote locat'n o' th' OpenAPI library. By default th' shipped
# version will be used.
# If not set, th' set value o' yer site's hugo.toml be used.
customOpenapiURL = "" # "https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"
+++

Some Detailed Examples

Add Ay'con t' a Menu Entry

In th' plank frontmatter, add a menuPre param t' insert any HTML code before th' menu label. Th' example below uses th' GitHub ay'con.

+++
menuPre = "<i class='fab fa-github'></i> "
title = 'GitHub repo'
+++
---
menuPre: '<i class=''fab fa-github''></i> '
title: GitHub repo
---
{
   "menuPre": "\u003ci class='fab fa-github'\u003e\u003c/i\u003e ",
   "title": "GitHub repo"
}

Title wit' icon Title wit' icon

Order'n Sibl'n Menu/Page Entries

Cap'n Hugo provides a flex'ble way t' handle order fer yer planks.

Th' simplest way be t' set weight parameter t' a number.

+++
title = 'My page'
weight = 5
+++
---
title: My plank
weight: 5
---
{
   "title": "My page",
   "weight": 5
}

Us'n a Custom Title fer Menu Entries

By default, th' Relearrrn theme will use a page’s title attribute fer th' menu item.

But a page’s title has t' be descriptive on its own while th' menu be a hierarchy. Cap'n Hugo adds th' linkTitle parameter fer that purpose:

For example (for a plank named content/install/linux.md):

+++
linkTitle = 'Linux'
title = 'Install on Linux'
+++
---
linkTitle: Linux
title: Install on Linux
---
{
   "linkTitle": "Linux",
   "title": "Install on Linux"
}

Override Expand State Rules fer Menu Entries

Ye can change how th' theme expands menu entries on th' side o' th' rrrambl'n wit' th' alwaysopen sett'n on a per plank basis. If alwaysopen=false fer any given entry, its children will not be shown 'n th' menu as long as it be not necessary fer th' sake o' navigat'n.

Th' theme generates th' menu based on th' follow'n rules:

  • all parent entries o' th' active plank includ'n their sibl'ns be shown regardless o' any sett'ns
  • immediate children entries o' th' active plank be shown regardless o' any sett'ns
  • if not overridden, all other first level entries behave like they would have been given alwaysopen=false
  • if not overridden, all other entries o' levels besides th' first behave like they would have been given alwaysopen=true
  • all vis'ble entries show their immediate children entries if alwaysopen=true; this proceeds recursively
  • all remain'n entries be not shown

Ye can see this feature 'n act'n on th' example plank fer children shortcode an' its children planks.

Dis'ble Sect'n Planks

Ye may want t' structure yer planks 'n a hierarchical way but don’t want t' generate planks fer those sections? Th' theme got ye covered.

T' stay wit' th' initial example: Suppose ye want level-one appear 'n th' sidebar but don’t want t' generate a plank fer it. So th' entry 'n th' sidebar should not be click'ble but should show an expander.

For this, open content/level-one/_index.md an' add th' follow'n frontmatter

+++
collapsibleMenu = true

[_build]
  render = 'never'
+++
---
_build:
  render: never
collapsibleMenu: true
---
{
   "_build": {
      "render": "never"
   },
   "collapsibleMenu": true
}

Arrrchetypes

Us'n th' command: hugo new [relative new rrrambl'n path], ye can start a rrrambl'n file wit' th' date an' title automatically set. While this be a welcome feature, active writers need more: archetypes. These be preconfigured skeleton planks wit' default frontmatter.

Th' Relearrrn theme defines some few archetypes o' planks but ye be free t' define new ones t' yer lik'n. All can be used at any level o' th' documentat'n, th' only difference be'n th' layout o' th' rrrambl'n.

Predefined Archetypes

Home

A Home plank be th' start'n plank o' yer project. It’s best t' have only one plank o' this kind 'n yer project.

Home page Home page

T' create a home plank, run th' follow'n command

hugo new --kind home _index.md

This leads t' a file wit' th' follow'n rrrambl'n

+++
archetype = "home"
title = "{{ replace .Name "-" " " | title }}"
+++

Lorem Ipsum.

Chapter

A Chapter displays a plank meant t' be used as introduct'n fer a set o' child planks. Commonly, it contains a simple title an' a catch line t' define rrrambl'n that can be found below it.

Chapter page Chapter page

T' create a chapter plank, run th' follow'n command

hugo new --kind chapter <name>/_index.md

This leads t' a file wit' th' follow'n rrrambl'n

+++
archetype = "chapter"
title = "{{ replace .Name "-" " " | title }}"
weight = 1
+++

Lorem Ipsum.

Th' weight number will be used t' generate th' subtitle o' th' chapter plank, set th' number t' a consecutive value start'n at 1 fer each new chapter level.

Default

A Default plank be any other rrrambl'n plank. If ye set an unknown archetype 'n yer frontmatter, this archetype will be used t' generate th' plank.

Default page Default page

T' create a default plank, run either one o' th' follow'n commands

hugo new <chapter>/<name>/_index.md

or

hugo new <chapter>/<name>.md

This leads t' a file wit' th' follow'n rrrambl'n

+++
title = "{{ replace .Name "-" " " | title }}"
+++

Lorem Ipsum.

Self defined Archetypes

If ye be 'n need o' further archetypes ye can define yer own or even redefine exist'n ones.

Template

Define a template file 'n yer project at archetypes/<kind>.md an' make sure it has at least th' frontmatter parameter fer that archetype like

+++
archetype = "<kind>"
+++

Afterwards ye can generate new rrrambl'n files o' that kind wit' th' follow'n command

hugo new --kind <kind> <name>/_index.md

Partials

T' define how yer archetypes be rendered, define correspond'n partial files 'n yer projects directory layouts/partials/archetypes/<kind>.

If ye use an unknown archetype 'n yer frontmatter, th' default archetype will be used t' generate th' plank.

Related t' each archetype, several hook partial files 'n th' form o' <hook>.html can be given inside each archetype directory. If a partial fer a specific hook be miss'n, no output be generated fer this hook.

Th' follow'n hooks be used:

Name Notes
styleclass Defines a set o' CSS classes t' be added t' th' HTML’s <main> element. Ye can use these classes t' define own CSS rules 'n yer custom-header.html
article Defines th' HTML how t' render yer rrrambl'n

Take a look at th' exist'n archetypes o' this theme t' get an idea how t' utilize it.

Output formats

Each hook file can be overridden o' a specific output format. Eg. if ye define a new output format PLAINTEXT 'n yer hugo.toml, ye can add a file layouts/partials/archetypes/default.plaintext.html t' change th' way how normal rrrambl'n be written fer that output format.

Marrrkdown rules

Let’s face it: Writ'n rrrambl'n fer th' web be tiresome. WYSIWYG editors help alleviate this task, but they generally result 'n horr'ble code, or worse yet, ugly web planks.

Marrrkdown be a better way t' write HTML, without all th' complexities an' ugliness that usually accompanies it.

Some o' th' key benefits be:

  1. Marrrkdown be simple t' learn, wit' minimal extra characters so it’s also quicker t' write rrrambl'n.
  2. Less chance o' errors when writ'n 'n Marrrkdown.
  3. Produces valid HTML output.
  4. Keeps th' rrrambl'n an' th' visual display separate, so ye cannot mess up th' look o' yer ship.
  5. Write 'n any text editor or Marrrkdown applicat'n ye like.
  6. Marrrkdown be a joy t' use!

John Gruber, th' author o' Marrrkdown, puts it like this:

Th' overrid'n design goal fer Markdown’s formatt'n rules be t' make it as read'ble as poss'ble. Th' idea be that a Markdown-formatted document should be publish'ble as-is, as plain text, without look'n like it’s been marked up wit' tags or formatt'n instruct'ns. While Markdown’s rules has been influenced by several exist'n text-to-HTML filters, th' single biggest source o' inspirat'n fer Markdown’s rules be th' format o' plain text email. John Gruber

Smarrrt Arrrse

Bookmark this plank fer easy future reference!

Standard an' Extensions

If not otherwise noted, th' showed examples adhere t' th' Commonmark standard. In addit'n th' theme supports th' follow'n extensions:

  • GFM Extension on top o' standard Marrrkdown adher'n t' GitHub Flavored Marrrkdown.

  • PHP Extension on top o' standard Marrrkdown adher'n t' PHP Marrrkdown.

  • Pants Extension by John Gruber adher'n t' SmartyPants.

  • Relearrrn Extension specific t' this theme.

  • HTML If th' usage o' HTML be allowed 'n yer hugo.toml th' theme supports styl'n fer further elements not access'ble us'n Marrrkdown alone.

Paragraphs

In Marrrkdown yer rrrambl'n usually spans th' whole avail'ble document width. This be called a block. Blocks be always separated by whitespace t' their adjacent blocks 'n th' result'n document.

Any text not start'n wit' a special sign be written as normal, plain text paragraph block an' must be separated t' its adjacent blocks by empty lines.

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.

Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
Result

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.

Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.

Head'ns

A bloody idea be t' structure yer rrrambl'n us'n head'ns an' subhead'ns. HTML-head'ns from h1 through h6 be constructed wit' a # fer each level.

In Hugo ye usually don’t use h1 as this be generated by yer theme an' ye should only have one such element 'n a document.

# h1 Head'n

## h2 Head'n

### h3 Head'n

#### h4 Head'n

##### h5 Head'n

###### h6 Head'n
Result

h1 Head'n

h2 Head'n

h3 Head'n

h4 Head'n

h5 Head'n
h6 Head'n

Horizontal Rules

T' further structure yer rrrambl'n ye can add horizontal rules. They create a “thematic break” between paragraph blocks. In Marrrkdown, ye can create it wit' three consecutive dashes ---.

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.

---

Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
Result

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.


Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.

Text Markers

Bold

Ye can show importance o' a snippet o' text wit' a heavier font-weight by enclos'n it wit' two asterisks **.

I am rendered wit' **bold text**
Result

I am rendered wit' bold text

Italics

Ye can emphasize a snippet o' text wit' italics by enclos'n it wit' underscores _.

I am rendered wit' _italicized text_
Result

I am rendered wit' italicized text

Strikethrough

GFM Ye can do strikethroughs by enclos'n text wit' two tildes ~~.

~~Strike through this text~~
Result

Strike through this text

Marked Text

HTML Ye can mark text 'n th' predefined accent color o' yer stylesheet.

<mark>Parts</mark> o' this text <mark>be marked!</mark>
Result

Parts o' this text be marked!

Special Typesett'n

Text Substitut'n

Pants Ye can combine multiple punctuat'n characters t' single typographic entities. This will only be applied t' text outside o' code blocks or inline code.

Do'ble quotes `"` an' single quotes `'` o' enclosed text be replaced by **"do'ble curly quotes"** an' **'single curly quotes'**.

Do'ble dashes `--` an' triple dashes `---` be replaced by en-dash **--** an' em-dash **---** entities.

Do'ble arrows point'n left `<<` or right `>>` be replaced by arrow **<<** an' **>>** entities.

Three consecutive dots `...` be replaced by an ellipsis **...** entity.
Result

Do'ble quotes " an' single quotes ' o' enclosed text be replaced by “do'ble curly quotes” an' ‘single curly quotes’.

Do'ble dashes -- an' triple dashes --- be replaced by en-dash an' em-dash entities.

Do'ble arrows point'n left << or right >> be replaced by arrow « an' » entities.

Three consecutive dots ... be replaced by an ellipsis entity.

Keyboard Shortcuts

HTML Ye can use th' <kbd> element t' style keyboard shortcuts.

Press <kbd>STRG</kbd> <kbd>ALT</kbd> <kbd>DEL</kbd> t' end yer shift early.
Result

Press STRG ALT DEL t' end yer shift early.

Sub an' Super Script

HTML Ye can also use th' <sub> an' <sup> elements. For more complex stuff or if yer configurat'n does not allow HTML, ye can use th' math shortcode.

How many liters H<sub>2</sub>O fit into 1dm<sup>3</sup>?
Result

How many liters H2O fit into 1dm3?

Lists

Unordered

Ye can write a list o' items 'n which th' order o' th' items does not explicitly matter.

It be poss'ble t' nest lists by indent'n an item fer th' next sublevel.

Ye may use any o' -, * or + t' denote bullets fer each list item but should not switch between those symbols inside one whole list.

- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
  - Vestibulum laoreet porttitor sem
  - Ac tristique libero volutpat at
- Nulla volutpat aliquam velit
  - Phasellus iaculis neque
  - Purus sodales ultricies
- Faucibus porta lacus fringilla vel
Result
  • Lorem ipsum dolor sit amet
  • Consectetur adipisc'n elit
    • Vestibulum laoreet porttitor sem
    • Ac tristique libero volutpat at
  • Nulla volutpat aliquam velit
    • Phasellus iaculis neque
    • Purus sodales ultricies
  • Faucibus porta lacus fringilla vel

Ordered

Ye can create a list o' items 'n which th' order o' items does explicitly matter.

It be poss'ble t' nest lists by indent'n an item fer th' next sublevel.

Marrrkdown will automatically number each o' yer items consecutively. This means, th' order number ye be provid'n be irrelevant.

1. Lorem ipsum dolor sit amet
3. Consectetur adipisc'n elit
    1. Integer molestie lorem at massa
    7. Facilisis 'n pretium nisl aliquet
99. Nulla volutpat aliquam velit
    1. Faucibus porta lacus fringilla vel
    1. Aenean sit amet erat nunc
17. Eget porttitor lorem
Result
  1. Lorem ipsum dolor sit amet
  2. Consectetur adipisc'n elit
    1. Integer molestie lorem at massa
    2. Facilisis 'n pretium nisl aliquet
  3. Nulla volutpat aliquam velit
    1. Faucibus porta lacus fringilla vel
    2. Aenean sit amet erat nunc
  4. Eget porttitor lorem

Tasks

GFM Ye can add task lists result'n 'n checked or unchecked non-click'ble items

- [x] Basic Test
- [ ] More Tests
  - [x] View
  - [x] Hear
  - [ ] Smell
Result
  • Basic Test
  • More Tests
    • View
    • Hear
    • Smell

Definit'ns

PHP Definit'n lists be made o' terms an' definit'ns o' these terms, much like 'n a dictionary.

A definit'n list 'n Marrrkdown Extra be made o' a single-line term followed by a colon an' th' definit'n fer that term. Ye can also associate more than one term t' a definit'n.

If ye add empty lines around th' definit'n terms, additional vertical space will be generated. Also multiple paragraphs be poss'ble

Apple
: Pomaceous fruit o' plants o' th' genus Malus 'n th' family Rosaceae.
: An American computer company.

Orange
: Th' fruit o' an evergreen tree o' th' genus Citrus.

  Ye can make juice out o' it.
: A telecommunicat'n company.

  Ye can't make juice out o' it.
Result
Apple
Pomaceous fruit o' plants o' th' genus Malus 'n th' family Rosaceae.
An American computer company.
Orange
Th' fruit o' an evergreen tree o' th' genus Citrus.

Ye can make juice out o' it.

A telecommunicat'n company.

Ye can’t make juice out o' it.

Code

Inline Code

Inline snippets o' code can be wrapped wit' backticks `.

In this example, `<div></div>` be marked as code.
Result

In this example, <div></div> be marked as code.

Indented Code Block

A simple code block can be generated by indent'n several lines o' code by at least two spaces.

Be impressed by my advanced code:

    // Some comments
    line 1 o' code
    line 2 o' code
    line 3 o' code
Result

Be impressed by my advanced code:

// Some comments
line 1 o' code
line 2 o' code
line 3 o' code

Fenced Code Block

If ye want t' gain more control o' yer code block ye can enclose yer code by at least three backticks ``` a so called fence.

GFM Ye can also add a language specifier directly after th' open'n fence, ```js, an' rules highlight'n will automatically be applied accord'n t' th' selected language 'n th' rendered HTML.

See Code Highlight'n fer additional documentat'n.

```js
{
    name: "Claus",
    surname: "Santa",
    profession: "courier",
    age: 666,
    address: {
        city: "North Pole",
        postalCode: 1,
        country: "Arctic"
    },
    friends: [ "Dasher", "Dancer", "Prancer", "Vixen", "Comet", "Cupid", "Donder", "Blitzen", "Rudolph" ]
};
```
Result
{
    name: "Claus",
    surname: "Santa",
    profession: "courier",
    age: 666,
    address: {
        city: "North Pole",
        postalCode: 1,
        country: "Arctic"
    },
    friends: [ "Dasher", "Dancer", "Prancer", "Vixen", "Comet", "Cupid", "Donder", "Blitzen", "Rudolph" ]
};

Tables

GFM Ye can create tables by add'n pipes as dividers between each cell, an' by add'n a line o' dashes (also separated by bars) beneath th' header. Avast that th' pipes do not need t' be vertically aligned.

| Opt'n | Descript'n |
|--------|-------------|
| data   | path t' data files t' supply th' data that will be passed into templates. |
| engine | engine t' be used fer process'n templates. Handlebars be th' default. |
| ext    | extension t' be used fer dest files. |
Result
Opt'n Descript'n
data path t' data files t' supply th' data that will be passed into templates.
engine engine t' be used fer process'n templates. Handlebars be th' default.
ext extension t' be used fer dest files.

Aligned Columns

Add'n a colon on th' left and/or right side o' th' dashes below any head'n will align th' text fer that column accordingly.

| Opt'n | Number | Descript'n |
|-------:|:------:|:------------|
| data   | 1      | path t' data files t' supply th' data that will be passed into templates. |
| engine | 2      | engine t' be used fer process'n templates. Handlebars be th' default. |
| ext    | 3      | extension t' be used fer dest files. |
Result
Opt'n Number Descript'n
data 1 path t' data files t' supply th' data that will be passed into templates.
engine 2 engine t' be used fer process'n templates. Handlebars be th' default.
ext 3 extension t' be used fer dest files.

Blockquotes

For quot'n blocks o' rrrambl'n from another source within yer document add > before any text ye want t' quote.

Blockquotes can also be nested.

> Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue, aliquam non hendrerit ac, commodo vel nisi.
>
> > Sed adipisc'n elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis 'n dolor tincidunt mollis ac eu diam.
>
> Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus.
Result

Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue, aliquam non hendrerit ac, commodo vel nisi.

Sed adipisc'n elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis 'n dolor tincidunt mollis ac eu diam.

Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus.

GFM Absolute URLs will automatically be converted into a link.

This be a link t' https://example.com.
Result

This be a link t' https://example.com.

Ye can explicitly define links 'n case ye want t' use non-absolute URLs or want t' give different text.

[Assemble](http://assemble.io)
Result

For even further informat'n, ye can add an additional text, displayed 'n a tooltip on hover'n over th' link.

[Upstage](https://github.com/upstage/ "Visit Upstage!")
Result

Links can be simplyfied fer recurr'n reuse by us'n a reference ID t' later define th' URL locat'n. This simplyfies writ'n if ye want t' use a link more than once 'n a document.

[Example][somelinkID]

[somelinkID]: https://example.com "Go t' example domain"
Result

Footnotes

PHP Footnotes work mostly like reference-style links. A footnote be made o' two th'ns, a marker 'n th' text that will become a superscript number an' a footnote definit'n that will be placed 'n a list o' footnotes.

Usually th' list o' footnotes will be shown at th' end o' yer document. If we use a footnote 'n a notice box it will instead be listed at th' end o' its box.

Footnotes can contain block elements, which means that ye can put multiple paragraphs, lists, blockquotes an' so on 'n a footnote. It works th' same as fer list items, just indent th' follow'n paragraphs by four spaces 'n th' footnote definit'n.

That's some text wit' a footnote[^1]

[^1]: An' that's th' footnote.

That's some more text wit' a footnote.[^someid]

[^someid]:
    Anyth'n o' interest goes here.

    Blue light glows blue.
Result

That’s some text wit' a footnote1

That’s some more text wit' a footnote.2


  1. An' that’s th' footnote. ↩︎

  2. Anyth'n o' interest goes here.

    Blue light glows blue. ↩︎

Images

Basic Images

Images have a similar rules t' links but include a preced'n exclamat'n mark.

![Spock](https://octodex.github.com/images/spocktocat.png)
Result

Spock Spock

Image wit' Tooltip

Like links, images can also be given a tooltip.

![Picard](https://octodex.github.com/images/jean-luc-picat.jpg "Jean Luc Picard")
Result

Picard Picard

Image References

Images can also be linked by reference ID t' later define th' URL locat'n. This simplyfies writ'n if ye want t' use an image more than once 'n a document.

![La Forge][laforge]

[laforge]: https://octodex.github.com/images/trekkie.jpg "Geordi La Forge"
Result

La Forge La Forge

Image Effects

Relearrrn This theme allows additional non-standard formatt'n by sett'n query parameter at th' end o' th' image URL. Th' default behavior be configur'ble through yer hugo.toml or frontmatter parameter.

Resiz'n

Add query parameter width and/or height t' th' link image t' resize th' image. Values be CSS values (default be auto).

![Minion](https://octodex.github.com/images/minion.png?width=20vw)
Result

Minion Minion

![Minion](https://octodex.github.com/images/minion.png?height=50px)
Result

Minion Minion

![Minion](https://octodex.github.com/images/minion.png?height=50px&width=40vw)
Result

Minion Minion

CSS Classes

Add a query parameter classes t' th' link image t' add CSS classes. Add some o' th' predefined values or even define yer own 'n yer CSS.

Shadow
![Spidertocat](https://octodex.github.com/images/spidertocat.png?classes=shadow)
Result

Spidertocat Spidertocat

Border
![DrOctocat](https://octodex.github.com/images/droctocat.png?classes=border)
Result

DrOctocat DrOctocat

Left
![Supertocat](https://octodex.github.com/images/okal-eltocat.jpg?classes=left)
Result

Supertocat Supertocat

![Riddlocat](https://octodex.github.com/images/riddlocat.jpg?classes=right)
Result

Riddlocat Riddlocat

Inline
![Spidertocat](https://octodex.github.com/images/spidertocat.png?classes=inline)
![DrOctocat](https://octodex.github.com/images/droctocat.png?classes=inline)
![Supertocat](https://octodex.github.com/images/okal-eltocat.jpg?classes=inline)
![Riddlocat](https://octodex.github.com/images/riddlocat.jpg?classes=inline)
Result

Spidertocat Spidertocat DrOctocat DrOctocat Supertocat Supertocat Riddlocat Riddlocat

Combinat'n
![X-tocat](https://octodex.github.com/images/xtocat.jpg?classes=shadow,border,left)
Result

X-tocat X-tocat

Add th' query parameter lightbox=false t' th' image link t' dis'ble th' lightbox.

![Homercat](https://octodex.github.com/images/homercat.png?lightbox=false)
Result

Homercat

Avast

If ye want t' wrap an image 'n a link an' lightbox=true be yer default sett'n, ye have t' explicitly dis'ble th' lightbox t' avoid it t' hijack'n yer link like:

[![Homercat](https://octodex.github.com/images/homercat.png?lightbox=false)](https://octodex.github.com/#homercat)

Homercat

Image Effects

Th' theme supports non-standard image effects.

Name Descript'n
border Draws a light thin border around th' image
lazy Lets th' image be lazy boarded
lightbox Th' image will be click'ble t' show it enlarged
shadow Draws a shadow around th' image t' make it appear hovered/glow'n

As described, ye can add this t' th' URL query parameter, but this may be cumbersome t' be done consistently fer th' whole plank.

Instead, ye can configure th' defaults 'n yer hugo.toml as well as overrid'n these default 'n th' planks frontmatter.

Explicitly set URL query parameter will override th' defaults 'n effect fer a plank.

Without any sett'ns 'n yer hugo.toml this defaults t'

hugo.
[params]
  [params.imageEffects]
    border = false
    lazy = true
    lightbox = true
    shadow = false
params:
  imageEffects:
    border: false
    lazy: true
    lightbox: true
    shadow: false
{
   "params": {
      "imageEffects": {
         "border": false,
         "lazy": true,
         "lightbox": true,
         "shadow": false
      }
   }
}

This can be overridden 'n a planks frontmatter by eg.

+++
[imageEffects]
  border = true
+++
---
imageEffects:
  border: true
---
{
   "imageEffects": {
      "border": true
   }
}

Or by explicitly override sett'ns by URL query parameter

![Minion](https://octodex.github.com/images/minion.png?lightbox=false&bg-white=true)

Th' sett'ns applied t' th' above image would be

bg-white = true
border = true
lazy = true
lightbox = false
shadow = false
bg-white: true
border: true
lazy: true
lightbox: false
shadow: false
{
   "bg-white": true,
   "border": true,
   "lazy": true,
   "lightbox": false,
   "shadow": false
}

This ends up 'n th' follow'n HTML whar' th' parameter be converted t' CSS classes.

<img src="https://octodex.github.com/images/minion.png?lightbox=false&bg-white=true" load'n="lazy" alt="Minion" class="bg-white border lazy nolightbox noshadow">

Extend'n

As ye can see 'n th' above example, th' bg-white parameter be not initially supported 'n th' themes default sett'ns. Nevertheless ye be free t' define arbitrary parameter by just add'n them t' th' URL query parameter or set them 'n yer hugo.toml or planks frontmatter.

Avast

If no extended parameter like bg-white 'n th' example be set on th' URL, a class="nobg-white" 'n th' HTML will only be generated if a default value was set 'n th' hugo.toml or planks frontmatter.

Menu extrrra shorrrtcuts

Ye can define additional menu entries or shortcuts 'n th' navigat'n menu without any link t' rrrambl'n.

Basic configurat'n

Edit th' website configurat'n hugo.toml an' add a [[menu.shortcuts]] entry fer each link yer want t' add.

Example from th' current website:

hugo.
[menu]
  [[menu.shortcuts]]
    identifier = 'ds'
    name = "<i class='fa-fw fab fa-github'></i> GitHub repo"
    url = 'https://github.com/McShelby/hugo-theme-relearn'
    weight = 10

  [[menu.shortcuts]]
    name = "<i class='fa-fw fas fa-camera'></i> Showcases"
    url = 'showcase/'
    weight = 11

  [[menu.shortcuts]]
    identifier = 'hugodoc'
    name = "<i class='fa-fw fas fa-bookmark'></i> Cap'n Hugo Documentation"
    url = 'https://gohugo.io/'
    weight = 20

  [[menu.shortcuts]]
    name = "<i class='fa-fw fas fa-bullhorn'></i> Credits"
    url = 'more/credits/'
    weight = 30

  [[menu.shortcuts]]
    name = "<i class='fa-fw fas fa-tags'></i> Tags"
    url = 'tags/'
    weight = 40
menu:
  shortcuts:
  - identifier: ds
    name: <i class='fa-fw fab fa-github'></i> GitHub repo
    url: https://github.com/McShelby/hugo-theme-relearn
    weight: 10
  - name: <i class='fa-fw fas fa-camera'></i> Showcases
    url: showcase/
    weight: 11
  - identifier: hugodoc
    name: <i class='fa-fw fas fa-bookmark'></i> Cap'n Hugo Documentat'n
    url: https://gohugo.io/
    weight: 20
  - name: <i class='fa-fw fas fa-bullhorn'></i> Credits
    url: more/credits/
    weight: 30
  - name: <i class='fa-fw fas fa-tags'></i> Tags
    url: tags/
    weight: 40
{
   "menu": {
      "shortcuts": [
         {
            "identifier": "ds",
            "name": "\u003ci class='fa-fw fab fa-github'\u003e\u003c/i\u003e GitHub repo",
            "url": "https://github.com/McShelby/hugo-theme-relearn",
            "weight": 10
         },
         {
            "name": "\u003ci class='fa-fw fas fa-camera'\u003e\u003c/i\u003e Showcases",
            "url": "showcase/",
            "weight": 11
         },
         {
            "identifier": "hugodoc",
            "name": "\u003ci class='fa-fw fas fa-bookmark'\u003e\u003c/i\u003e Cap'n Hugo Documentation",
            "url": "https://gohugo.io/",
            "weight": 20
         },
         {
            "name": "\u003ci class='fa-fw fas fa-bullhorn'\u003e\u003c/i\u003e Credits",
            "url": "more/credits/",
            "weight": 30
         },
         {
            "name": "\u003ci class='fa-fw fas fa-tags'\u003e\u003c/i\u003e Tags",
            "url": "tags/",
            "weight": 40
         }
      ]
   }
}

By default, shortcuts be preceded by a title. This title can be disabled by sett'n disableShortcutsTitle=true. However, if ye want t' keep th' title but change its value, it can be overridden by chang'n yer local i18n translat'n str'n configurat'n.

For example, 'n yer local i18n/en.toml file, add th' follow'n rrrambl'n

[Shortcuts-Title]
other = "<Your value>"

Read more about hugo menu an' hugo i18n translat'n str'ns

Configurat'n fer Multilingual mode

When us'n a multilingual website, ye can set different menus fer each language. In th' hugo.toml file, prefix yer menu configurat'n by Languages.<language-id>.

Example from th' current website:

hugo.
[languages]
  [languages.en]
    languageName = 'English'
    title = 'Hugo Relearrrn Theme'
    weight = 1

    [languages.en.menu]
      [[languages.en.menu.shortcuts]]
        identifier = 'ds'
        name = "<i class='fa-fw fab fa-github'></i> GitHub repo"
        url = 'https://github.com/McShelby/hugo-theme-relearn'
        weight = 10

      [[languages.en.menu.shortcuts]]
        name = "<i class='fa-fw fas fa-camera'></i> Showcases"
        pageRef = 'showcase/'
        weight = 11

      [[languages.en.menu.shortcuts]]
        identifier = 'hugodoc'
        name = "<i class='fa-fw fas fa-bookmark'></i> Cap'n Hugo Documentation"
        url = 'https://gohugo.io/'
        weight = 20

      [[languages.en.menu.shortcuts]]
        name = "<i class='fa-fw fas fa-bullhorn'></i> Credits"
        pageRef = 'more/credits/'
        weight = 30

      [[languages.en.menu.shortcuts]]
        name = "<i class='fa-fw fas fa-tags'></i> Tags"
        pageRef = 'tags/'
        weight = 40

    [languages.en.params]
      landingPageName = "<i class='fa-fw fas fa-home'></i> Home"

  [languages.pir]
    languageName = 'Arrr! Pirrrates'
    title = "Cap'n Hugo Relearrrn Theme"
    weight = 1

    [languages.pir.menu]
      [[languages.pir.menu.shortcuts]]
        identifier = 'ds'
        name = "<i class='fa-fw fab fa-github'></i> GitHub repo"
        url = 'https://github.com/McShelby/hugo-theme-relearn'
        weight = 10

      [[languages.pir.menu.shortcuts]]
        name = "<i class='fa-fw fas fa-camera'></i> Showcases"
        pageRef = 'showcase/'
        weight = 11

      [[languages.pir.menu.shortcuts]]
        identifier = 'hugodoc'
        name = "<i class='fa-fw fas fa-bookmark'></i> Cap'n Hugo Documentat'n"
        url = 'https://gohugo.io/'
        weight = 20

      [[languages.pir.menu.shortcuts]]
        name = "<i class='fa-fw fas fa-bullhorn'></i> Crrredits"
        pageRef = 'more/credits/'
        weight = 30

      [[languages.pir.menu.shortcuts]]
        name = "<i class='fa-fw fas fa-tags'></i> Arrr! Tags"
        pageRef = 'tags/'
        weight = 40

    [languages.pir.params]
      landingPageName = "<i class='fa-fw fas fa-home'></i> Arrr! Home"
languages:
  en:
    languageName: English
    menu:
      shortcuts:
      - identifier: ds
        name: <i class='fa-fw fab fa-github'></i> GitHub repo
        url: https://github.com/McShelby/hugo-theme-relearn
        weight: 10
      - name: <i class='fa-fw fas fa-camera'></i> Showcases
        pageRef: showcase/
        weight: 11
      - identifier: hugodoc
        name: <i class='fa-fw fas fa-bookmark'></i> Cap'n Hugo Documentat'n
        url: https://gohugo.io/
        weight: 20
      - name: <i class='fa-fw fas fa-bullhorn'></i> Credits
        pageRef: more/credits/
        weight: 30
      - name: <i class='fa-fw fas fa-tags'></i> Tags
        pageRef: tags/
        weight: 40
    params:
      landingPageName: <i class='fa-fw fas fa-home'></i> Home
    title: Cap'n Hugo Relearrrn Theme
    weight: 1
  pir:
    languageName: Arrr! Pirrrates
    menu:
      shortcuts:
      - identifier: ds
        name: <i class='fa-fw fab fa-github'></i> GitHub repo
        url: https://github.com/McShelby/hugo-theme-relearn
        weight: 10
      - name: <i class='fa-fw fas fa-camera'></i> Showcases
        pageRef: showcase/
        weight: 11
      - identifier: hugodoc
        name: <i class='fa-fw fas fa-bookmark'></i> Cap'n Hugo Documentat'n
        url: https://gohugo.io/
        weight: 20
      - name: <i class='fa-fw fas fa-bullhorn'></i> Crrredits
        pageRef: more/credits/
        weight: 30
      - name: <i class='fa-fw fas fa-tags'></i> Arrr! Tags
        pageRef: tags/
        weight: 40
    params:
      landingPageName: <i class='fa-fw fas fa-home'></i> Arrr! Home
    title: Cap'n Hugo Relearrrn Theme
    weight: 1
{
   "languages": {
      "en": {
         "languageName": "English",
         "menu": {
            "shortcuts": [
               {
                  "identifier": "ds",
                  "name": "\u003ci class='fa-fw fab fa-github'\u003e\u003c/i\u003e GitHub repo",
                  "url": "https://github.com/McShelby/hugo-theme-relearn",
                  "weight": 10
               },
               {
                  "name": "\u003ci class='fa-fw fas fa-camera'\u003e\u003c/i\u003e Showcases",
                  "pageRef": "showcase/",
                  "weight": 11
               },
               {
                  "identifier": "hugodoc",
                  "name": "\u003ci class='fa-fw fas fa-bookmark'\u003e\u003c/i\u003e Cap'n Hugo Documentation",
                  "url": "https://gohugo.io/",
                  "weight": 20
               },
               {
                  "name": "\u003ci class='fa-fw fas fa-bullhorn'\u003e\u003c/i\u003e Credits",
                  "pageRef": "more/credits/",
                  "weight": 30
               },
               {
                  "name": "\u003ci class='fa-fw fas fa-tags'\u003e\u003c/i\u003e Tags",
                  "pageRef": "tags/",
                  "weight": 40
               }
            ]
         },
         "params": {
            "landingPageName": "\u003ci class='fa-fw fas fa-home'\u003e\u003c/i\u003e Home"
         },
         "title": "Hugo Relearrrn Theme",
         "weight": 1
      },
      "pir": {
         "languageName": "Arrr! Pirrrates",
         "menu": {
            "shortcuts": [
               {
                  "identifier": "ds",
                  "name": "\u003ci class='fa-fw fab fa-github'\u003e\u003c/i\u003e GitHub repo",
                  "url": "https://github.com/McShelby/hugo-theme-relearn",
                  "weight": 10
               },
               {
                  "name": "\u003ci class='fa-fw fas fa-camera'\u003e\u003c/i\u003e Showcases",
                  "pageRef": "showcase/",
                  "weight": 11
               },
               {
                  "identifier": "hugodoc",
                  "name": "\u003ci class='fa-fw fas fa-bookmark'\u003e\u003c/i\u003e Cap'n Hugo Documentat'n",
                  "url": "https://gohugo.io/",
                  "weight": 20
               },
               {
                  "name": "\u003ci class='fa-fw fas fa-bullhorn'\u003e\u003c/i\u003e Crrredits",
                  "pageRef": "more/credits/",
                  "weight": 30
               },
               {
                  "name": "\u003ci class='fa-fw fas fa-tags'\u003e\u003c/i\u003e Arrr! Tags",
                  "pageRef": "tags/",
                  "weight": 40
               }
            ]
         },
         "params": {
            "landingPageName": "\u003ci class='fa-fw fas fa-home'\u003e\u003c/i\u003e Arrr! Home"
         },
         "title": "Cap'n Hugo Relearrrn Theme",
         "weight": 1
      }
   }
}

Read more about hugo menu an' hugo multilingual menus

Shortcuts t' planks inside o' yer project

If ye have shortcuts t' planks inside o' yer project an' ye don’t want them t' show up 'n plank menu section, ye have two choices:

  1. Make th' plank file fer th' shortcut a headless branch bundle (contained 'n its own subdirectory an' called _index.md) an' add th' follow'n frontmatter configurat'n t' th' file (see exampleSite’s content/showcase/_index.en.md). This causes its rrrambl'n t' not be ontained 'n th' 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"
    }
  2. Store th' plank file fer th' shortcut below a parent headless branch bundle an' add th' follow'n frontmatter t' he parent (see exampleSite’s content/more/_index.en.md). Don’t give this plank a title as this will cause it t' be shown 'n th' breadcrumbs - a th'n ye 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, th' file itself can be a branch bundle, leaf bundle or simple plank (see exampleSite’s content/more/credits.en.md). This causes its rrrambl'n t' be contained 'n th' sitemap.

    +++
    title = 'Credits'
    +++
    ---
    title: Credits
    ---
    {
       "title": "Credits"
    }

Multilingual an' i18n

Th' Relearrrn theme be fully compat'ble wit' Cap'n Hugo multilingual mode.

  • Avail'ble languages: Arabic, Simplified Chinese, Traditional Chinese, Czech, Dutch, English, Finnish, French, German, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Romanian, Russian, Spanish, Swahili, Turkish, Vietnamese. Feel free t' contribute!
  • Full support fer languages written right t' left
  • Automatic menu generat'n from multilingual rrrambl'n
  • In-browser language switch'n

I18n menu I18n menu

Basic configurat'n

Aft learn'n how Cap'n Hugo handle multilingual websites, define yer languages 'n yer hugo.toml file.

For example wit' current English an' Piratized English website.

Avast

Make sure yer default language be defined as th' first one 'n th' [languages] array, as th' theme needs t' make assumpt'ns on it

hugo.
defaultContentLanguage = 'en'

[languages]
  [languages.en]
    languageName = 'English'
    title = 'Hugo Relearrrn Theme'
    weight = 1

  [languages.pir]
    languageName = 'Arrr! Pirrrates'
    title = "Cap'n Hugo Relearrrn Theme"
    weight = 2
defaultContentLanguage: en
languages:
  en:
    languageName: English
    title: Cap'n Hugo Relearrrn Theme
    weight: 1
  pir:
    languageName: Arrr! Pirrrates
    title: Cap'n Hugo Relearrrn Theme
    weight: 2
{
   "defaultContentLanguage": "en",
   "languages": {
      "en": {
         "languageName": "English",
         "title": "Hugo Relearrrn Theme",
         "weight": 1
      },
      "pir": {
         "languageName": "Arrr! Pirrrates",
         "title": "Cap'n Hugo Relearrrn Theme",
         "weight": 2
      }
   }
}

Then, fer each new plank, append th' id o' th' language t' th' file.

  • Single file my-page.md be split 'n two files:
    • 'n English: my-page.md
    • 'n Piratized English: my-page.pir.md
  • Single file _index.md be split 'n two files:
    • 'n English: _index.md
    • 'n Piratized English: _index.pir.md
Ahoi

Be aware that only translated planks be displayed 'n menu. It’s not replaced wit' default language rrrambl'n.

Smarrrt Arrrse

Use slug frontmatter parameter t' translate urls too.

In case each page’s rrrambl'n be written 'n one single language only, th' above configurat'n will already configure th' site’s search functionality correctly.

Arrr

Although th' theme supports a wide variety o' supported languages, th' site’s search via th' Lunr search library does not. You’ll see error reports 'n yer browsers console log fer each unsupported language. Currently unsupported be:

  • Czech
  • Indonesian
  • Polish
  • Swahili

Search wit' mixed language support

In case yer page’s rrrambl'n contains text 'n multiple languages (e.g. ye be writ'n a Russian documentat'n fer yer english API), ye can add those languages t' yer hugo.toml t' broaden search.

hugo.
[params]
  additionalContentLanguage = ['en']
params:
  additionalContentLanguage:
  - en
{
   "params": {
      "additionalContentLanguage": [
         "en"
      ]
   }
}

As this be an array, ye can add multiple additional languages.

Avast

Keep 'n mind that th' language code required here, be th' base language code. E.g. if ye have additional rrrambl'n 'n zh-CN, ye have t' add just zh t' this parameter.

Overwrite translat'n str'ns

Translat'ns str'ns be used fer common default values used 'n th' theme (Edit button, Search placeholder an' so on). Translat'ns be avail'ble 'n English an' Piratized English but ye may use another language or want t' override default values.

T' override these values, create a new file 'n yer local i18n folder i18n/<idlanguage>.toml an' inspire yourself from th' theme themes/hugo-theme-relearn/i18n/en.toml

Dis'ble language switch'n

Switch'n th' language 'n th' browser be a great feature, but fer some reasons ye may want t' dis'ble it.

Just set disableLanguageSwitchingButton=true 'n yer hugo.toml

hugo.
[params]
  disableLanguageSwitchingButton = true
params:
  disableLanguageSwitchingButton: true
{
   "params": {
      "disableLanguageSwitchingButton": true
   }
}

Taxonomy

Th' Relearrrn theme supports Hugo’s default taxonomies tag an' category out o' th' box.

Configurat'n

Just add tags and/or categories t' any plank. They can be given as a single str'n or an array o' str'ns.

+++
categories = ['taxonomy', 'content']
tags = 'tutorial'
title = 'Taxonomy'
+++
---
categories:
- taxonomy
- rrrambl'n
tags: tutorial
title: Taxonomy
---
{
   "categories": [
      "taxonomy",
      "content"
   ],
   "tags": "tutorial",
   "title": "Taxonomy"
}

Behavior

Th' tags be displayed at th' top o' th' plank 'n alphabetical order.

Th' categories be displayed at th' bottom o' th' plank 'n alphabetical order 'n th' default implementat'n o' th' theme but can be customized by provid'n yer own content-footer.html partial.

Each item be a link t' a taxonomy plank display'n all th' articles wit' th' given term.

List all th' tags

In th' hugo.toml file ye can add a shortcut t' display all th' tags an' categories

hugo.
[menu]
  [[menu.shortcuts]]
    name = "<i class='fa-fw fas fa-tags'></i> Tags"
    url = '/tags'

  [[menu.shortcuts]]
    name = "<i class='fa-fw fas fa-layer-group'></i> Categories"
    url = '/categories'
menu:
  shortcuts:
  - name: <i class='fa-fw fas fa-tags'></i> Tags
    url: /tags
  - name: <i class='fa-fw fas fa-layer-group'></i> Categories
    url: /categories
{
   "menu": {
      "shortcuts": [
         {
            "name": "\u003ci class='fa-fw fas fa-tags'\u003e\u003c/i\u003e Tags",
            "url": "/tags"
         },
         {
            "name": "\u003ci class='fa-fw fas fa-layer-group'\u003e\u003c/i\u003e Categories",
            "url": "/categories"
         }
      ]
   }
}

Customizat'n

If ye define custom taxonomies an' want t' display a list o' them somewhere on yer plank (often 'n th' layouts/partials/content-footer.html) ye can call a partial that does th' job fer ye:

{{ partial "term-list.html" (dict
  "page" .
  "taxonomy" "categories"
  "icon" "layer-group"
) }}

Parameter

Name Default Notes
plank <empty> Mandatory reference t' th' plank.
taxonomy <empty> Th' plural name o' th' taxonomy t' display as used 'n yer frontmatter.
class <empty> Additional CSS classes set on th' outermost generated HTML element.

If set t' tags ye will get th' visuals fer display'n th' tags taxonomy, otherwise it will be a simple list o' links as fer th' categories taxonomy.
style primary Th' style scheme used if class be tags.

- by severity: info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, green, grey, orange, red
- by special color: default, transparent, code
color see notes Th' CSS color value t' be used if class be tags. If not set, th' chosen color depends on th' style. Any given value will overwrite th' default.

- fer severity styles: a nice match'n color fer th' severity
- fer all other styles: th' correspond'n color
ay'con <empty> An optional Font Awesome ay'con name set t' th' left o' th' list.
T' chapterrr 3

Shorrrtcodes

Cap'n Hugo uses Marrrkdown fer its simple rrrambl'n format. However, there be a lot o' th'ns that Marrrkdown doesn’t support well. Ye could use pure HTML t' expand possibilities.

But this happens t' be a bad idea. Everyone uses Marrrkdown because it’s pure an' simple t' read even non-rendered. Ye should avoid HTML t' keep it as simple as poss'ble.

T' avoid this limitat'ns, Cap'n Hugo created shorrrtcodes. A shortcode be a simple snippet inside a plank.

Th' Relearrrn theme provides multiple shorrrtcodes on top o' exist'n ones.

Badge

Marker badges t' display 'n yer text

Button

Click'ble buttons

Children

List th' child planks o' a plank

Expand

Expandable/collaps'ble sections o' text

Highlight

Render code wit' a rules highlighter

Ay'con

Nice ay'cons fer yer plank

Include

Displays rrrambl'n from other files

Math

Beautiful math an' chemical formulae

Merrrmaid

Generate diagrams an' flowcharts from text

Notice

Disclaimers t' help ye structure yer plank

OpenAPI

UI fer yer OpenAPI / Swagger specificat'ns

Resources

List resources contained 'n a plank bundle

SiteParam

Get value o' ship params

Tab

Show rrrambl'n 'n a single tab

Tabs

Show rrrambl'n 'n tabbed views

Subsct'ns o' Shorrrtcodes

Badge

Th' badge shortcode displays little markers 'n yer text wit' adjust'ble color, title an' ay'con.

Important Version6.6.6 Captain AhoiNew Awesome

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

{{% badge %}}Important{{% /badge %}}
{{% badge style="primary" title="Version" %}}6.6.6{{% /badge %}}
{{% badge style="red" ay'con="angle-double-up" %}}Captain{{% /badge %}}
{{% badge style="info" %}}New{{% /badge %}}
{{% badge color="fuchsia" ay'con="fa-fw fab fa-hackerrank" %}}Awesome{{% /badge %}}
{{ partial "shortcodes/badge.html" (dict
    "page"    .
    "content" "Important"
)}}
{{ partial "shortcodes/badge.html" (dict
  "page"  .
  "style" "primary"
  "title" "Version"
  "content" "6.6.6"
)}}
{{ partial "shortcodes/badge.html" (dict
  "page"  .
  "style" "red"
  "icon"  "angle-double-up"
  "content" "Captain"
)}}
{{ partial "shortcodes/badge.html" (dict
  "page"  .
  "style" "info"
  "content" "New"
)}}
{{ partial "shortcodes/badge.html" (dict
  "page"  .
  "color" "fuchsia"
  "icon"  "fab fa-hackerrank"
  "content" "Awesome"
)}}

Parameter

Name Default Notes
style default Th' style scheme used fer th' badge.

- by severity: info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, green, grey, orange, red
- by special color: default, transparent, code
color see notes Th' CSS color value t' be used. If not set, th' chosen color depends on th' style. Any given value will overwrite th' default.

- fer severity styles: a nice match'n color fer th' severity
- fer all other styles: th' correspond'n color
title see notes Arbitrary text fer th' badge title. Depend'n on th' style there may be a default title. Any given value will overwrite th' default.

- fer severity styles: th' match'n title fer th' severity
- fer all other styles: <empty>

If ye want no title fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
ay'con see notes Font Awesome ay'con name set t' th' left o' th' title. Depend'n on th' style there may be a default ay'con. Any given value will overwrite th' default.

- fer severity styles: a nice match'n ay'con fer th' severity
- fer all other styles: <empty>

If ye want no ay'con fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
<content> <empty> Arbitrary text fer th' badge.

Examples

Style

By Severity

{{% badge style="info" %}}New{{% /badge %}}
{{% badge style="note" %}}Change{{% /badge %}}
{{% badge style="tip" %}}Optional{{% /badge %}}
{{% badge style="warning" %}}Break'n{{% /badge %}}

AhoiNew AvastChange Smarrrt ArrrseOptional ArrrBreak'n

By Brand Colors

{{% badge style="primary" ay'con="bullhorn" title="Announcement" %}}Mandatory{{% /badge %}}
{{% badge style="secondary" ay'con="bullhorn" title="Announcement" %}}Optional{{% /badge %}}
{{% badge style="accent" ay'con="bullhorn" title="Announcement" %}}Special{{% /badge %}}

AnnouncementMandatory AnnouncementOptional AnnouncementSpecial

By Color

{{% badge style="blue" ay'con="palette" title="Color" %}}Blue{{% /badge %}}
{{% badge style="green" ay'con="palette" title="Color" %}}Green{{% /badge %}}
{{% badge style="grey" ay'con="palette" title="Color" %}}Grey{{% /badge %}}
{{% badge style="orange" ay'con="palette" title="Color" %}}Orange{{% /badge %}}
{{% badge style="red" ay'con="palette" title="Color" %}}Red{{% /badge %}}

ColorBlue ColorGreen ColorGrey ColorOrange ColorRed

By Special Color

{{% badge style="default" ay'con="palette" title="Color" %}}Default{{% /badge %}}
{{% badge style="transparent" ay'con="palette" title="Color" %}}Transparent{{% /badge %}}

ColorDefault ColorTransparent

Variants

Without Ay'con an' Title Text

{{% badge %}}6.6.6{{% /badge %}}
{{% badge style="info" ay'con=" " title=" " %}}Awesome{{% /badge %}}
{{% badge style="red" %}}Captain{{% /badge %}}

6.6.6 Awesome Captain

Without Ay'con

{{% badge title="Version" %}}6.6.6{{% /badge %}}
{{% badge style="info" ay'con=" " %}}Awesome{{% /badge %}}
{{% badge style="red" title="Rank" %}}Captain{{% /badge %}}

Version6.6.6 AhoiAwesome RankCaptain

Without Title Text

{{% badge ay'con="star" %}}6.6.6{{% /badge %}}
{{% badge style="info" title=" " %}}Awesome{{% /badge %}}
{{% badge style="red" ay'con="angle-double-up" %}}Captain{{% /badge %}}

6.6.6 Awesome Captain

All Set

{{% badge ay'con="star" title="Version" %}}6.6.6{{% /badge %}}
{{% badge style="info" %}}Awesome{{% /badge %}}
{{% badge style="red" ay'con="angle-double-up" title="Rank" %}}Captain{{% /badge %}}

Version6.6.6 AhoiAwesome RankCaptain

Override fer Severity

{{% badge style="info" ay'con="rocket" title="Feature" %}}Awesome{{% /badge %}}
FeatureAwesome

Other

Wit' User-Defined Color, Font Awesome Brand Ay'con an' Marrrkdown Title an' Rrrambl'n

{{% badge color="fuchsia" ay'con="fa-fw fab fa-hackerrank" title="**Font**" %}}**Awesome**{{% /badge %}}
FontAwesome

Wit' Ay'con Rrrambl'n

Ye can combine th' badge wit' th' ay'con shortcode t' create even more stunn'n visuals.

In this case ye need t' declare {{< badge >}} instead o' {{% badge %}}. Avast, that 'n this case it be not poss'ble t' put markdown 'n th' rrrambl'n.

{{< badge style="primary" ay'con="angle-double-up" >}}{{% ay'con skull-crossbones %}}{{< /badge >}}  
{{< badge style="primary" ay'con="angle-double-up" >}}{{% ay'con skull-crossbones %}} Pirate{{< /badge >}}  
{{< badge style="primary" title="Rank" >}}{{% ay'con skull-crossbones %}}{{< /badge >}}  
{{< badge style="primary" title="Rank" >}}{{% ay'con skull-crossbones %}} Pirate{{< /badge >}}  
{{< badge style="primary" ay'con="angle-double-up" title="Rank" >}}{{% ay'con skull-crossbones %}}{{< /badge >}}  
{{< badge style="primary" ay'con="angle-double-up" title="Rank" >}}{{% ay'con skull-crossbones %}} Pirate{{< /badge >}}


Pirate
Rank
Rank Pirate
Rank
Rank Pirate

Inside o' Text

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. {{% badge style="blue" ay'con="rocket" %}}Awesome{{% /badge %}} Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.

Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Awesome Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.

Button

Th' button shortcode displays a click'ble button wit' adjust'ble color, title an' ay'con.

Get Cap'n Hugo Get Cap'n Hugo

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

{{% button href="https://gohugo.io/" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="warning" ay'con="dragon" %}}Get Cap'n Hugo{{% /button %}}
{{ partial "shortcodes/button.html" (dict
    "page" .
    "href" "https://gohugo.io/"
    "content" "Get Hugo"
)}}
{{ partial "shortcodes/button.html" (dict
  "page" .
  "href" "https://gohugo.io/"
  "style" "warning"
  "icon" "dragon"
  "content" "Get Hugo"
)}}

Once th' button be clicked, it opens another browser tab fer th' given URL.

Parameter

Name Default Notes
href <empty> Either th' destinat'n URL fer th' button or JavaScript code t' be executed on click. If this parameter be not set, th' button will do noth'n but be still displayed as click'ble.

- if start'n wit' javascript: all follow'n text will be executed 'n yer browser
- every other str'n will be interpreted as URL
style transparent Th' style scheme used fer th' button.

- by severity: info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, green, grey, orange, red
- by special color: default, transparent, code
color see notes Th' CSS color value t' be used. If not set, th' chosen color depends on th' style. Any given value will overwrite th' default.

- fer severity styles: a nice match'n color fer th' severity
- fer all other styles: th' correspond'n color
ay'con see notes Font Awesome ay'con name set t' th' left o' th' title. Depend'n on th' style there may be a default ay'con. Any given value will overwrite th' default.

- fer severity styles: a nice match'n ay'con fer th' severity
- fer all other styles: <empty>

If ye want no ay'con fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
iconposit'n left Places th' ay'con t' th' left or right o' th' title.
target see notes Th' destinat'n frame/window if href be an URL. Otherwise th' parameter be not used. This behaves similar t' normal links. If th' parameter be not given it defaults t':

- th' sett'n o' externalLinkTarget or _blank if not set, fer any address start'n wit' http:// or https://
- no specific value fer all other links
type see notes Th' button type if href be JavaScript. Otherwise th' parameter be not used. If th' parameter be not given it defaults t' button
<content> see notes Arbitrary text fer th' button title. Depend'n on th' style there may be a default title. Any given value will overwrite th' default.

- fer severity styles: th' match'n title fer th' severity
- fer all other styles: <empty>

If ye want no title fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)

Examples

Style

By Severity

{{% button href="https://gohugo.io/" style="info" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="note" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="tip" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="warning" %}}Get Cap'n Hugo{{% /button %}}

Get Cap'n Hugo Get Cap'n Hugo Get Cap'n Hugo Get Cap'n Hugo

By Brand Colors

{{% button href="https://gohugo.io/" style="primary" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="secondary" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="accent" %}}Get Cap'n Hugo{{% /button %}}

Get Cap'n Hugo Get Cap'n Hugo Get Cap'n Hugo

By Color

{{% button href="https://gohugo.io/" style="blue" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="green" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="grey" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="orange" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="red" %}}Get Cap'n Hugo{{% /button %}}

Get Cap'n Hugo Get Cap'n Hugo Get Cap'n Hugo Get Cap'n Hugo Get Cap'n Hugo

By Special Color

{{% button href="https://gohugo.io/" style="default" %}}Get Cap'n Hugo{{% /button %}}
{{% button href="https://gohugo.io/" style="transparent" %}}Get Cap'n Hugo{{% /button %}}

Get Cap'n Hugo Get Cap'n Hugo

Ay'con

Empty

{{% button href="https://gohugo.io/" ay'con=" " %}}{{% /button %}}

Only

{{% button href="https://gohugo.io/" ay'con="download" %}}{{% /button %}}

T' th' Left

{{% button href="https://gohugo.io/" ay'con="download" %}}Get Cap'n Hugo{{% /button %}}
Get Cap'n Hugo

T' th' Right

{{% button href="https://gohugo.io/" ay'con="download" iconposit'n="right" %}}Get Cap'n Hugo{{% /button %}}
Get Cap'n Hugo

Override fer Severity

{{% button href="https://gohugo.io/" ay'con="dragon" style="warning" %}}Get Cap'n Hugo{{% /button %}}
Get Cap'n Hugo

Target

{{% button href="https://gohugo.io/" target="_self" %}}Get Cap'n Hugo 'n same window{{% /button %}}
{{% button href="https://gohugo.io/" %}}Get Cap'n Hugo 'n new Window/Frame (default){{% /button %}}

Get Cap'n Hugo 'n same Window/Frame Get Cap'n Hugo 'n new Window/Frame (default)

Other

Wit' User-Defined Color, Font Awesome Brand Ay'con an' Marrrkdown Title

{{% button href="https://gohugo.io/" color="fuchsia" ay'con="fa-fw fab fa-hackerrank" %}}Get **Cap'n Hugo**{{% /button %}}
Get Cap'n Hugo

Severity Style wit' All Defaults

{{% button href="https://gohugo.io/" style="tip" %}}{{% /button %}}
Smarrrt Arrrse

Button t' Internal Plank

{{% button href="/index.html" %}}Home{{% /button %}}
Home

Button wit' JavaScript Act'n

If yer JavaScript act'n does not change th' focus afterwards, make sure t' call this.blur() 'n th' end t' unselect th' button.

{{% button style="primary" ay'con="bullhorn" href="javascript:alert('Hello world!');this.blur();" %}}Shout it out{{% /button %}}

Button within a form Element

T' use native HTML elements 'n yer Marrrkdown, add this 'n yer hugo.toml

[marrrkup.goldmark.renderer]
    unsafe = true
<form act'n="../../search.html" method="get">
  <input name="search-by-detail" class="search-by" type="search">
  {{% button type="submit" style="secondary" icon="search" %}}Search{{% /button %}}
</form>

Children

Th' children shortcode lists th' child planks o' th' current plank an' its descendants.

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

{{% children sort="weight" %}}
{{ partial "shortcodes/children.html" (dict
  "page" .
  "sort" "weight"
)}}

Parameter

Name Default Notes
containerstyle ul Choose th' style used t' group all children. It could be any HTML tag name.
style li Choose th' style used t' display each descendant. It could be any HTML tag name.
showhidden false When true, child planks hidden from th' menu will be displayed as well.
descript'n false When true shows a short text under each plank 'n th' list. When no descript'n or summary exists fer th' plank, th' first 70 words o' th' rrrambl'n be taken - read more info about summaries on gohugo.io.
depth 1 Th' depth o' descendants t' display. For example, if th' value be 2, th' shortcode will display two levels o' child planks. T' get all descendants, set this value t' a high number eg. 999.
sort auto Th' sort criteria o' th' displayed list.

- auto defaults t' ordersectionsby o' th' planks frontmatter
    or t' ordersectionsby o' th' ship configurat'n
    or t' weight
- weight
- title
- linktitle
- modifieddate
- expirydate
- publishdate
- date
- length
- default adher'n t' Hugo’s default sort criteria

Examples

All Default

{{% children  %}}

Wit' Descript'n

{{% children descript'n="true" %}}
  • plank X

    This be a plain plank test, an' th' beginn'n o' a YAML multiline descript'n...

  • plank 1

    This be a demo child plank

  • plank 2

    This be a demo child plank wit' no descript'n. So its rrrambl'n be used as descript'n.

  • plank 3

    This be a demo child plank

Infinite Depth an' Hidden Planks

{{% children depth="999" showhidden="true" %}}

Head'n Styles fer Container an' Elements

{{% children containerstyle="div" style="h2" depth="3" descript'n="true" %}}

plank X

This be a plain plank test, an' th' beginn'n o' a YAML multiline descript'n...

plank 1

This be a demo child plank

plank 1-1

This be a demo child plank

plank 1-1-2 (headless)

This be a demo child plank

plank 1-1-3

This be a demo child plank

plank 2

This be a demo child plank wit' no descript'n. So its rrrambl'n be used as descript'n.

plank 3

This be a demo child plank

plank 3-1

This be a plain plank test nested 'n a parent

Divs fer Group an' Element Styles

{{% children containerstyle="div" style="div" depth="3" %}}

Subsct'ns o' Children

plank X

This be a plain demo child plank.

Subsct'ns o' plank 1

Subsct'ns o' plank 1-1

plank 1-1-2 (headless)

Subsct'ns o' plank 1-1-2 (headless)

plank 2

This be a demo child plank wit' no descript'n.

So its rrrambl'n be used as descript'n.

Subsct'ns o' plank 3

Expand

Th' expand shortcode displays an expandable/collaps'ble section o' text.

Thank ye!

That’s some text wit' a footnote1

That’s some more text wit' a footnote.2


  1. An' that’s th' footnote. ↩︎

  2. Anyth'n o' interest goes here.

    Blue light glows blue. ↩︎

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' use positional as well or also call this shortcode from yer own partials.

{{% expand title="Expand me..." %}}Thank ye!{{% /expand %}}
{{% expand "Expand me..." %}}Thank ye!{{% /expand %}}
{{ partial "shortcodes/expand.html" (dict
  "page"  .
  "title" "Expand me..."
  "content" "Thank ye!"
)}}

Parameter

Name Posit'n Default Notes
title 1 "Expand me..." Arbitrary text t' appear next t' th' expand/collapse ay'con.
open 2 false When true th' rrrambl'n text will be initially shown as expanded.
<content> <empty> Arbitrary text t' be displayed on expand.

Examples

All Defaults

{{% expand %}}Yes, ye did it!{{% /expand %}}

Yes, ye did it!

Initially Expanded

{{% expand title="Expand me..." open="true" %}}No need t' press ye!{{% /expand %}}

No need t' press ye!

Arbitrary Text

{{% expand title="Show me almost **endless** possibilities" %}}
Ye can add standard markdown rules:

- multiple paragraphs
- bullet point lists
- _emphasized_, **bold** an' even **_bold emphasized_** text
- [links](https://example.com)
- etc.

```plaintext
...and even source code
```

> th' possibilities be endless (almost - includ'n other shorrrtcodes may or may not work)
{{% /expand %}}

Ye can add standard markdown rules:

  • multiple paragraphs
  • bullet point lists
  • emphasized, bold an' even bold emphasized text
  • links
  • etc.
...and even source code

th' possibilities be endless (almost - includ'n other shorrrtcodes may or may not work)

Highlight

Arrr! Pirrrates

Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like Merrrmaids, do'n math or chemistrrry and stuff.

Th' highlight shortcode renders yer code wit' a rules highlighter.

1print("Hello World!")

Usage

This shortcode be fully compat'ble wit' Hugo’s highlight shortcode but offers some extensions.

It be called interchangeably 'n th' same way as Hugo’s own shortcode provid'n positional parameter or by simply us'n codefences.

Ye be free t' also call this shortcode from yer own partials. In this case it resembles Hugo’s highlight funct'n rules if ye call this shortcode as a partial us'n compatibility rules.

While th' examples be us'n shorrrtcodes wit' named parameter it be recommended t' use codefences instead. This be because more an' more other software supports codefences (eg. GitHub) an' so yer markdown becomes more port'ble.

```py { lineNos="true" wrap="true" title="python" }
print("Hello World!")
```
{{< highlight lineNos="true" type="py" wrap="true" title="python" >}}
print("Hello World!")
{{< /highlight >}}
{{< highlight py "lineNos=true,wrap=true,title=python" >}}
print("Hello World!")
{{< /highlight >}}
{{ partial "shortcodes/highlight.html" (dict
  "page"    .
  "content" "print(\"Hello World!\")"
  "lineNos" "true"
  "type"    "py"
  "wrap"    "true"
  "title"   "python"
)}}
{{ partial "shortcodes/highlight.html" (dict
  "page"    .
  "content" "print(\"Hello World!\")"
  "options" "lineNos=true,wrap=true,title=python"
  "type"    "py"
)}}

Parameter

Name Posit'n Default Notes
type 1 <empty> Th' language o' th' code t' highlight. Choose from one o' th' supported languages. Case-insensitive.
title <empty> Extension. Arbitrary title fer code. This displays th' code like a single tab if hl_inline=false (which be Hugo’s default).
wrap see notes Extension. When true th' rrrambl'n may wrap on long lines otherwise it will be scroll'ble.

Th' default value can be set 'n yer hugo.toml an' overwritten via frontmatter. See below.
opt'ns 2 <empty> An optional, comma-separated list o' zero or more Cap'n Hugo supported opt'ns as well as extension parameter from this t'ble.
<option> <empty> Any o' Hugo’s supported opt'ns.
<content> <empty> Yer code t' highlight.

Configurat'n

Default values fer Hugo’s supported opt'ns can be set via goldmark sett'ns 'n yer hugo.toml

Default values fer extension opt'ns can be set via params sett'ns 'n yer hugo.toml or be overwritten by frontmatter fer each individual plank.

Global Configurat'n File

Ye can configure th' color style used fer code blocks 'n yer color variants stylesheet file.

hugo.
[marrrkup]
  [marrrkup.highlight]
    lineNumbersInT'ble = false
    noClasses = false
marrrkup:
  highlight:
    lineNumbersInT'ble: false
    noClasses: false
{
   "markup": {
      "highlight": {
         "lineNumbersInTable": false,
         "noClasses": false
      }
   }
}

Optional Sett'ns

hugo.
[params]
  highlightWrap = true
params:
  highlightWrap: true
{
   "params": {
      "highlightWrap": true
   }
}

Page’s Frontmatter

+++
highlightWrap = true
+++
---
highlightWrap: true
---
{
   "highlightWrap": true
}

Examples

Line Numbers wit' Start'n Offset

As mentioned above, line numbers 'n a t'ble layout will shift if code be wrapp'n, so better use inline. T' make th'ns easier fer ye, set lineNumbersInT'ble = false 'n yer hugo.toml an' add lineNos = true when call'n th' shortcode instead o' th' specific values t'ble or inline.

{{< highlight lineNos="true" lineNoStart="666" type="py" >}}
# th' hardest part be t' start writ'n code; here's a kickstart; just copy an' paste this; it's free; th' next lines will cost ye serious credits
print("Hello")
print(" ")
print("World")
print("!")
{{< /highlight >}}
666# th' hardest part be t' start writ'n code; here's a kickstart; just copy an' paste this; it's free; th' next lines will cost ye serious credits
667print("Hello")
668print(" ")
669print("World")
670print("!")

Codefence wit' Title

```py { title="python" }
# a bit shorter
print("Hello World!")
```
# a bit shorter
print("Hello World!")

Wit' Wrap

{{< highlight type="py" wrap="true" hl_lines="2" >}}
# Quicksort Python One-liner
lambda L: [] if L==[] else qsort([x fer x 'n L[1:] if x< L[0]]) + L[0:1] + qsort([x fer x 'n L[1:] if x>=L[0]])
# Some more stuff
{{< /highlight >}}
# Quicksort Python One-liner
lambda L: [] if L==[] else qsort([x fer x 'n L[1:] if x< L[0]]) + L[0:1] + qsort([x fer x 'n L[1:] if x>=L[0]])
# Some more stuff

Without Wrap

{{< highlight type="py" wrap="false" hl_lines="2" >}}
# Quicksort Python One-liner
lambda L: [] if L==[] else qsort([x fer x 'n L[1:] if x< L[0]]) + L[0:1] + qsort([x fer x 'n L[1:] if x>=L[0]])
# Some more stuff
{{< /highlight >}}
# Quicksort Python One-liner
lambda L: [] if L==[] else qsort([x fer x 'n L[1:] if x< L[0]]) + L[0:1] + qsort([x fer x 'n L[1:] if x>=L[0]])
# Some more stuff

Icon

Th' ay'con shortcode displays ay'cons us'n th' Font Awesome library.

Usage

While th' examples be us'n shorrrtcodes wit' positional parameter ye be free t' also call this shortcode from yer own partials.

{{% ay'con ay'con="exclamation-triangle" %}}
{{% ay'con ay'con="angle-double-up" %}}
{{% ay'con ay'con="skull-crossbones" %}}
{{% ay'con exclamat'n-triangle %}}
{{% ay'con angle-do'ble-up %}}
{{% ay'con skull-crossbones %}}
{{ partial "shortcodes/icon.html" (dict
    "page" .
    "icon" "exclamation-triangle"
)}}
{{ partial "shortcodes/icon.html" (dict
    "page" .
    "icon" "angle-double-up"
)}}
{{ partial "shortcodes/icon.html" (dict
    "page" .
    "icon" "skull-crossbones"
)}}

Parameter

Name Posit'n Default Notes
ay'con 1 <empty> Font Awesome ay'con name t' be displayed. It will be displayed 'n th' text color o' its accord'n context.

Find'n an ay'con

Browse through th' avail'ble ay'cons 'n th' Font Awesome Gallery. Notice that th' free filter be enabled, as only th' free ay'cons be avail'ble by default.

Once on th' Font Awesome plank fer a specific ay'con, fer example th' plank fer th' heart, copy th' ay'con name an' paste into th' Marrrkdown rrrambl'n.

Customis'n Ay'cons

Font Awesome provides many ways t' modify th' ay'con

  • Change color (by default th' ay'con will inherit th' parent color)
  • Increase or decrease size
  • Rotate
  • Combine wit' other ay'cons

Check th' full documentat'n on web fonts wit' CSS fer more.

Examples

Standard Usage

Built wit' {{% ay'con heart %}} by Relearrrn an' Cap'n Hugo

Built wit' by Relearrrn an' Cap'n Hugo

Advanced HTML Usage

While th' shortcode simplifies us'n standard ay'cons, th' ay'con customizat'n an' other advanced features o' th' Font Awesome library require ye t' use HTML directly. Paste th' <i> HTML into marrrkup, an' Font Awesome will board th' relevant ay'con.

Built wit' <i class="fas fa-heart"></i> by Relearrrn an' Cap'n Hugo

Built wit' by Relearrrn an' Cap'n Hugo

T' use these native HTML elements 'n yer Marrrkdown, add this 'n yer hugo.toml:

[marrrkup.goldmark.renderer]
    unsafe = true

Include

Th' include shortcode includes other files from yer project inside o' th' current plank.

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' use positional as well or also call this shortcode from yer own partials.

{{% include file="shortcodes/include/INCLUDE_ME.md" %}}
{{% include "shortcodes/include/INCLUDE_ME.md" %}}
{{ partial "shortcodes/include .html" (dict
  "page" .
  "file" "shortcodes/include/INCLUDE_ME.md"
)}}

Th' included files can even contain Marrrkdown an' will be taken into account when generat'n th' t'ble o' contents.

Parameter

Name Posit'n Default Notes
file 1 <empty> Th' path t' th' file t' be included. Path resolut'n adheres t' Hugo’s build-in readFile funct'n
hidefirsthead'n 2 false When true an' th' included file contains head'ns, th' first head'n will be hidden. This comes 'n handy, eg. if ye include otherwise standalone Marrrkdown files.

Examples

Arbitrary Rrrambl'n

{{% include "shortcodes/include/INCLUDE_ME.md" %}}

Ye can add standard markdown rules:

  • multiple paragraphs
  • bullet point lists
  • emphasized, bold an' even bold emphasized text
  • links
  • etc.1
...and even source code

th' possibilities be endless (almost - includ'n other shorrrtcodes may or may not work) (almost - includ'n other shorrrtcodes may or may not work)


  1. Et Cetera (English: /ɛtˈsɛtərə/), abbreviated t' etc., etc, et cet., be a Latin expression that be used 'n English t' mean “and other similar things”, or “and so forth” ↩︎

Math

Arrr! Pirrrates

Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like Merrrmaids, do'n math or chemistrrry and stuff.

Th' math shortcode generates beautiful formatted math an' chemical formulae us'n th' MathJax library.

$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$

Usage

While th' examples be us'n shorrrtcodes wit' named parameter it be recommended t' use codefences instead. This be because more an' more other software supports Math codefences (eg. GitHub) an' so yer markdown becomes more port'ble.

Ye be free t' also call this shortcode from yer own partials.

Math be also us'ble without enclos'n it 'n a shortcode or codefence but requires configurat'n by ye. In this case no parameter from th' below t'ble be avail'ble.

```math { align="center" }
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
```
{{< math align="center" >}}
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
{{< /math >}}
{{ partial "shortcodes/math.html" (dict
  "page"    .
  "content" "$$left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$"
  "align"   "center"
)}}
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$

Parameter

Name Default Notes
align center Allowed values be left, center or right.
<content> <empty> Yer formulae.

Configurat'n

MathJax be configured wit' default sett'ns but ye can cust'mize MathJax’s default sett'ns fer all o' yer files through a JSON object 'n yer hugo.toml or override these sett'ns per plank through yer planks frontmatter.

Th' JSON object o' yer hugo.toml / frontmatter be forwarded into MathJax’s configurat'n object.

See MathJax documentat'n fer all allowed sett'ns.

Global Configurat'n File

This example reflects th' default configurat'n also used if ye don’t define mathJaxInitialize

hugo.
[params]
  mathJaxInitialize = '{ "tex": { "inlineMath": [["\(", "\)"], ["$", "$"]], displayMath: [["\[", "\]"], ["$$", "$$"]] }, "options": { "enableMenu": false }'
params:
  mathJaxInitialize: '{ "tex": { "inlineMath": [["\(", "\)"], ["$", "$"]], displayMath:
    [["\[", "\]"], ["$$", "$$"]] }, "options": { "enableMenu": false }'
{
   "params": {
      "mathJaxInitialize": "{ \"tex\": { \"inlineMath\": [[\"\\(\", \"\\)\"], [\"$\", \"$\"]], displayMath: [[\"\\[\", \"\\]\"], [\"$$\", \"$$\"]] }, \"options\": { \"enableMenu\": false }"
   }
}

Page’s Frontmatter

Usually ye don’t need t' redefine th' global initializat'n sett'ns fer a single plank. But if ye do, ye have repeat all th' values from yer global configurat'n ye want t' keep fer a single plank as well.

Eg. If ye have redefined th' delimiters t' someth'n exotic like @ symbols 'n yer global config, but want t' additionally align yer math t' th' left fer a specific plank, ye have t' put this t' yer frontmatter:

+++
mathJaxInitialize = '{ "chtml": { "displayAlign": "left" }, { "tex": { "inlineMath": [["\(", "\)"], ["@", "@"]], displayMath: [["\[", "\]"], ["@@", "@@"]] }, "options": { "enableMenu": false }'
+++
---
mathJaxInitialize: '{ "chtml": { "displayAlign": "left" }, { "tex": { "inlineMath":
  [["\(", "\)"], ["@", "@"]], displayMath: [["\[", "\]"], ["@@", "@@"]] }, "options":
  { "enableMenu": false }'
---
{
   "mathJaxInitialize": "{ \"chtml\": { \"displayAlign\": \"left\" }, { \"tex\": { \"inlineMath\": [[\"\\(\", \"\\)\"], [\"@\", \"@\"]], displayMath: [[\"\\[\", \"\\]\"], [\"@@\", \"@@\"]] }, \"options\": { \"enableMenu\": false }"
}

Passthrough Configurat'n

Ye can use yer math without enclos'n it 'n a shortcode or codefence by us'n a passthrough configurat'n 'n yer hugo.toml:

hugo.
[marrrkup]
  [marrrkup.goldmark]
    [marrrkup.goldmark.extensions]
      [marrrkup.goldmark.extensions.passthrough]
        en'ble = true

        [marrrkup.goldmark.extensions.passthrough.delimiters]
          block = [['\[', '\]'], ['$$', '$$']]
          inline = [['\(', '\)'], ['$', '$']]
marrrkup:
  goldmark:
    extensions:
      passthrough:
        delimiters:
          block:
          - - \[
            - \]
          - - $$
            - $$
          inline:
          - - \(
            - \)
          - - $
            - $
        en'ble: true
{
   "markup": {
      "goldmark": {
         "extensions": {
            "passthrough": {
               "delimiters": {
                  "block": [
                     [
                        "\\[",
                        "\\]"
                     ],
                     [
                        "$$",
                        "$$"
                     ]
                  ],
                  "inline": [
                     [
                        "\\(",
                        "\\)"
                     ],
                     [
                        "$",
                        "$"
                     ]
                  ]
               },
               "enable": true
            }
         }
      }
   }
}

In this case ye have t' tell th' theme that yer plank contains math by sett'n this 'n yer page’s frontmatter:

+++
disableMathJax = false
+++
---
disableMathJax: false
---
{
   "disableMathJax": false
}

See th' example on how it makes us'n math really easy.

Examples

Inline Math

Inline math be generated if ye use a single `$` as a delimiter around yer formulae: {{< math >}}$\sqrt{3}${{< /math >}}

Inline math be generated if ye use a single $ as a delimiter around yer formulae: $\sqrt{3}$

Blocklevel Math wit' Right Alignment

If ye delimit yer formulae by two consecutive `$$` it generates a new block.

{{< math align="right" >}}
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
{{< /math >}}

If ye delimit yer formulae by two consecutive $$ it generates a new block.

$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$

Codefence

Ye can also use codefences.

```math
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$
```
$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$

Passthrough

This works fer block as well as inline math but be only avail'ble if ye be us'n th' passthrough configurat'n.

Wit' passthrough configurat'n ye can just drop yer math without enclosed by shorrrtcodes or codefences but no sett'ns from th' parameter t'ble be avail'ble.

$$\left|
\begin{array}{cc}
a & b \\
c & d
\end{array}\right|$$
$$\left| \begin{array}{cc} a & b \\ c & d \end{array}\right|$$

Chemical Formulae

{{< math >}}
$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$
{{< /math >}}
$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$

Merrrmaid

Arrr! Pirrrates

Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like Merrrmaids, do'n math or chemistrrry and stuff.

Th' mermaid shortcode generates diagrams an' flowcharts from text, 'n a similar manner as Marrrkdown us'n th' Merrrmaid library.

graph LR;
    If --> Then
    Then --> Else

Usage

While th' examples be us'n shorrrtcodes wit' named parameter it be recommended t' use codefences instead. This be because more an' more other software supports Merrrmaid codefences (eg. GitHub) an' so yer markdown becomes more port'ble.

Ye be free t' also call this shortcode from yer own partials.

```mermaid { align="center" zoom="true" }
graph LR;
    If --> Then
    Then --> Else
```
{{< mermaid align="center" zoom="true" >}}
graph LR;
    If --> Then
    Then --> Else
{{< /mermaid >}}
{{ partial "shortcodes/mermaid.html" (dict
  "page"    .
  "content" "graph LR;\nIf --> Then\nThen --> Else"
  "align"   "center"
  "zoom"    "true"
)}}

Th' generated graphs can be panned by dragg'n them an' zoomed by us'n th' mousewheel. On mobile devices ye can use finger gestures.

Parameter

Name Default Notes
align center Allowed values be left, center or right.
zoom see notes Whether th' graph be pan- an' zoom'ble.

If not set th' value be determined by th' mermaidZoom sett'n o' th' ship or th' planks frontmatter or false if not set at all.

- false: no pan or zoom
- true: pan an' zoom active
<content> <empty> Yer Merrrmaid graph.

Configurat'n

Merrrmaid be configured wit' default sett'ns. Ye can cust'mize Mermaid’s default sett'ns fer all o' yer files through a JSON object 'n yer hugo.toml, override these sett'ns per plank through yer planks frontmatter or override these sett'n per diagramm through diagram directives.

Th' JSON object o' yer hugo.toml / frontmatter be forwarded into Mermaid’s mermaid.initialize() funct'n.

See Merrrmaid documentat'n fer all allowed sett'ns.

Th' theme sett'n can also be set by yer used color variant. This will be th' sitewide default an' can - again - be overridden by yer sett'ns 'n hugo.toml, frontmatter or diagram directives.

Global Configurat'n File

hugo.
[params]
  mermaidInitialize = '{ "theme": "dark" }'
  mermaidZoom = true
params:
  mermaidInitialize: '{ "theme": "dark" }'
  mermaidZoom: true
{
   "params": {
      "mermaidInitialize": "{ \"theme\": \"dark\" }",
      "mermaidZoom": true
   }
}

Page’s Frontmatter

+++
mermaidInitialize = '{ "theme": "dark" }'
mermaidZoom = true
+++
---
mermaidInitialize: '{ "theme": "dark" }'
mermaidZoom: true
---
{
   "mermaidInitialize": "{ \"theme\": \"dark\" }",
   "mermaidZoom": true
}

Examples

Flowchart wit' YAML-Title

{{< mermaid >}}
---
title: Example Diagram
---
graph LR;
    A[Hard edge] -->|Link text| B(Round edge)
    B --> C{<strong>Decision</strong>}
    C -->|One| D[Result one]
    C -->|Two| E[Result two]
{{< /mermaid >}}
---
title: Example Diagram
---
graph LR;
    A[Hard edge] -->|Link text| B(Round edge)
    B --> C{<strong>Decision</strong>}
    C -->|One| D[Result one]
    C -->|Two| E[Result two]

Sequence Diagram wit' Configurat'n Directive

{{< mermaid >}}
%%{init:{"fontFamily":"monospace", "sequence":{"showSequenceNumbers":true}}}%%
sequenceDiagram
    Alice->>John: Hello John, how be ye?
    loop Healthcheck
        John->>John: Fight against hypochondria
    end
    Avast right o' John: Rational thoughts!
    John-->>Alice: Great!
    John->>Bob: How about ye?
    Bob-->>John: Jolly bloody!
{{< /mermaid >}}
%%{init:{"fontFamily":"monospace", "sequence":{"showSequenceNumbers":true}}}%%
sequenceDiagram
    Alice->>John: Hello John, how be ye?
    loop Healthcheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts!
    John-->>Alice: Great!
    John->>Bob: How about ye?
    Bob-->>John: Jolly bloody!

Class Diagram wit' Codefence Rules

```mermaid
classDiagram
    Animal <|-- Duck
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +Str'n gender
    Animal: +isMammal()
    Animal: +mate()
    class Duck{
      +Str'n beakColor
      +swim()
      +quack()
    }
    class Fish{
      -int sizeInFeet
      -canEat()
    }
    class Zebra{
      +bool is_wild
      +run()
    }
```
classDiagram
    Animal <|-- Duck
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +Str'n gender
    Animal: +isMammal()
    Animal: +mate()
    class Duck{
      +Str'n beakColor
      +swim()
      +quack()
    }
    class Fish{
      -int sizeInFeet
      -canEat()
    }
    class Zebra{
      +bool is_wild
      +run()
    }

State Diagram Aligned t' th' Right

{{< mermaid align="right" >}}
stateDiagram-v2
    open: Open Door
    closed: Closed Door
    locked: Locked Door
    open   --> closed: Close
    closed --> locked: Lock
    locked --> closed: Unlock
    closed --> open: Open
{{< /mermaid >}}
stateDiagram-v2
  open: Open Door
  closed: Closed Door
  locked: Locked Door
  open   --> closed: Close
  closed --> locked: Lock
  locked --> closed: Unlock
  closed --> open: Open

Entity Relationship Model wit' Non-Default Merrrmaid Theme

{{< mermaid >}}
%%{init:{"theme":"forest"}}%%
erDiagram
    CUSTOMER }|..|{ DELIVERY-ADDRESS : has
    CUSTOMER ||--o{ ORDER : places
    CUSTOMER ||--o{ INVOICE : "li'ble for"
    DELIVERY-ADDRESS ||--o{ ORDER : receives
    INVOICE ||--|{ ORDER : covers
    ORDER ||--|{ ORDER-ITEM : includes
    PRODUCT-CATEGORY ||--|{ PRODUCT : contains
    PRODUCT ||--o{ ORDER-ITEM : "ordered in"
{{< /mermaid >}}
%%{init:{"theme":"forest"}}%%
erDiagram
    CUSTOMER }|..|{ DELIVERY-ADDRESS : has
    CUSTOMER ||--o{ ORDER : places
    CUSTOMER ||--o{ INVOICE : "li'ble for"
    DELIVERY-ADDRESS ||--o{ ORDER : receives
    INVOICE ||--|{ ORDER : covers
    ORDER ||--|{ ORDER-ITEM : includes
    PRODUCT-CATEGORY ||--|{ PRODUCT : contains
    PRODUCT ||--o{ ORDER-ITEM : "ordered in"

User Journey

{{< mermaid >}}
journey
    title My work'n day
    section Go t' work
      Make tea: 5: Me
      Go upstairs: 3: Me
      Do work: 1: Me, Cat
    section Go home
      Go downstairs: 5: Me
      Sit down: 3: Me
{{< /mermaid >}}
journey
    title My work'n day
    section Go t' work
      Make tea: 5: Me
      Go upstairs: 3: Me
      Do work: 1: Me, Cat
    section Go home
      Go downstairs: 5: Me
      Sit down: 3: Me

GANTT Chart

{{< mermaid >}}
gantt
        dateFormat  YYYY-MM-DD
        title Add'n GANTT diagram functionality t' Merrrmaid
        section A section
        Completed task            :done,    des1, 2014-01-06,2014-01-08
        Active task               :active,  des2, 2014-01-09, 3d
        Future task               :         des3, after des2, 5d
        Future task2              :         des4, after des3, 5d
        section Critical tasks
        Completed task 'n th' critical line :crit, done, 2014-01-06,24h
        Implement parser an' jison          :crit, done, after des1, 2d
        Create tests fer parser             :crit, active, 3d
        Future task 'n critical line        :crit, 5d
        Create tests fer renderer           :2d
        Add t' Merrrmaid                      :1d
{{< /mermaid >}}
gantt
        dateFormat  YYYY-MM-DD
        title Add'n GANTT diagram functionality t' Merrrmaid
        section A section
        Completed task            :done,    des1, 2014-01-06,2014-01-08
        Active task               :active,  des2, 2014-01-09, 3d
        Future task               :         des3, after des2, 5d
        Future task2              :         des4, after des3, 5d
        section Critical tasks
        Completed task 'n th' critical line :crit, done, 2014-01-06,24h
        Implement parser an' jison          :crit, done, after des1, 2d
        Create tests fer parser             :crit, active, 3d
        Future task 'n critical line        :crit, 5d
        Create tests fer renderer           :2d
        Add t' Merrrmaid                      :1d

Pie Chart without Zoom

{{< mermaid zoom="false" >}}
pie title Pets adopted by volunteers
    "Dogs" : 386
    "Cats" : 85
    "Rats" : 15
{{< /mermaid >}}
pie title Pets adopted by volunteers
    "Dogs" : 386
    "Cats" : 85
    "Rats" : 15

Quadrant Chart

{{< mermaid >}}
pie title Pets adopted by volunteers
    title Reach an' engagement o' campaigns
    x-axis Low Reach --> High Reach
    y-axis Low Engagement --> High Engagement
    quadrant-1 We should expand
    quadrant-2 Need t' promote
    quadrant-3 Re-evaluate
    quadrant-4 May be improved
    Campaign A: [0.3, 0.6]
    Campaign B: [0.45, 0.23]
    Campaign C: [0.57, 0.69]
    Campaign D: [0.78, 0.34]
    Campaign E: [0.40, 0.34]
    Campaign F: [0.35, 0.78]
{{< /mermaid >}}
quadrantChart
    title Reach an' engagement o' campaigns
    x-axis Low Reach --> High Reach
    y-axis Low Engagement --> High Engagement
    quadrant-1 We should expand
    quadrant-2 Need t' promote
    quadrant-3 Re-evaluate
    quadrant-4 May be improved
    Campaign A: [0.3, 0.6]
    Campaign B: [0.45, 0.23]
    Campaign C: [0.57, 0.69]
    Campaign D: [0.78, 0.34]
    Campaign E: [0.40, 0.34]
    Campaign F: [0.35, 0.78]

Requirement Diagram

{{< mermaid >}}
    requirementDiagram

    requirement test_req {
    id: 1
    text: th' test text.
    risk: high
    verifymethod: test
    }

    element test_entity {
    type: simulat'n
    }

    test_entity - satisfies -> test_req
{{< /mermaid >}}
    requirementDiagram

    requirement test_req {
    id: 1
    text: th' test text.
    risk: high
    verifymethod: test
    }

    element test_entity {
    type: simulat'n
    }

    test_entity - satisfies -> test_req

Git Graph

{{< mermaid >}}
gitGraph
    commit
    commit
    branch develop
    checkout develop
    commit
    commit
    checkout main
    merge develop
    commit
    commit
{{< /mermaid >}}
gitGraph
    commit
    commit
    branch develop
    checkout develop
    commit
    commit
    checkout main
    merge develop
    commit
    commit

C4 Diagrams

{{< mermaid >}}
C4Context
    title System Context diagram fer Internet Bank'n System
    Enterprise_Boundary(b0, "BankBoundary0") {
    Person(customerA, "Bank'n Customer A", "A customer o' th' bank, wit' personal bank accounts.")
    Person(customerB, "Bank'n Customer B")
    Person_Ext(customerC, "Bank'n Customer C", "desc")

    Person(customerD, "Bank'n Customer D", "A customer o' th' bank, <br/> wit' personal bank accounts.")

    System(SystemAA, "Internet Bank'n System", "Allows customers t' view informat'n about their bank accounts, an' make payments.")

    Enterprise_Boundary(b1, "BankBoundary") {

        SystemDb_Ext(SystemE, "Mainframe Bank'n System", "Stores all o' th' core bank'n informat'n about customers, accounts, transact'ns, etc.")

        System_Boundary(b2, "BankBoundary2") {
        System(SystemA, "Bank'n System A")
        System(SystemB, "Bank'n System B", "A system o' th' bank, wit' personal bank accounts. next line.")
        }

        System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
        SystemDb(SystemD, "Bank'n System D Database", "A system o' th' bank, wit' personal bank accounts.")

        Boundary(b3, "BankBoundary3", "boundary") {
        SystemQueue(SystemF, "Bank'n System F Queue", "A system o' th' bank.")
        SystemQueue_Ext(SystemG, "Bank'n System G Queue", "A system o' th' bank, wit' personal bank accounts.")
        }
    }
    }

    BiRel(customerA, SystemAA, "Uses")
    BiRel(SystemAA, SystemE, "Uses")
    Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
    Rel(SystemC, customerA, "Sends e-mails to")

    UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
    UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
    UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")
    UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")
    UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")

    UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
{{< /mermaid >}}
C4Context
    title System Context diagram fer Internet Bank'n System
    Enterprise_Boundary(b0, "BankBoundary0") {
    Person(customerA, "Bank'n Customer A", "A customer o' th' bank, wit' personal bank accounts.")
    Person(customerB, "Bank'n Customer B")
    Person_Ext(customerC, "Bank'n Customer C", "desc")

    Person(customerD, "Bank'n Customer D", "A customer o' th' bank, <br/> wit' personal bank accounts.")

    System(SystemAA, "Internet Bank'n System", "Allows customers t' view informat'n about their bank accounts, an' make payments.")

    Enterprise_Boundary(b1, "BankBoundary") {

        SystemDb_Ext(SystemE, "Mainframe Bank'n System", "Stores all o' th' core bank'n informat'n about customers, accounts, transact'ns, etc.")

        System_Boundary(b2, "BankBoundary2") {
        System(SystemA, "Bank'n System A")
        System(SystemB, "Bank'n System B", "A system o' th' bank, wit' personal bank accounts. next line.")
        }

        System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
        SystemDb(SystemD, "Bank'n System D Database", "A system o' th' bank, wit' personal bank accounts.")

        Boundary(b3, "BankBoundary3", "boundary") {
        SystemQueue(SystemF, "Bank'n System F Queue", "A system o' th' bank.")
        SystemQueue_Ext(SystemG, "Bank'n System G Queue", "A system o' th' bank, wit' personal bank accounts.")
        }
    }
    }

    BiRel(customerA, SystemAA, "Uses")
    BiRel(SystemAA, SystemE, "Uses")
    Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
    Rel(SystemC, customerA, "Sends e-mails to")

    UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
    UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
    UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")
    UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")
    UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")

    UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")

Mindmaps

{{< mermaid >}}
mindmap
  root((mindmap))
    Origins
      Long history
      ::ay'con(fa fa-book)
      Popularisat'n
        British popular psychology author Tony Buzan
    Research
      On effectiveness<br/>an' features
      On Automatic creat'n
        Uses
            Creative techniques
            Strategic plann'n
            Argument mapp'n
    Tools
      Pen an' paper
      Merrrmaid
{{< /mermaid >}}
mindmap
  root((mindmap))
    Origins
      Long history
      ::icon(fa fa-book)
      Popularisat'n
        British popular psychology author Tony Buzan
    Research
      On effectiveness<br/>and features
      On Automatic creat'n
        Uses
            Creative techniques
            Strategic plann'n
            Argument mapp'n
    Tools
      Pen an' paper
      Merrrmaid

Timeline

{{< mermaid >}}
timeline
    title History o' Social Media Platform
    2002 : LinkedIn
    2004 : Facebook
         : Google
    2005 : Youtube
    2006 : Twitter
{{< /mermaid >}}
timeline
    title History o' Social Media Platform
    2002 : LinkedIn
    2004 : Facebook
         : Google
    2005 : Youtube
    2006 : Twitter

Sankey

{{< mermaid >}}
sankey-beta

%% source,target,value
Electricity grid,Over generat'n / exports,104.453
Electricity grid,Heat'n an' cool'n - homes,113.726
Electricity grid,H2 conversion,27.14
{{< /mermaid >}}
sankey-beta

%% source,target,value
Electricity grid,Over generat'n / exports,104.453
Electricity grid,Heat'n an' cool'n - homes,113.726
Electricity grid,H2 conversion,27.14

XYChart

{{< mermaid >}}
xychart-beta
    title "Sales Revenue"
    x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
    y-axis "Revenue (in $)" 4000 --> 11000
    bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
    line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
{{< /mermaid >}}
xychart-beta
    title "Sales Revenue"
    x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
    y-axis "Revenue (in $)" 4000 --> 11000
    bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
    line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]

Block Diagram

{{< mermaid >}}
block-beta
columns 1
  db(("DB"))
  blockArrowId6<["&nbsp;&nbsp;&nbsp;"]>(down)
  block:ID
    A
    B["A wide one 'n th' middle"]
    C
  end
  space
  D
  ID --> D
  C --> D
  style B fill:#969,stroke:#333,stroke-width:4px
{{< /mermaid >}}
block-beta
columns 1
  db(("DB"))
  blockArrowId6<["&nbsp;&nbsp;&nbsp;"]>(down)
  block:ID
    A
    B["A wide one 'n th' middle"]
    C
  end
  space
  D
  ID --> D
  C --> D
  style B fill:#969,stroke:#333,stroke-width:4px

Notice

Th' notice shortcode shows various types o' disclaimers wit' adjust'ble color, title an' ay'con t' help ye structure yer plank.

There may be pirates

It be all about th' boxes.

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' use positional as well or also call this shortcode from yer own partials.

{{% notice style="primary" title="There may be pirates" ay'con="skull-crossbones" %}}
It be all about th' boxes.
{{% /notice %}}
{{% notice primary "There may be pirates" "skull-crossbones" %}}
It be all about th' boxes.
{{% /notice %}}
{{ partial "shortcodes/notice.html" (dict
  "page"  .
  "style" "primary"
  "title" "There may be pirates"
  "icon" "skull-crossbones"
  "content" "It be all about th' boxes."
)}}

Parameter

Name Posit'n Default Notes
style 1 default Th' style scheme used fer th' box.

- by severity: info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, green, grey, orange, red
- by special color: default, transparent, code
color see notes Th' CSS color value t' be used. If not set, th' chosen color depends on th' style. Any given value will overwrite th' default.

- fer severity styles: a nice match'n color fer th' severity
- fer all other styles: th' correspond'n color
title 2 see notes Arbitrary text fer th' box title. Depend'n on th' style there may be a default title. Any given value will overwrite th' default.

- fer severity styles: th' match'n title fer th' severity
- fer all other styles: <empty>

If ye want no title fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
ay'con 3 see notes Font Awesome ay'con name set t' th' left o' th' title. Depend'n on th' style there may be a default ay'con. Any given value will overwrite th' default.

- fer severity styles: a nice match'n ay'con fer th' severity
- fer all other styles: <empty>

If ye want no ay'con fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
<content> <empty> Arbitrary text t' be displayed 'n box.

Examples

By Severity

Ahoi wit' marrrkup

{{% notice style="info" %}}
An **informat'n** disclaimer

Ye can add standard markdown rules:

- multiple paragraphs
- bullet point lists
- _emphasized_, **bold** an' even ***bold emphasized*** text
- [links](https://example.com)
- etc.

```plaintext
...and even source code
```

> th' possibilities be endless (almost - includ'n other shorrrtcodes may or may not work)
{{% /notice %}}
Ahoi

An informat'n disclaimer

Ye can add standard markdown rules:

  • multiple paragraphs
  • bullet point lists
  • emphasized, bold an' even bold emphasized text
  • links
  • etc.
...and even source code

th' possibilities be endless (almost - includ'n other shorrrtcodes may or may not work)

Avast

{{% notice style="note" %}}
A **notice** disclaimer
{{% /notice %}}
Avast

A notice disclaimer

Smarrrt Arrrse

{{% notice style="tip" %}}
A **tip** disclaimer
{{% /notice %}}
Smarrrt Arrrse

A tip disclaimer

Arrr

{{% notice style="warning" %}}
A **warning** disclaimer
{{% /notice %}}
Arrr

A warning disclaimer

Arrr wit' Non-Default Title an' Ay'con

{{% notice style="warning" title="Here be dragons" ay'con="dragon" %}}
A **warning** disclaimer
{{% /notice %}}
Here be dragons

A warning disclaimer

Arrr without a Title an' Ay'con

{{% notice style="warning" title=" " ay'con=" " %}}
A **warning** disclaimer
{{% /notice %}}

A warning disclaimer

By Brand Colors

Primary wit' Title only

{{% notice style="primary" title="Primary" %}}
A **primary** disclaimer
{{% /notice %}}
Primary

A primary disclaimer

Secondary wit' Ay'con only

{{% notice style="secondary" ay'con="stopwatch" %}}
A **secondary** disclaimer
{{% /notice %}}

A secondary disclaimer

Accent

{{% notice style="accent" %}}
An **accent** disclaimer
{{% /notice %}}

An accent disclaimer

By Color

Blue without a Title an' Ay'con

{{% notice style="blue" %}}
A **blue** disclaimer
{{% /notice %}}

A blue disclaimer

Green wit' Title only

{{% notice style="green" title="Green" %}}
A **green** disclaimer
{{% /notice %}}
Green

A green disclaimer

Grey wit' Ay'con only

{{% notice style="grey" ay'con="bug" %}}
A **grey** disclaimer
{{% /notice %}}

A grey disclaimer

Orange wit' Title an' Ay'con

{{% notice style="orange" title="Orange" ay'con="bug" %}}
A **orange** disclaimer
{{% /notice %}}
Orange

A orange disclaimer

Red without a Title an' Ay'con

{{% notice style="red" %}}
A **red** disclaimer
{{% /notice %}}

A red disclaimer

By Special Color

Default wit' Positional Parameter

{{% notice default "Pay Attent'n t' this Avast!" "skull-crossbones" %}}
Some serious informat'n.
{{% /notice %}}
Pay Attent'n t' this Avast!

Some serious informat'n.

Transparent wit' Title an' Ay'con

{{% notice style="transparent" title="Pay Attent'n t' this Avast!" ay'con="skull-crossbones" %}}
Some serious informat'n.
{{% /notice %}}
Pay Attent'n t' this Avast!

Some serious informat'n.

Wit' User-Defined Color, Font Awesome Brand Ay'con an' Marrrkdown Title

{{% notice color="fuchsia" title="**Hugo**" ay'con="fa-fw fab fa-hackerrank" %}}
Victor? Be it ye?
{{% /notice %}}
Cap'n Hugo

Victor? Be it ye?

OpenAPI

Th' openapi shortcode uses th' Swagger UI library t' display yer OpenAPI / Swagger specificat'ns.

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

{{< openapi src="https://petstore3.openapi.io/api/v3/openapi.json" >}}
{{ partial "shortcodes/openapi.html" (dict
  "page" .
  "src"  "https://petstore3.openapi.io/api/v3/openapi.json"
)}}

Parameter

Name Default Notes
src <empty> Th' URL t' th' OpenAPI specificat'n file. This can be relative t' th' URL o' yer plank if it be a leaf or branch bundle.
Avast

If ye want t' print out (or generate a PDF) from yer OpenAPI documentat'n, don’t initiate print'n directly from th' plank because th' elements be optimized fer interactive usage 'n a browser.

Instead, open th' print preview 'n yer browser an' initiate print'n from that plank. This plank be optimized fer read'n an' expands most o' th' avail'ble sections.

Example

Us'n Local File

{{< openapi src="petstore.json" >}}

Resources

Attachments

Th' resources shortcode displays th' titles o' resources contained 'n a plank bundle.

Attachments

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

{{% resources sort="asc" /%}}
{{ partial "shortcodes/resources.html" (dict
  "page" .
  "sort" "asc"
)}}

Multilanguage features be not supported directly by th' shortcode but rely on Hugo’s handl'n fer resource translat'ns applied when th' theme iterates over all avail'ble resources.

Parameter

Name Default Notes
style transparent Th' style scheme used fer th' box.

- by severity: info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, green, grey, orange, red
- by special color: default, transparent, code
color see notes Th' CSS color value t' be used. If not set, th' chosen color depends on th' style. Any given value will overwrite th' default.

- fer severity styles: a nice match'n color fer th' severity
- fer all other styles: th' correspond'n color
title see notes Arbitrary text fer th' box title. Depend'n on th' style there may be a default title. Any given value will overwrite th' default.

- fer severity styles: th' match'n title fer th' severity
- fer all other styles: Resources

If ye want no title fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
ay'con see notes Font Awesome ay'con name set t' th' left o' th' title. Depend'n on th' style there may be a default ay'con. Any given value will overwrite th' default.

- fer severity styles: a nice match'n ay'con fer th' severity
- fer all other styles: paperclip

If ye want no ay'con, ye have t' set this parameter t' " " (a non empty d wit' spaces)
sort asc Sort'n th' output 'n ascend'n or descend'n order.
pattern .* A regular expressions, used t' filter th' resources by name. For example:

- t' match a file suffix o' ‘jpg’, use .*\.jpg (not *.\.jpg)
- t' match file names end'n 'n jpg or png, use .*\.(jpg|png)

Examples

Custom Title, List o' Resources End'n 'n png, jpg or gif

{{% resources title="Related **files**" pattern=".*\.(png|jpg|gif)" /%}}
Related files

Ahoi Styled Box, Descend'n Sort Order

{{% resources style="info" sort="desc" /%}}
Ahoi

Wit' User-Defined Color an' Font Awesome Brand Ay'con

{{% resources color="fuchsia" ay'con="fa-fw fab fa-hackerrank" /%}}
Attachments

Style, Color, Title an' Ay'cons

For further examples fer style, color, title an' ay'con, see th' notice shortcode documentat'n. Th' parameter be work'n th' same way fer both shorrrtcodes, besides hav'n different defaults.

SiteParam

Th' siteparam shortcode prints values o' ship params.

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' use positional as well or call this shortcode from yer own partials.

{{% siteparam name="editURL" %}}
{{% siteparam "editURL" %}}
{{ partial "shortcodes/siteparam.html" (dict
  "page" .
  "name" "editURL"
)}}

Parameter

Name Posit'n Default Notes
name 1 <empty> Th' name o' th' ship param t' be displayed.

Examples

editURL from hugo.toml

`editURL` value: {{% siteparam name="editURL" %}}

editURL value: https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}

Nested parameter wit' Marrrkdown an' HTML formatt'n

T' use formatted parameter, add this 'n yer hugo.toml:

hugo.
[marrrkup]
  [marrrkup.goldmark]
    [marrrkup.goldmark.renderer]
      unsafe = true
marrrkup:
  goldmark:
    renderer:
      unsafe: true
{
   "markup": {
      "goldmark": {
         "renderer": {
            "unsafe": true
         }
      }
   }
}

Now values contain'n Marrrkdown will be formatted correctly.

hugo.
[params]
  [params.siteparam]
    [params.siteparam.test]
      text = 'A **nested** parameter <b>with</b> formatting'
params:
  siteparam:
    test:
      text: A **nested** parameter <b>with</b> formatt'n
{
   "params": {
      "siteparam": {
         "test": {
            "text": "A **nested** parameter \u003cb\u003ewith\u003c/b\u003e formatting"
         }
      }
   }
}
Formatted parameter: {{% siteparam name="siteparam.test.text" %}}

Formatted parameter: A nested opt'n <b>with</b> formatt'n

Tab

Ye can use a tab shortcode t' display a single tab.

This be especially useful if ye want t' flag yer code example wit' an explicit language.

If ye want multiple tabs grouped together ye can wrap yer tabs into th' tabs shortcode.

printf("Hello World!");

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

{{% tab title="c" %}}
```c
printf("Hello World!");
```
{{% /tab %}}
{{ partial "shortcodes/tab.html" (dict
  "page"  .
  "title" "c"
  "content" ("```c\nprintf(\"Hello World!\")\n```" | .RenderStr'n)
)}}

Parameter

Name Default Notes
style see notes Th' style scheme used fer th' tab. If ye don’t set a style an' ye display a single code block inside o' th' tab, its default styl'n will adapt t' that o' a code block. Otherwise default be used.

- by severity: info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, green, grey, orange, red
- by special color: default, transparent, code
color see notes Th' CSS color value t' be used. If not set, th' chosen color depends on th' style. Any given value will overwrite th' default.

- fer severity styles: a nice match'n color fer th' severity
- fer all other styles: th' correspond'n color
title see notes Arbitrary title fer th' tab. Depend'n on th' style there may be a default title. Any given value will overwrite th' default.

- fer severity styles: th' match'n title fer th' severity
- fer all other styles: <empty>

If ye want no title fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
ay'con see notes Font Awesome ay'con name set t' th' left o' th' title. Depend'n on th' style there may be a default ay'con. Any given value will overwrite th' default.

- fer severity styles: a nice match'n ay'con fer th' severity
- fer all other styles: <empty>

If ye want no ay'con fer a severity style, ye have t' set this parameter t' " " (a non empty str'n filled wit' spaces)
<content> <empty> Arbitrary text t' be displayed 'n th' tab.

Examples

Single Code Block wit' Collapsed Margins

{{% tab title="Code" %}}
```python
printf("Hello World!");
```
{{% /tab %}}
printf("Hello World!");

Mixed Marrrkdown Rrrambl'n

{{% tab title="_**Mixed**_" %}}
A tab can not only contain code but arbitrary text. In this case text **an'** code will get a margin.
```python
printf("Hello World!");
```
{{% /tab %}}

A tab can not only contain code but arbitrary text. In this case text an' code will get a margin.

printf("Hello World!");

Understand'n style an' color Behavior

Th' style parameter affects how th' color parameter be applied.

{{< tabs >}}
{{% tab title="just colored style" style="blue" %}}
Th' `style` parameter be set t' a color style.

This will set th' background t' a lighter version o' th' chosen style color as configured 'n yer theme variant.
{{% /tab %}}
{{% tab title="just color" color="blue" %}}
Only th' `color` parameter be set.

This will set th' background t' a lighter version o' th' chosen CSS color value.
{{% /tab %}}
{{% tab title="default style an' color" style="default" color="blue" %}}
Th' `style` parameter affects how th' `color` parameter be applied.

Th' `default` style will set th' background t' yer `--MAIN-BG-color` as configured fer yer theme variant resembl'n th' default style but wit' different color.
{{% /tab %}}
{{% tab title="just severity style" style="info" %}}
Th' `style` parameter be set t' a severity style.

This will set th' background t' a lighter version o' th' chosen style color as configured 'n yer theme variant an' also affects th' chosen ay'con.
{{% /tab %}}
{{% tab title="severity style an' color" style="info" color="blue" %}}
Th' `style` parameter affects how th' `color` parameter be applied.

This will set th' background t' a lighter version o' th' chosen CSS color value an' also affects th' chosen ay'con.
{{% /tab %}}
{{< /tabs >}}

Th' style parameter be set t' a color style.

This will set th' background t' a lighter version o' th' chosen style color as configured 'n yer theme variant.

Only th' color parameter be set.

This will set th' background t' a lighter version o' th' chosen CSS color value.

Th' style parameter affects how th' color parameter be applied.

Th' default style will set th' background t' yer --MAIN-BG-color as configured fer yer theme variant resembl'n th' default style but wit' different color.

Th' style parameter be set t' a severity style.

This will set th' background t' a lighter version o' th' chosen style color as configured 'n yer theme variant an' also affects th' chosen ay'con.

Th' style parameter affects how th' color parameter be applied.

This will set th' background t' a lighter version o' th' chosen CSS color value an' also affects th' chosen ay'con.

Tabs

Th' tabs shortcode displays arbitrary rrrambl'n 'n an unlimited number o' tabs.

This comes 'n handy eg. fer provid'n code snippets fer multiple languages.

If ye just want a single tab ye can instead call th' tab shortcode standalone.

hello.
print("Hello World!")
echo "Hello World!"
printf("Hello World!");

Usage

While th' examples be us'n shorrrtcodes wit' named parameter ye be free t' also call this shortcode from yer own partials.

See th' tab shortcode fer a descript'n o' th' parameter fer nested tabs.

{{< tabs title="hello." >}}
{{% tab title="py" %}}
```python
print("Hello World!")
```
{{% /tab %}}
{{% tab title="sh" %}}
```bash
echo "Hello World!"
```
{{% /tab %}}
{{% tab title="c" %}}
```c
printf"Hello World!");
```
{{% /tab %}}
{{< /tabs >}}
{{ partial "shortcodes/tabs.html" (dict
  "page"  .
  "title" "hello."
  "content" (slice
    (dict
      "title" "py"
      "content" ("```python\nprint(\"Hello World!\")\n```" | .RenderStr'n)
    )
    (dict
      "title" "sh"
      "content" ("```bash\necho \"Hello World!\"\n```" | .RenderStr'n)
    )
    (dict
      "title" "c"
      "content" ("```c\nprintf(\"Hello World!\");\n```" | .RenderStr'n)
    )
  )
)}}

Parameter

Name Default Notes
groupid <random> Arbitrary name o' th' group th' tab view belongs t'.

Tab views wit' th' same groupid sychr'nize their selected tab. Th' tab select'n be restored automatically based on th' groupid fer tab view. If th' selected tab can not be found 'n a tab group th' first tab be selected instead.

This sychronizat'n applies t' th' whole ship!
style <empty> Sets a default value fer every contained tab. Can be overridden by each tab. See th' tab shortcode fer poss'ble values.
color <empty> Sets a default value fer every contained tab. Can be overridden by each tab. See th' tab shortcode fer poss'ble values.
title <empty> Arbitrary title written 'n front o' th' tab view.
ay'con <empty> Font Awesome ay'con name set t' th' left o' th' title.
<content> <empty> Arbitrary number o' tabs defined wit' th' tab sub-shortcode.

Examples

Behavior o' th' groupid

See what happens t' th' tab views while ye select different tabs.

While press'n a tab o' Group A switches all tab views o' Group A 'n sync (if th' tab be available), th' tabs o' Group B be left untouched.

{{< tabs groupid="a" >}}
{{% tab title="json" %}}
{{< highlight json "linenos=true" >}}
{ "Hello": "World" }
{{< /highlight >}}
{{% /tab %}}
{{% tab title="_**XML**_ stuff" %}}
```xml
<Hello>World</Hello>
```
{{% /tab %}}
{{% tab title="text" %}}
    Hello World
{{% /tab %}}
{{< /tabs >}}
{{< tabs groupid="a" >}}
{{% tab title="json" %}}
{{< highlight json "linenos=true" >}}
{ "Hello": "World" }
{{< /highlight >}}
{{% /tab %}}
{{% tab title="XML stuff" %}}
```xml
<Hello>World</Hello>
```
{{% /tab %}}
{{< /tabs >}}
{{< tabs groupid="b" >}}
{{% tab title="json" %}}
{{< highlight json "linenos=true" >}}
{ "Hello": "World" }
{{< /highlight >}}
{{% /tab %}}
{{% tab title="XML stuff" %}}
```xml
<Hello>World</Hello>
```
{{% /tab %}}
{{< /tabs >}}

Group A, Tab View 1

1{ "Hello": "World" }
<Hello>World</Hello>
Hello World

Group A, Tab View 2

1{ "Hello": "World" }
<Hello>World</Hello>

Group B

1{ "Hello": "World" }
<Hello>World</Hello>

Nested Tab Views an' Color

In case ye want t' nest tab views, th' parent tab that contains nested tab views needs t' be declared wit' {{< tab >}} instead o' {{% tab %}}. Avast, that 'n this case it be not poss'ble t' put markdown 'n th' parent tab.

Ye can also set style an' color parameter fer all tabs an' overwrite them on tab level. See th' tab shortcode fer poss'ble values.

{{< tabs groupid="main" style="primary" title="Rationale" ay'con="thumbtack" >}}
{{< tab title="Text" >}}
  Simple text be poss'ble here...
  {{< tabs groupid="tabs-example-language" >}}
  {{% tab title="python" %}}
  Python be **super** easy.

  - most o' th' time.
  - if ye don't want t' output unicode
  {{% /tab %}}
  {{% tab title="bash" %}}
  Bash be fer **hackers**.
  {{% /tab %}}
  {{< /tabs >}}
{{< /tab >}}

{{< tab title="Code" style="default" color="darkorchid" >}}
  ...but no markdown
  {{< tabs groupid="tabs-example-language" >}}
  {{% tab title="python" %}}
  ```python
  print("Hello World!")
  ```
  {{% /tab %}}
  {{% tab title="bash" %}}
  ```bash
  echo "Hello World!"
  ```
  {{% /tab %}}
  {{< /tabs >}}
{{< /tab >}}
{{< /tabs >}}
Rationale

Simple text be poss'ble here...

Python be super easy.

  • most o' th' time.
  • if ye don’t want t' output unicode

Bash be fer hackers.

...but no markdown

print("Hello World!")
echo "Hello World!"