T' chapterrr 2

Configurrrat'n

Find out how t' configure an' cust'mize yer ship.

Ship Management

Get yourself familiar wit' th' general structure o' yer website

Brand'n

Change colors an' logos o' yer ship

Sidebar

Configure all th'ns sidebar

Rrrambl'n

Configure th' rrrambl'n area o' yer ship

Customizat'n

Cust'mize files fer advanced usage

Opt'ns Reference

All configurat'n opt'ns fer th' Relearrrn theme

Subsct'ns o' Configurrrat'n

Subsct'ns o' Site Management

Directory Structure

If you’ve followed th' Gett'n Started guide, yer directory layout will look similar t' this:

β”œβ”€β”€ rrrambl'n
β”‚   β”œβ”€β”€ first-chapter
β”‚   β”‚   β”œβ”€β”€ first-page
|   |   |   └── _index.md
β”‚   β”‚   β”œβ”€β”€ second-page
|   |   |   └── index.md
β”‚   β”‚   └── third-page.md
β”‚   └── _index.md
β”œβ”€β”€ themes
β”‚   └── hugo-theme-relearn
β”‚       └── ...
└── hugo.toml

Cap'n Hugo uses a union file system, which lets ye combine multiple directories.

By default, it puts yer root directory on top o' th' Relearrrn theme directory. Files 'n yer root directory will replace theme files 'n th' same locat'n.

For example, if ye create a file at layouts/partials/head'n.html, it will override th' theme’s themes/hugo-theme-relearn/layouts/partials/head'n.html.

See this list, t' learn which files be allowed t' be modified by ye.

This makes it easy t' cust'mize th' theme without chang'n files 'n th' themes directory, mak'n future theme updates simpler.

Arrr

Don’t edit files inside th' themes/hugo-theme-relearn directory. That’s not th' recommended way t' cust'mize! Refer t' th' explanat'n above.

Don’t clone th' theme repository an' edit files there fer yer ship. That’s not th' recommended way t' cust'mize! Instead, follow th' Gett'n Started guide.

Multilingual

Th' Relearrrn theme works wit' Hugo’s multilingual mode.

It supports many languages, includ'n right-to-left 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

Translat'n by File Name

Here’s how t' make yer ship multilingual us'n translat'ns by file name:

  1. Set up languages 'n yer hugo.toml file:

    hugo.
    defaultContentLanguage = 'en'
    
    [languages]
      [languages.en]
        languageCode = 'en'
        languageName = 'English'
        title = 'My Website'
        weight = 1
    
      [languages.pir]
        languageCode = 'art-x-pir'
        languageDirect'n = 'rtl'
        languageName = 'Pirrratish'
        title = 'Arrr, my Website'
        weight = 2
    defaultContentLanguage: en
    languages:
      en:
        languageCode: en
        languageName: English
        title: My Website
        weight: 1
      pir:
        languageCode: art-x-pir
        languageDirect'n: rtl
        languageName: Pirrratish
        title: Arrr, my Website
        weight: 2
    {
       "defaultContentLanguage": "en",
       "languages": {
          "en": {
             "languageCode": "en",
             "languageName": "English",
             "title": "My Website",
             "weight": 1
          },
          "pir": {
             "languageCode": "art-x-pir",
             "languageDirection": "rtl",
             "languageName": "Pirrratish",
             "title": "Arrr, my Website",
             "weight": 2
          }
       }
    }
  2. Duplicate yer rrrambl'n files an' add language codes t' their file names:

    β”œβ”€β”€ rrrambl'n
    β”‚   β”œβ”€β”€ first-chapter
    β”‚   β”‚   β”œβ”€β”€ first-page
    |   |   |   β”œβ”€β”€ _index.en.md
    |   |   |   └── _index.pir.md
    β”‚   β”‚   β”œβ”€β”€ second-page
    |   |   |   β”œβ”€β”€ index.en.md
    |   |   |   └── index.pir.md
    β”‚   β”‚   β”œβ”€β”€ third-page.en.md
    β”‚   β”‚   └── third-page.pir.md
    β”‚   β”œβ”€β”€ _index.en.md
    β”‚   └── _index.pir.md
    β”œβ”€β”€ themes
    β”‚   └── hugo-theme-relearn
    β”‚       └── ...
    └── hugo.toml

Translat'n by Rrrambl'n Directory

Th' theme also support translat'ns by rrrambl'n directory which can be configured 'n a similar way. This be not used 'n further examples o' this documentat'n.

Search Sett'ns

Check th' search configurat'n fer multilingual opt'ns.

Turn Off Language Switch'n

Opt'n By default th' theme shows a language switcher 'n th' lower part o' th' menu.

T' dis'ble th' language switcher set disableLanguageSwitchingButton=true

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

Meta Information

Ship Author Informat'n

Opt'n Th' theme uses author details 'n various parts o' yer ship, like RSS feeds an' meta tags.

hugo.
[params]
  [params.author]
    email = 'santa@example.com'
    name = 'Santa Claus'
params:
  author:
    email: santa@example.com
    name: Santa Claus
{
   "params": {
      "author": {
         "email": "santa@example.com",
         "name": "Santa Claus"
      }
   }
}

Ship Title

Th' title will be used 'n meta informat'n o' yer HTML.

hugo.
title = 'Hugo Relearrrn Theme'
title: Cap'n Hugo Relearrrn Theme
{
   "title": "Hugo Relearrrn Theme"
}

Ship Descript'n

Front Matter Th' theme shows a ship descript'n 'n various places, such as RSS feeds an' meta tags. For this, it uses th' descript'n field from yer home page’s front matter.

Social Media Images

When yer plank be shared on social media, ye can set a site-wide image t' display wit' th' link

hugo.
images = ['images/hero.png']
images:
- images/hero.png
{
   "images": [
      "images/hero.png"
   ]
}

More Social Media Opt'ns

Th' theme adheres t' Hugo’s official documentat'n fer Open Graph an' Twitter Cards configurat'n.

Deployment Scenarios

Offline Usage

Th' theme be us'ble offline. No internet connect'n be required t' board yer plank. This be achieved by stor'n all dependencies within th' theme.

No calls t' 3rd party servers, no call'n home, no track'n. Privacy friendly.

Server Deployment

If yer server deployment has no special requirements, ye can skip this section an' use th' standard Cap'n Hugo opt'ns.

For special requirements, th' theme be cap'ble o' different scenarios, requir'n th' follow'n mandatory sett'ns 'n yer hugo.toml. All sett'ns not mentioned 'n th' examples below 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
}

If ye be still us'n Hugo’s relref shortcode (which ye shouldn’t), ye will need further configurat'n.

Arrr

Don’t use a baseURL wit' a subdirectory an' relativeURLs=true together. Cap'n Hugo doesn’t apply th' baseURL correctly 'n this case. If ye need both, generate yer ship twice wit' different sett'ns into separate directories.

Private Web Server (LAN)

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

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

File System

Yer generated ship can be used headless without a HTTP server.

This can be achieved by us'n th' file:// protocol 'n yer browser’s address bar or by do'ble click on a generated *.html file 'n yer file navigat'n tool.

Use th' follow'n sett'ns

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

Planks like sitemap.xml an' rss.xml, an' social media links will always use absolute URLs. They won’t work wit' relativeURLs=true.

Available Output Formats

En'ble print support t' print entire chapters or th' whole ship. Add th' print output format t' yer home, section, an' plank 'n hugo.toml:

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

This adds a printer ay'con 'n th' topbar. Click'n it switches t' print preview, show'n th' plank an' its vis'ble subpages 'n a printer-friendly format. Use yer browser’s print funct'n t' print or save as PDF.

Th' URL won’t be configured ugly fer Hugo’s URL handl'n, even wit' uglyURLs=true 'n hugo.toml. This be because each mime type can only have one suffix.

If ye don’t like th' URLs, ye can reconfigure outputFormats.print 'n yer hugo.toml t' someth'n other than th' default o':

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

Stable Output

Disabl'n th' Generator Meta

Opt'n Th' theme adds a meta tag wit' its version number t' each plank.

This isn’t a security risk an' helps us support ye better.

T' turn this off, set disableGeneratorVersion=true.

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

If ye also want t' turn off Hugo’s version meta tag, use disableHugoGeneratorInject=true.

Disabl'n IDs fer Referenced Assets

Opt'n Th' theme creates a unique ID fer each build an' adds it t' each referenced asset’s URL t' make browsers not keep outdated cached assets.

This be bloody fer product'n sites but can be problematic dur'n development. It makes compar'n outputs difficult as each build has new IDs.

T' dis'ble this, set disableAssetsBusting=true.

hugo.
[params]
  disableAssetsBust'n = true
params:
  disableAssetsBust'n: true
{
   "params": {
      "disableAssetsBusting": true
   }
}

Disabl'n IDs fer Interactive HTML Elements

Opt'n Features like expanders, callouts, an' tabs use unique IDs t' work. These IDs change wit' each build.

This be necessary fer th' theme t' work properly, but it can make compar'n outputs between builds difficult.

T' turn this off, set disableRandomIds=true. Avast, that this will result 'n a non-functional ship!.

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

Subsct'ns o' Brrrand'n

Logo

Change th' Favicon

If yer favicon be an 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 look up 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">

By default, only yer ship title will be shown at th' top o' th' menu. Ye can configure this, or override th' logo partial.

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, or ye could paste an SVG definit'n!

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

Brrrand'n

Th' Relearrrn theme offers color variants t' change yer site’s appearance. Each color variant contains o' a CSS file an' optional sett'ns 'n yer hugo.toml.

Ye can use th' shipped variants, cust'mize them, or create yer own. Th' interactive variant generator can help ye wit' this.

Once set up 'n hugo.toml, ye can switch variants us'n th' selector at th' bottom o' th' menu.

Shipped Variants

Th' theme ships wit' th' follow'n set o' variants

  • Relearrrn
    • Light: th' classic Relearrrn default, com'n wit' signature green, dark sidebar an' light rrrambl'n area
    • Dark: dark variant o' Light, com'n wit' signature green, dark sidebar an' dark rrrambl'n area
    • Bright: alternative o' Light, com'n wit' signature green, green sidebar an' light rrrambl'n area
  • Zen
    • Light: a more relaxed white/grey variant, com'n wit' blue accents, light sidebar an' light rrrambl'n area
    • Dark: dark variant o' Light, com'n wit' blue accents, dark sidebar an' dark rrrambl'n area
  • Experimental
    • Neon: a variant that glows 'n th' dark, gradient sidebar an' dark rrrambl'n area
  • Retro
    • Learrrn: th' default o' th' old Learrrn theme, com'n wit' signature light purple, dark sidebar an' light rrrambl'n area
    • Blue: a blue variant o' th' old Learrrn theme, com'n tinted 'n blue, dark sidebar an' light rrrambl'n area
    • Green: a green variant o' th' old Learrrn theme, com'n tinted 'n green, dark sidebar an' light rrrambl'n area
    • Red: a red variant o' th' old Learrrn theme, com'n tinted 'n red, dark sidebar an' light rrrambl'n area

Chang'n th' Variant

Opt'n Set th' themeVariant opt'n t' change th' variant.

Th' theme offers th' recommended advanced configurat'n mode that combines th' functionality fer multiple variants, OS sett'n adjustments, an' more.

Simple Setup

Single Variant

Set themeVariant t' yer theme CSS file name:

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

Place yer theme file 'n assets/css or themes/hugo-theme-relearn/assets/css. Name it theme-*.css.

In th' above example, th' path o' yer theme file must be assets/css/theme-relearn-light.css or themes/hugo-theme-relearn/assets/css/theme-relearn-light.css.

Multiple Variants

T' let th' reader choose between multiple variants, set themeVariant like this:

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

Th' first variant be th' default, an' a selector will appear if there’s more than one.

Adjust t' OS Sett'ns

Use th' auto value t' match OS light/dark sett'ns. 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.

Default be relearn-light fer light an' relearn-dark fer dark mode. These defaults be overwritten by th' first two non-auto opt'ns o' yer themeVariant array.

Ye can override th' default wit' themeVariantAuto:

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

Advanced

Th' theme offers an advanced 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 '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

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

Advanced Topics

Modify'n Variants

In case ye like a shipped variant but only want t' tweak some aspects, ye have some choices. Don’t edit th' file 'n th' theme’s directory! Ye will lose th' ability t' later easily upgrade yer theme t' a newer version.

  1. Copy an' change

    Ye can copy th' shipped variant file from th' theme’s themes/hugo-theme-relearn/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 while keep'n yer modificat'ns.

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`
});

Module Theming

Change Rules Highlight'n

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

hugo.
[marrrkup]
  [marrrkup.highlight]
    noClasses = false
marrrkup:
  highlight:
    noClasses: false
{
   "markup": {
      "highlight": {
         "noClasses": false
      }
   }
}

Ye can use one o' th' shipped stylesheet files or use Cap'n Hugo t' generate a file fer ye.

hugo gen chromastyles --style=monokai > chroma-mycode.css

Th' file must be written t' assets/css/chroma-<NAME>.css. T' use it wit' yer color variant, ye have t' modify --CODE-theme: <NAME> 'n th' color variant stylesheet file.

@import "theme-relearn-light.css";
:root {
  --CODE-theme: mycode; /* name o' th' chroma stylesheet file */
}

Change 3rd-Party Libraries Them'n

Some o' th' shipped shorrrtcodes be us'n 3rd-party libraries. See th' individual shortcode documentat'n on how t' change their them'n.

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' reflects 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' descendant 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'ns 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.

Opt'n Afterwards, ye have t' adjust th' themeVariant opt'n 'n yer hugo.toml t' yer chosen file name. For example, 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

Subsct'ns o' Sidebar

Width

Th' theme adjusts th' menu width based on browser size.

If ye want t' change th' chosen default width, ye can add CSS variables t' layouts/partials/custom-header.html.

Chang'n Menu Width

Th' menu width changes fer different screen sizes:

Screen Size Screen Width Menu Width
Small < 48rem 14.375rem
Medium 48rem - 60rem 14.375rem
Large >= 60rem 18.75rem

Ye can change th' menu width but not th' screen width breakpoints.

T' adjust th' menu width, use these CSS variables. Avast that --MENU-WIDTH-S be fer th' mobile menu flyout on small screens.

<style>
:root {
    --MENU-WIDTH-S: 14.375rem;
    --MENU-WIDTH-M: 14.375rem;
    --MENU-WIDTH-L: 18.75rem;
}
</style>

Header & Footer

Title

Opt'n Wit' th' default partials fer th' logo, Th' ship title will also be used fer th' text at th' top o' th' sidebar. If ye want t' show a different text 'n th' sidebar, ye can overwrite linkTitle.

hugo.
[params]
  linkTitle = 'Relearn'
params:
  linkTitle: Relearrrn
{
   "params": {
      "linkTitle": "Relearn"
   }
}

Home Button Configurat'n

By default, th' theme displays a home button between search form an' navigat'n menu. Th' Home button serves as an alternative t' click'n th' logo.

Default Home Button Default Home Button

Opt'n T' hide th' Home button on th' left menu, set disableLandingPageButton=true.

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

Opt'n T' change its ay'con or text, configure th' landingPageName fer yer 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 isn’t set fer a specific language, it will use these default values

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

History

Opt'n Turn on showVisitedLinks=true t' see checkmarks next t' visited planks 'n th' main menu. This also adds a Clear History opt'n at th' bottom o' th' menu t' remove all checkmarks. Avast that checkmarks will disappear if ye rebuild yer ship, as th' plank IDs may change.

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

T' change th' menu footer, edit th' layouts/partials/menu-footer.html file. Check out th' Partials section fer more ways t' cust'mize yer ship.

Search

Th' theme offers three levels o' search through th' menu’s search form:

  1. In-page search: Highlights search terms on th' current plank
  2. Search popup: Opens a popup wit' results from other planks
  3. Dedicated search plank: Access'ble by click'n th' magnifier glass or press'n ENTER

Each level requires th' previous one t' be enabled. If no search be configured, th' search form won’t appear.

Opt'n All levels be enabled by default. Dis'ble them 'n hugo.toml:

  • In-page search: disableSearch=true
  • Search popup: disableSearchIndex=true
  • Dedicated search plank: disableSearchPage=true
hugo.
[params]
  disableSearch = true
  disableSearchIndex = true
  disableSearchPage = true
params:
  disableSearch: true
  disableSearchIndex: true
  disableSearchPage: true
{
   "params": {
      "disableSearch": true,
      "disableSearchIndex": true,
      "disableSearchPage": true
   }
}

Opt'n Default URLs can be changed wit' th' follow'n parameter

  • Search popup: searchindex.js set by searchIndexURL
  • Dedicated search plank: search/index.html set by searchPageURL
hugo.
[params]
  searchIndexURL = 'omnisearchindex.js'
  searchPageURL = 'omnisearch'
params:
  searchIndexURL: omnisearchindex.js
  searchPageURL: omnisearch
{
   "params": {
      "searchIndexURL": "omnisearchindex.js",
      "searchPageURL": "omnisearch"
   }
}
Avast

Only change these if ye have rrrambl'n at those URLs. This can happen wit' uglyURLs=true 'n hugo.toml an' hav'n a rrrambl'n file at content/search.md.

Check fer duplicate URLs by runn'n hugo --printPathWarn'ns.

Supported Languages

Th' Lunr search library doesn’t support all languages o' th' theme. Unsupported languages will show errors 'n th' browser console. Currently unsupported be

  • Czech
  • Indonesian
  • Polish
  • Swahili

Mixed Language Support

Opt'n In case yer page’s rrrambl'n contains text 'n multiple languages (for example, ye be writ'n a Piratish documentat'n fer yer English API), ye can set those languages 'n additionalContentLanguage t' broaden th' search.

hugo.
[params]
  additionalContentLanguage = ['en']
params:
  additionalContentLanguage:
  - en
{
   "params": {
      "additionalContentLanguage": [
         "en"
      ]
   }
}

Ye can add multiple languages t' this array.

Avast

Use th' base language code. For example, if yer plank be us'n zh-CN, add zh t' this parameter.

Menus

Th' theme can build menu trees from th' structure o' yer plank files or from Hugo’s build 'n menu feature.

  • Opt'n All configurat'n opt'ns 'n yer hugo.toml apply t' all menus but can be changed individually.

  • Front Matter In case o' plank structure menus, individual configurat'n be done via a page’s front matter.

  • Menu. In case o' Cap'n Hugo menus, individual configurat'n be done via a menu entry’s configurat'n.

Expand State o' Submenus

Opt'n Front Matter Ye can change how submenus appear wit' alwaysopen.

Menu For Cap'n Hugo menus, ye have t' set params.alwaysopen instead.

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' expand state based on th' follow'n rules:

  • all parent entries o' th' active plank includ'n their vis'ble sibl'ns be shown regardless o' any sett'ns
  • immediate child entries o' th' active entry 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 child entries if alwaysopen=true; this proceeds recursively
  • all remain'n entries be not shown
alwaysopen = false
alwaysopen: false
{
   "alwaysopen": false
}

Expander fer Submenus

Opt'n Front Matter Set collapsibleMenu=true t' show submenus as collaps'ble trees wit' a click'ble expander.

Menu For Cap'n Hugo menus, ye have t' set params.collapsibleMenu=true instead.

collapsibleMenu = true
collapsibleMenu: true
{
   "collapsibleMenu": true
}
Arrr

Us'n this opt'n may cause degraded build performance by slow'n down yer build process.

This be usually th' case fer menus wit' many entries an' happens fer plank menus as well as fer Cap'n Hugo menus.

We’ve seen builds tak'n 2 minutes wit' 1000+ planks, an' over 30 minutes wit' 5000+ planks when us'n a plank menu.

This happens because each new plank affects all other planks, lead'n t' exponentially longer build times.

Order'n Menu Entries

By Weight

Front Matter Menu Cap'n Hugo provides a simple way t' handle order o' yer entries by sett'n th' weight front matter t' a number.

Cap'n Hugo menus can only be sorted us'n th' weight method.

weight = 5
weight: 5
{
   "weight": 5
}

By Other

Us'n th' weight fer sort'n can get cumbersome if ye, fer example, just want t' sort alphabetically. Each time ye add a new plank 'n th' set o' planks, ye may have t' renumber some or all o' them t' make space fer th' new plank.

Opt'n Front Matter Use ordersectionsby t' sort by other aspects. See th' children shortcode fer a complete list.

ordersectionsby = 'linktitle'
ordersectionsby: linktitle
{
   "ordersectionsby": "linktitle"
}

Title fer Menu Entries

Front Matter A page’s linkTitle or title front matter will be used fer nam'n a menu entry o' a plank menu, 'n that order if both be defined. Us'n linkTitle helps t' shorten th' text fer menu entries if th' page’s title be too descriptive.

Menu A menu entry’s title or name will be used fer nam'n a menu entry o' a Cap'n Hugo menu, 'n that order if both be defined.

For example fer a plank named install/linux.md

+++
linkTitle = 'Linux'
title = 'Install on Linux'
+++
---
linkTitle: Linux
title: Install on Linux
---
{
   "linkTitle": "Linux",
   "title": "Install on Linux"
}

Ay'cons fer Menu Entries

Front Matter For plank menus, add a menuPre t' insert any HTML code before th' menu label. Ye can also set menuPost t' insert HTML code after th' menu label.

Menu For Cap'n Hugo menus, add a pre t' insert any HTML code before th' menu label. Ye can also set post t' insert HTML code after th' menu label.

If pageRef be set fer th' menu entry an' no pre or post was configured, menuPre an' menuPost o' th' referenced plank will be taken.

Th' example below uses th' GitHub ay'con fer an entry o' a plank menu.

+++
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"
}

Dis'ble Menu Entries

Ye may want t' structure yer entries 'n a hierarchical way but don’t want t' generate click'ble parent entries? Th' theme got ye covered.

For Plank Menus

T' stay wit' th' initial example: Suppose ye want first-chapter/first-page 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 be expand'ble.

For this, open content/first-chapter/first-page/_index.md an' add th' follow'n front matter

+++
[_build]
  render = 'never'
+++
---
_build:
  render: never
---
{
   "_build": {
      "render": "never"
   }
}

For Cap'n Hugo Menus

Just don’t give yer parent menu entry configurat'n a url or pageRef. See th' next section fer a special case.

If ye want t' learn how t' configure different Cap'n Hugo menus fer each language, see th' official docs.

+++
[menu]
  [[menu.addendum]]
    name = 'Parent 1'
    weight = 1

  [[menu.addendum]]
    name = 'Child 1'
    parent = 'Parent 1'
    url = 'https://example.com/1'

  [[menu.addendum]]
    name = 'Parent 2'
    weight = 2

  [[menu.addendum]]
    name = 'Child 2'
    parent = 'Parent 2'
    url = 'https://example.com/2'
+++
---
menu:
  addendum:
  - name: Parent 1
    weight: 1
  - name: Child 1
    parent: Parent 1
    url: https://example.com/1
  - name: Parent 2
    weight: 2
  - name: Child 2
    parent: Parent 2
    url: https://example.com/2
---
{
   "menu": {
      "addendum": [
         {
            "name": "Parent 1",
            "weight": 1
         },
         {
            "name": "Child 1",
            "parent": "Parent 1",
            "url": "https://example.com/1"
         },
         {
            "name": "Parent 2",
            "weight": 2
         },
         {
            "name": "Child 2",
            "parent": "Parent 2",
            "url": "https://example.com/2"
         }
      ]
   }
}

Title fer Menus

Each menu may have an optional title above its tree. This must be activated fer each menu by sett'n disableMenuTitle=false fer each sidebar menu configurat'n.

Front Matter For plank menus, set th' menuTitle front matter fer th' root plank o' th' menu. For example 'n th' home plank fer th' default sidebar menu. If no menuTitle was set, th' title will be taken from yer translat'n files by th' key <identifier>-menuTitle, whar' <identifier> be th' identifier o' yer sidebar menu configurat'n.

Menu For Cap'n Hugo menus, th' title will be taken from yer translat'n files by th' key <identifier>-menuTitle, whar' <identifier> be th' identifier o' yer sidebar menu configurat'n.

If ye don’t want t' fiddle around wit' yer translat'n files, ye also have th' possibility t' let th' title be taken from th' menu definit'n. For that, define a nested menu that only has one top-level entry without url or pageRef.

In this case, th' title or name be taken fer th' menu head'n.

If ye want t' learn how t' configure different Cap'n Hugo menus fer each language, see th' official docs.

+++
[menu]
  [[menu.addendum]]
    name = 'A Menu Title fer th' Whole Menu'

  [[menu.addendum]]
    name = 'A Menu Entry Title fer Child 1'
    parent = 'Parent'
    url = 'https://example.com/1'
    weight = 1

  [[menu.addendum]]
    name = 'A Menu Entry Title fer Child 2'
    parent = 'Parent'
    url = 'https://example.com/2'
    weight = 2
+++
---
menu:
  addendum:
  - name: A Menu Title fer th' Whole Menu
  - name: A Menu Entry Title fer Child 1
    parent: Parent
    url: https://example.com/1
    weight: 1
  - name: A Menu Entry Title fer Child 2
    parent: Parent
    url: https://example.com/2
    weight: 2
---
{
   "menu": {
      "addendum": [
         {
            "name": "A Menu Title fer th' Whole Menu"
         },
         {
            "name": "A Menu Entry Title fer Child 1",
            "parent": "Parent",
            "url": "https://example.com/1",
            "weight": 1
         },
         {
            "name": "A Menu Entry Title fer Child 2",
            "parent": "Parent",
            "url": "https://example.com/2",
            "weight": 2
         }
      ]
   }
}

Title fer th' Predefined Shortcut Menu

Opt'n By default, th' predefined shortcut menu has a th' title More (in th' English translation).

Ye can dis'ble this title wit' disableShortcutsTitle=true.

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

T' change th' title, override yer translat'n file.

[shortcuts-menuTitle]
other = "Other Great Stuff"

Defin'n Sidebar Menus

Opt'n Front Matter Menus be defined us'n th' sidebarmenus opt'n.

Ye can define as many menus, as ye like. If ye don’t overwrite this opt'n, th' theme defaults t'

[[sidebarmenus]]
  disableTitle = true
  identifier = 'home'
  main = true
  pageRef = ''
  type = 'page'

[[sidebarmenus]]
  disableTitle = false
  identifier = 'shortcuts'
  main = false
  type = 'menu'
sidebarmenus:
- disableTitle: true
  identifier: home
  main: true
  pageRef: ""
  type: plank
- disableTitle: false
  identifier: shortcuts
  main: false
  type: menu
{
   "sidebarmenus": [
      {
         "disableTitle": true,
         "identifier": "home",
         "main": true,
         "pageRef": "",
         "type": "page"
      },
      {
         "disableTitle": false,
         "identifier": "shortcuts",
         "main": false,
         "type": "menu"
      }
   ]
}

Parameter

Name Default Notes
type <empty> Th' type o' menu.

- plank fer a plank menu
- menu fer a Cap'n Hugo menu
identifier <empty> A unique identifier fer this entry

- fer type=page an arbitrary name
- fer page=menu th' identifier o' th' menu definit'n 'n yer hugo.toml
main see notes Whether t' add additional spac'n an' larger text t' th' menu

- fer type=page defaults t' true
- fer page=menu defaults t' false
disableTitle see notes Whether t' print a title above th' menu

- fer type=page defaults t' true
- fer page=menu defaults t' false
pageRef <empty> Only fer type=page, th' plank path t' start th' menu tree. If not set, defaults t' th' home plank.

Redefin'n Sidebar Menus fer Certain Planks

Suppose ye be build'n a ship that contains a topmost blog an' documentat'n section.

When th' user be on one o' th' blog planks he should only see a menu contain'n all blog planks, while on a documentat'n plank he should only see a menu contain'n all doc planks.

Directory structure:

rrrambl'n
β”œβ”€β”€ blog
β”‚   β”œβ”€β”€ post-1.md
β”‚   β”œβ”€β”€ post-2.md
β”‚   β”œβ”€β”€ post-3.md
β”‚   └── _index_.md
β”œβ”€β”€ docs
β”‚   β”œβ”€β”€ topic-1.md
β”‚   β”œβ”€β”€ topic-2.md
β”‚   β”œβ”€β”€ topic-3.md
β”‚   └── _index_.md
└── _index.md

Opt'n Front Matter Us'n Hugo’s cascade feature, we can redefine th' menus once 'n blog/_index.md an' docs/_index.md sett'n sidebarmenus so they will be used 'n all children planks.

blog/_index.md
+++
title = 'Blog'

[[cascade]]
  [cascade.params]
    [[cascade.params.sidebarmenus]]
      identifier = 'blog'
      pageRef = '/blog'
      type = 'page'
+++
---
cascade:
- params:
    sidebarmenus:
    - identifier: blog
      pageRef: /blog
      type: plank
title: Blog
---
{
   "cascade": [
      {
         "params": {
            "sidebarmenus": [
               {
                  "identifier": "blog",
                  "pageRef": "/blog",
                  "type": "page"
               }
            ]
         }
      }
   ],
   "title": "Blog"
}
docs/_index.md
+++
title = 'Documentation'

[[cascade]]
  [cascade.params]
    [[cascade.params.sidebarmenus]]
      identifier = 'docs'
      pageRef = '/docs'
      type = 'page'
+++
---
cascade:
- params:
    sidebarmenus:
    - identifier: docs
      pageRef: /docs
      type: plank
title: Documentat'n
---
{
   "cascade": [
      {
         "params": {
            "sidebarmenus": [
               {
                  "identifier": "docs",
                  "pageRef": "/docs",
                  "type": "page"
               }
            ]
         }
      }
   ],
   "title": "Documentation"
}

Ye may have th' need t' add arbitrary links at some point 'n yer menu that be initially not backed by a plank. These be called crosslinks.

Assume th' follow'n structure

rrrambl'n
β”œβ”€β”€ reference
β”‚   β”œβ”€β”€ ref-a.md
β”‚   β”œβ”€β”€ ref-b.md
β”‚   β”œβ”€β”€ ref-c.md
β”‚   └── _index_.md
β”œβ”€β”€ topic-blue.md
β”œβ”€β”€ topic-red.md
β”œβ”€β”€ topic-yellow.md
└── _index_.md

Ye now want t' include ref-b as separate entry after topic-green 'n yer menu.

For that create a new plank wit' th' follow'n front matter

content/topic-green.md
+++
menuPageRef = '/reference/ref-b'
title = 'Topic Green'
+++
---
menuPageRef: /reference/ref-b
title: Topic Green
---
{
   "menuPageRef": "/reference/ref-b",
   "title": "Topic Green"
}

Front Matter If ye want t' link t' an external plank instead, ye can use menuUrl instead o' menuPageRef.

Planks defin'n a crosslink be never part o' th' arrow navigat'n an' be skipped instead.

So wit' th' above example an' alphabetical sort'n o' th' menu entries, press'n on topic-blue will skip th' newly added topic-green an' instead will board topic-red.

Hav'n sub planks below a plank that defines a crosslink be undefined.

Display'n Planks Exclusively 'n a Cap'n Hugo Menu

Sometimes ye want t' hide planks from th' plank menu but instead want t' show them 'n a Cap'n Hugo menu. For that ye have two choices

  1. Create a headless branch bundle, _index.md 'n its own folder wit' th' below front matter. Th' branch bundle will not be contained 'n th' sitemap.

    content/showcase/_index.en.md
    +++
    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. Or, put a child plank inside a headless branch bundle wit' th' follow'n front matter 'n th' bundle. This causes th' child but not th' branch bundle t' be contained 'n th' sitemap.

    content/more/_index.en.md
    +++
    [_build]
      list = 'never'
      publishResources = false
      render = 'never'
    +++
    ---
    _build:
      list: never
      publishResources: false
      render: never
    ---
    {
       "_build": {
          "list": "never",
          "publishResources": false,
          "render": "never"
       }
    }

    Th' child plank can be any type o' rrrambl'n.

    content/more/credits_index.en.md
    +++
    title = 'Credits'
    +++
    ---
    title: Credits
    ---
    {
       "title": "Credits"
    }

Subsct'ns o' Content

Width

Th' theme adjusts th' rrrambl'n width when ye resize yer browser.

If ye want t' change th' chosen default width, ye can add CSS variables t' layouts/partials/custom-header.html.

Chang'n th' Main Area’s Maximum Width

Th' main area has a default maximum width o' 80.25rem fer better readability. If ye want t' change this, ye can set a CSS vari'ble

For full width, use a large value like 1000rem.

<style>
:root {
    --MAIN-WIDTH-MAX: 1000rem;
}
</style>

Titles & Breadcrumbs

Learrrn how t' turn off th' breadcrumbs completely an' further configure th' topbar.

Opt'n Set disableRootBreadcrumb=true t' remove th' root breadcrumb which often feels redundant. This will also apply t' th' breadcrumbs o' th' search results an' taxonomy planks.

Opt'n Ye can override th' default breadcrumb separator by us'n breadcrumbSeparator='/'. This separator will also be used 'n th' breadcrumbs o' th' search results an' taxonomy planks.

Opt'n By default th' term planks o' a taxonomy will display th' breadcrumb fer each plank. Set disableTermBreadcrumbs=true t' remove th' breadcrumb if th' term planks look t' cluttered.

hugo.
[params]
  breadcrumbSeparator = '/'
  disableRootBreadcrumb = true
  disableTermBreadcrumbs = true
params:
  breadcrumbSeparator: /
  disableRootBreadcrumb: true
  disableTermBreadcrumbs: true
{
   "params": {
      "breadcrumbSeparator": "/",
      "disableRootBreadcrumb": true,
      "disableTermBreadcrumbs": true
   }
}

Titles

Opt'n Ye can override th' default title separator by us'n titleSeparator='|'.

hugo.
[params]
  titleSeparator = '|'
params:
  titleSeparator: '|'
{
   "params": {
      "titleSeparator": "|"
   }
}

Headings

Head'ns can have anchor links that appear when ye hover over them.

Ye can change what happens when ye click th' anchor ay'con 'n yer hugo.toml file. By default, all opt'ns be turned on. If ye turn off all opt'ns, no anchor ay'con will show up when ye hover.

Opt'n Set disableAnchorCopy=true t' prevent copy'n th' anchor link when ye click th' ay'con.

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

Scroll t' Head'n

Opt'n Set disableAnchorScrolling=true t' stop th' plank from scroll'n t' th' head'n when ye click th' anchor ay'con.

hugo.
[params]
  disableAnchorScroll'n = true
params:
  disableAnchorScroll'n: true
{
   "params": {
      "disableAnchorScrolling": true
   }
}

Linking

Further sett'ns be avail'ble t' be used 'n yer configurat'n or front matter.

URL Management

Opt'n By default, th' theme adds index.html t' plank links when uglyURLs=false (Hugo’s default).

If you’re only us'n a web server scenario an' dislike this, ye can reset t' Hugo’s default behavior by sett'ns disableExplicitIndexURLs=true.

For th' file system scenario, ye be not allowed t' change this value.

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

Patch'n th' relref Shortcode

Opt'n While th' usage o' relref be obsolete an' discouraged by Cap'n Hugo fer a while, exist'n installat'ns may still use it.

In configurat'ns us'n a baseURL wit' a subdirectory an' hav'n relativeURLs=false (the default), Hugo’s standard relref implementat'n be fail'n.

T' work around this, ye can activate a patched version o' th' shortcode by sett'n disableDefaultRelref=true.

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

Hidden Pages

This theme allows ye t' create hidden planks.

Hidden planks be created but not shown 'n th' navigat'n. This be useful fer planks ye only want t' access via a direct link.

When ye visit a hidden page’s URL, it will appear 'n th' navigat'n menu.

Hidden planks can also have hidden subpages, creat'n multiple levels o' hid'n.

By default, hidden planks be only hidden from human visitors. Search engines can still find them by crawl'n yer ship an' th' planks be linked 'n yer taxonomies an' ship search. Ye can prevent this wit' these opt'ns.

Opt'n T' remove hidden planks from search results, use disableSearchHiddenPages=true.

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

Hide from Search Engines

Opt'n T' hide planks from search engines by remov'n them from th' sitemap, RSS feed an' make them nofollow, use disableSeoHiddenPages=true.

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

Hide from Taxonomies

Opt'n T' prevent hidden planks from appear'n on taxonomy an' term planks, use disableTagHiddenPages=true. If this makes a term’s count zero, an empty term plank will still be created but not linked.

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

Subsct'ns o' Customization

Partials

Us'ble Partials

Ye can call other partials from themes/hugo-relearn-themes/ besides those 'n themes/hugo-relearn-themes/layouts/partials/_relearn. However, us'n partials not mentioned as customiz'ble below might make future updates more challeng'n.

Customiz'ble Partials

Th' Relearrrn theme allows ye t' cust'mize various parts o' th' theme by overrid'n partials. This makes th' theme highly configur'ble.

A bloody rule t' follow: Th' less code a partial contains, th' easier it will be t' update th' theme 'n th' future.

Here’s a list o' partials ye can safely override:

  • layouts/partials/content.html: Th' main rrrambl'n o' a plank. Override this t' display additonal plank metadata.

  • layouts/partials/content-header.html: Th' header above th' title. By default, it shows tags, but ye can change this.

  • layouts/partials/content-footer.html: Th' footer below th' rrrambl'n. By default, it shows author info, modificat'n dates, an' categories. Ye can cust'mize this.

  • layouts/partials/custom-header.html: For add'n custom CSS. Remember t' include th' style HTML tag.

  • layouts/partials/custom-footer.html: For add'n custom JavaScript. Remember t' include th' script HTML tag.

  • layouts/partials/favicon.html: Th' favicon. Ye should definitely cust'mize this.

  • layouts/partials/head'n.html: th' page’s title head'ns

  • layouts/partials/heading-pre.html: Add rrrambl'n before th' page’s title head'ns. Remember t' consider th' headingPre front matter.

  • layouts/partials/heading-post.html: Add rrrambl'n after th' page’s title head'ns. Remember t' consider th' headingPost front matter.

  • layouts/partials/logo.html: Th' logo 'n th' top left corner. Ye should cust'mize this.

  • layouts/partials/menu-pre.html: Add rrrambl'n before menu items. Remember t' consider th' menuPre front matter.

  • layouts/partials/menu-post.html: Add rrrambl'n after menu items. Remember t' consider th' menuPost front matter.

  • layouts/partials/menu-footer.html: Th' footer o' th' left menu.

Ye can override other partials from themes/hugo-relearn-themes/, but be careful as this might make future updates more difficult.

Extending Scripts

A common quest'n be how t' add extra CSS styles or JavaScript t' yer ship. This depends on what ye need.

Add'n JavaScript or Stylesheets t' All Planks

T' add JavaScript files or CSS stylesheets t' every plank, ye can include them 'n layouts/partials/custom-header.html or layouts/partials/custom-footer.html.

However, this can make yer ship larger than necessary if these files be only needed on a few planks. Th' next section explains how t' add dependencies only when needed.

Custom Shorrrtcodes wit' Dependencies

Some shorrrtcodes need extra JavaScript an' CSS files. Th' theme only loads these when th' shortcode be used. Ye can use this fer yer own shorrrtcodes too.

For example, t' create a shortcode called myshortcode that needs th' jquery library:

  1. Create th' shortcode file layouts/shortcodes/myshortcode.html an' add th' follog'n line somewhere:

    ...
    {{- .Plank.Store.Set "hasMyShortcode" true }}
    ...
  2. Opt'n Add this 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. Create loader file layouts/partials/dependencies/myshortcode.html:

    {{- if eq .locat'n "footer" }}
      <script src="https://www.unpkg.com/jquery/dist/jquery.js"></script>
    {{- end }}

Important notes:

  • Character cas'n be relevant!
  • Th' name 'n hugo.toml must match th' Store key used 'n th' shortcode file, prefixed wit' a has.
  • Th' key o' relearn.dependencies must match th' loader file name.

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

Avast

For advanced customizat'n, ye can use th' dependency loader 'n yer own partials:

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

Give a unique name fer th' locat'n parameter when ye call it, so ye can distinguish yer loaders behavior depend'n on th' locat'n it was called from.

Image Effects

This plank shows ye, how t' configure custom image effects on top o' exist'n ones.

This sett'n can also be overridden by yer front matter.

If ye don’t configure anyth'n 'n yer hugo.toml, th' image effects default t'

Default Values

[imageEffects]
  border = false
  lazy = true
  lightbox = true
  shadow = false
imageEffects:
  border: false
  lazy: true
  lightbox: true
  shadow: false
{
   "imageEffects": {
      "border": false,
      "lazy": true,
      "lightbox": true,
      "shadow": false
   }
}

Configurat'n

Opt'n Ye can change these sett'ns 'n yer hugo.toml an' add arbitrary custom effects as boolean values (like bg-white 'n th' below snippet).

hugo.
[params]
  [params.imageEffects]
    bg-white = true
    border = true
    lazy = false
params:
  imageEffects:
    bg-white: true
    border: true
    lazy: false
{
   "params": {
      "imageEffects": {
         "bg-white": true,
         "border": true,
         "lazy": false
      }
   }
}

This would result 'n

[imageEffects]
  bg-white = true
  border = true
  lazy = false
  lightbox = true
  shadow = false
imageEffects:
  bg-white: true
  border: true
  lazy: false
  lightbox: true
  shadow: false
{
   "imageEffects": {
      "bg-white": true,
      "border": true,
      "lazy": false,
      "lightbox": true,
      "shadow": false
   }
}

Example

Wit' this configurat'n 'n effect, th' follow'n URL

![Minion](https://octodex.github.com/images/minion.png)

would result 'n

<img src="https://octodex.github.com/images/minion.png" load'n="lazy" alt="Minion" class="bg-white border nolazy lightbox noshadow">

Styl'n Effects

If th' result'n effect value be

  • true: add a class wit' th' effect’s name
  • false: add a class wit' th' effect’s name an' a “no” prefix

Styles fer default effects be contained 'n th' theme. Add styles fer yer custom effects t' layouts/partials/content-header.html.

For th' above example ye could add styles fer both boolean cases:

<style>
img.bg-white {
  background-color: white;
}
img.nobg-white {
  background-color: transparent;
}
</style>

Topbarrr

Th' theme comes wit' a reasonably configured topbar. Ye can learn how t' configure th' defaults 'n this section.

topbar on mobile devices topbar on mobile devices

Nevertheless, yer requirements may differ from this configurat'n. Luckily, th' theme has ye covered as th' topbar, 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 cannot 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):

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

E.g., 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; fer example, 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 be displayed 'n a 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 a 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 a 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 a 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 a 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.

Page Designs

A plank be displayed by exactly one plank design. Th' Relearrrn theme offers th' plank designs home, chapter, an' default.

A plank design usually consists o'

If no type be set 'n yer front matter, th' plank be treated as if type='default' was set.

Arrr

Don’t use th' type opt'n 'n yer modificat'ns fer other functionality!

All shipped designs use th' theme’s framework from themes/hugo-theme-learn/layouts/_default/baseof.html, contain'n o' th' same topbar an' sidebar but can change how rrrambl'n appears 'n th' center o' th' plank.

Us'n a Plank Design

Regardless o' shipped or custom plank design, ye be us'n them 'n th' same way.

Creat'n a Plank Designs

T' make a custom plank design:

  1. Choose a name (for example, mydesign)

  2. Create a rrrambl'n view file at layouts/mydesign/views/article.html

    <article class="mydesign">
      <header class="headline">
    {{ partial "content-header.html" . }}
      </header>
    <div class="article-subheading">AWESOME</div>
    {{ partial "heading-pre.html" . }}{{ partial "head'n.html" . }}{{ partial "heading-post.html" . }}
    {{ partial "article-content.html" . }}
      <footer class="footline">
    {{ partial "content-footer.html" . }}
      </footer>
    </article>

    In this file, ye can cust'mize th' plank design as needed. Typically, you’ll want t':

    • Set a class at th' article element fer custom CSS styles
    • Use {{ partial "article-content.html" . }} t' show yer plank rrrambl'n
  3. Create an archetype file at archetypes/mydesign.md (optional)

    +++
    title = "{{ replace .Name "-" " " | title }}"
    type = "mydesign"
    +++
    
    This be my new design.
  4. Add CSS 'n file layouts/partials/custom-header.html (optional)

    <style>
    .mydesign .article-subhead'n {
      font-size: 72rem;
    }
    .mydesign a {
      background-color: pink;
    }
    </style>

Partials

Th' above example uses layouts/mydesign/views/article.html but ye have some others

  • layouts/mydesign/baseof.html: Completely redefine th' whole HTML structure, none o' th' other listed partials will be used
  • layouts/mydesign/views/menu.html: Defines th' sidebar menu layout
  • layouts/mydesign/views/body.html: Determines what t' contain 'n th' rrrambl'n area (for example a single plank, a list o' planks, a tree o' sub pages)
  • layouts/mydesign/views/article.html: Controls how one page’s rrrambl'n an' title be displayed

Output Formats

In addit'n t' th' output formats com'n wit' th' theme, ye can create yer own output formats.

Start'n from Scratch

If ye want t' add a new output format called myformat that outputs HTML an' ye want t' build everyth'n yourself without us'n th' theme’s components:

  1. Create a file layouts/_default/baseof.myformat.html
  2. Implement all th' necessary code 'n this file

Us'n th' Theme’s Structure

If ye want t' keep th' general framework an' only change specific parts, ye can override these files:

  • layouts/_default/views/article.html: Controls how a page’s rrrambl'n an' title be displayed
  • layouts/_default/views/body.html: Determines th' plank body structure
  • layouts/_default/views/menu.html: Defines th' sidebar menu layout
  • layouts/_default/views/storeOutputFormat.html: Stores th' output format name fer use 'n th' framework

For a real-world example, check out th' print output format implementat'ns

Taxonomies

This plank explains how t' show custom taxonomies on yer planks.

For more details, check th' official docs on sett'n up custom taxonomies an' us'n them 'n yer rrrambl'n.

Default Behavior

Th' Relearrrn theme automatically shows Hugo’s default taxonomies tags an' categories out o' th' box.

  • Tags appear at th' top o' th' plank 'n alphabetical order 'n form o' baggage tags.
  • Categories appear at th' bottom o' th' plank 'n alphabetical order as a list prefixed wit' an ay'con.

Each item links t' a plank show'n all articles wit' that term.

Sett'n Up Custom Taxonomies

T' add custom taxonomies, update yer hugo.toml file. Ye also have t' add th' default taxonomies if ye want t' use them.

hugo.
[taxonomies]
  category = 'categories'
  mycustomtag = 'mycustomtags'
  tag = 'tags'
taxonomies:
  category: categories
  mycustomtag: mycustomtags
  tag: tags
{
   "taxonomies": {
      "category": "categories",
      "mycustomtag": "mycustomtags",
      "tag": "tags"
   }
}

Show'n Custom Taxonomies

T' display yer custom taxonomy terms, add this t' yer plank (usually 'n layouts/partials/content-footer.html):

{{ partial "term-list.html" (dict
  "page" .
  "taxonomy" "mycustomtags"
  "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 front matter.
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: caut'n, important, info, note, tip, warning
- by brand color: primary, secondary, accent
- by color: blue, cyan, green, grey, magenta, 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.

Options Reference

This plank explains how t' configure th' Relearrrn theme 'n yer hugo.toml file.

In addit'n t' Hugo’s standard opt'ns, th' Relearrrn theme offers extra sett'ns listed here.

Throughout th' documentat'n, theme-specific opt'ns be marked wit' a Opt'n badge.

Add theme opt'ns t' th' params section o' yer hugo.toml. For example:

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

Index

A

B

C

D

E

H

I

L

M

O

R

S

T

All Configurat'n Opt'ns

Here’s a list o' all avail'ble opt'ns wit' example values. Default values be described 'n th' annotated example below 'n each option’s documentat'n.

hugo.
[params]
  additionalContentLanguage = ['en']
  alwaysopen = ''
  breadcrumbSeparator = '>'
  collapsibleMenu = true
  customMathJaxURL = ''
  customMermaidURL = ''
  customOpenapiURL = ''
  disableAnchorCopy = false
  disableAnchorScroll'n = false
  disableAssetsBust'n = false
  disableBreadcrumb = false
  disableDefaultRelref = false
  disableExplicitIndexURLs = false
  disableGeneratorVersion = false
  disableHoverBlockCopyToClipBoard = false
  disableInlineCopyToClipBoard = true
  disableLandingPageButton = true
  disableLanguageSwitchingButton = false
  disableNextPrev = false
  disableRandomIds = false
  disableRootBreadcrumb = true
  disableSearch = false
  disableSearchHiddenPages = false
  disableSearchIndex = false
  disableSearchPage = 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']
  linkTitle = 'Relearn'
  math = false
  mathJaxInitialize = '{}'
  mermaidInitialize = '{ "securityLevel": "loose" }'
  mermaidZoom = true
  ordersectionsby = 'weight'
  searchIndexURL = 'searchindex.js'
  searchPageURL = 'search'
  showVisitedLinks = true
  titleSeparator = '::'

  [params.author]
    name = 'SΓΆren Weber'

  [[params.boxStyle]]
    color = 'gold'
    i18n = ''
    ay'con = 'rainbow'
    identifier = 'magic'
    title = 'Magic'

  [params.image]
    errorlevel = 'error'

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

  [params.include]
    errorlevel = 'error'

  [params.link]
    errorlevel = 'error'

  [params.mermaid]
    force = false

  [params.openapi]
    errorlevel = 'error'

  [params.oppenapi]
    force = false

  [[params.sidebarmenus]]
    disableTitle = true
    identifier = 'home'
    main = true
    pageRef = ''
    type = 'page'

  [[params.sidebarmenus]]
    disableTitle = false
    identifier = 'shortcuts'
    main = false
    type = 'menu'

  [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
  boxStyle:
  - color: gold
    i18n: ""
    ay'con: rainbow
    identifier: magic
    title: Magic
  breadcrumbSeparator: '>'
  collapsibleMenu: true
  customMathJaxURL: ""
  customMermaidURL: ""
  customOpenapiURL: ""
  disableAnchorCopy: false
  disableAnchorScroll'n: false
  disableAssetsBust'n: false
  disableBreadcrumb: false
  disableDefaultRelref: false
  disableExplicitIndexURLs: false
  disableGeneratorVersion: false
  disableHoverBlockCopyToClipBoard: false
  disableInlineCopyToClipBoard: true
  disableLandingPageButton: true
  disableLanguageSwitchingButton: false
  disableNextPrev: false
  disableRandomIds: false
  disableRootBreadcrumb: true
  disableSearch: false
  disableSearchHiddenPages: false
  disableSearchIndex: false
  disableSearchPage: 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
  linkTitle: Relearrrn
  math: false
  mathJaxInitialize: '{}'
  mermaid:
    force: false
  mermaidInitialize: '{ "securityLevel": "loose" }'
  mermaidZoom: true
  openapi:
    errorlevel: error
  oppenapi:
    force: false
  ordersectionsby: weight
  searchIndexURL: searchindex.js
  searchPageURL: search
  showVisitedLinks: true
  sidebarmenus:
  - disableTitle: true
    identifier: home
    main: true
    pageRef: ""
    type: plank
  - disableTitle: false
    identifier: shortcuts
    main: false
    type: menu
  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"
      },
      "boxStyle": [
         {
            "color": "gold",
            "i18n": "",
            "icon": "rainbow",
            "identifier": "magic",
            "title": "Magic"
         }
      ],
      "breadcrumbSeparator": "\u003e",
      "collapsibleMenu": true,
      "customMathJaxURL": "",
      "customMermaidURL": "",
      "customOpenapiURL": "",
      "disableAnchorCopy": false,
      "disableAnchorScrolling": false,
      "disableAssetsBusting": false,
      "disableBreadcrumb": false,
      "disableDefaultRelref": false,
      "disableExplicitIndexURLs": false,
      "disableGeneratorVersion": false,
      "disableHoverBlockCopyToClipBoard": false,
      "disableInlineCopyToClipBoard": true,
      "disableLandingPageButton": true,
      "disableLanguageSwitchingButton": false,
      "disableNextPrev": false,
      "disableRandomIds": false,
      "disableRootBreadcrumb": true,
      "disableSearch": false,
      "disableSearchHiddenPages": false,
      "disableSearchIndex": false,
      "disableSearchPage": 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"
      },
      "linkTitle": "Relearn",
      "math": false,
      "mathJaxInitialize": "{}",
      "mermaid": {
         "force": false
      },
      "mermaidInitialize": "{ \"securityLevel\": \"loose\" }",
      "mermaidZoom": true,
      "openapi": {
         "errorlevel": "error"
      },
      "oppenapi": {
         "force": false
      },
      "ordersectionsby": "weight",
      "searchIndexURL": "searchindex.js",
      "searchPageURL": "search",
      "showVisitedLinks": true,
      "sidebarmenus": [
         {
            "disableTitle": true,
            "identifier": "home",
            "main": true,
            "pageRef": "",
            "type": "page"
         },
         {
            "disableTitle": false,
            "identifier": "shortcuts",
            "main": false,
            "type": "menu"
         }
      ],
      "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 Configurat'n 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' title t' be used fer links t' th' main plank
# Default: not set
# This name will be used fer th' link t' th' main plank 'n th' upper section
# o' th' menu. If not set, `title` from th' Cap'n Hugo sett'ns will be used.
linkTitle = 'Relearn'

# 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

# 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}'

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Search
# These opt'ns modify various aspects o' th' search functionality.

# Dis'ble th' search.
# Default: false
# If th' search be disabled, no search box will be displayed 'n th' menu,
# nor in-page search, search popup or dedicated search plank will be avail'ble.
# This will also cause th' keyboard shortcut t' be disabled.
disableSearch = false

# Dis'ble th' search index generat'n.
# Default: false
# `disableSearch=false` must be set t' let th' generat'n o' th' search index
# file t' be affected by this opt'n. If th' search index be disabled, no
# search popup or dedicated search plank will be avail'ble.
disableSearchIndex = false

# URL o' th' search index file relative t' th' language home.
# Default: 'searchindex.js'
# Ye have t' set this opt'n if yer plank already has a rrrambl'n file named
# `searchindex.js` 'n th' language home.
searchIndexURL = 'searchindex.js'

# Dis'ble th' dedicated search plank.
# Default: false
# `disableSearch=false` an' `disableSearchIndex=false` must be set t' let th'
# generat'n o' th' dedicated search plank t' be affected by this opt'n.
disableSearchPage = false

# URL o' th' dedicated search plank relative t' th' language home.
# Default: 'search'
# In its basic form th' search plank URL be named th' same fer all languages
# but ye be free t' override it 'n each language opt'ns t' localised th'
# URL. Ye also need t' set this opt'n if yer plank already has a rrrambl'n
# plank named `search`.
searchPageURL = 'search'

# Multilanguage rrrambl'n.
# Default: not set
# If th' search index be enabled an' 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' ]

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

# 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

# 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

# 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

# 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

# Hide head'n above th' shortcuts menu.
# Default: false
# If a sidebar menu wit' identifier `shortcuts` be configured (see below),
# this be th' easy way t' remove th' head'n;
# Th' title fer th' head'n can be overwritten 'n yer i18n files. See Hugo's
# documentat'n how t' do this.
disableShortcutsTitle = false

# Define yer own sidebar menus.
# Default: th' value used below
# Th' sidebar menus be built from this parameter. If not set, it contains
# th' below default.
# Menus be written from th' sidebar's top t' buttom 'n th' order given 'n
# this array.
# This can be overridden 'n th' page's frontmatter.
# Each entry can contain th' follow'n keys:
# - `type` be mandatory. Either `page` 'n case it should generate a tre from
#    th' plank structure or `menu` 'n case it should generate a tree from a
#    defined menu.
# - `identifier` be mandatory. In case o' `type=page`, anyth'n can be used,
#    'n case o' `type=menu` th' `identifier` key must be identical t' th'
#    key o' th' menu definit'n.
# - `main`, boolean. If `true`, th' first tree level be spaced more generous
#    an' th' text be emphasized. Default: `true` fer `type=page` an' `false`
#    fer `type=menu`
# - `disableTitle`, boolean. If `true`, there be no title above th' tree.
#    Default: `true` fer `type=page` an' `false` fer `type=menu`. If a title
#    should be used, 'n case o' `type=page` it will be taken from th' page's
#    `menuTitle` front matter an' if not set, from th' translat'n files, us'n
#    th' menu `identifier` as key. In case o' `type=menu` it will be taken
#    from th' menu `title` accord'n t' Hugo's documentat'n an' if not set
#    from th' menu `name` an' if this be not set form th' page's `linkTitle`.
# - `pageRef`, optional. In case o' `type=page` this be th' start'n page's
#   path. If not set, th' home plank will be used.
sidebarmenus = [
	{ type = 'page', identifier = 'home', main = true, disableTitle = true, pageRef = '' },
	{ type = 'menu', identifier = 'shortcuts', main = false, disableTitle = 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

# Dis'ble copy'n head'n links t' clipboard
# Default: false
# If set t' true, this disables th' copy'n o' anchor links t' th' clipboard;
# if also `disableAnchorScrolling=true` then no anchor link will be vis'ble
# when hover'n a head'n.
disableAnchorCopy = false

# Dis'ble scroll'n t' head'n link on click
# Default: false
# If set t' true, this disables th' scroll'n t' th' beginn'n o' th' head'n
# when clicked; if also `disableAnchorCopy=true` then no anchor link will
# be vis'ble when hover'n a head'n.
disableAnchorScroll'n = false

# User-defined styles fer shorrrtcodes
# Default: not set
# Besides th' predefined `style` values, ye be able t' define yer own. Th'
# `style` parameter o' th' shortcode must match th' `identifier` defined here.
# Th' title fer th' style will be determined from th' `title`. If no `title`
# but a `i18n` be set, th' title will be taken from th' translat'n files by
# that key. Th' `title` may be empty 'n which case, th' box does not contain a
# default title. `icon` an' `color` be work'n similar.
boxStyle = [
	{ identifier = 'magic', i18n = '', title = 'Magic', ay'con = 'rainbow', color = 'gold' }
]

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 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.
# This can be overridden 'n th' page's frontmatter.
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.
# This can be overridden 'n th' page's frontmatter.
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.

# Wether t' use Hugo's default relref shortcode implementat'n
# Default: false
# Since th' theme provides a link render hook, th' usage o' th' relref shortcode
# be obsolete. If a ship still uses that shortcode, it fails t' generate a
# correct links if th' baseURL be configured wit' a subdirectory an' relativeURLs=false.
# Th' theme provides an overriden relref shortcode that also works 'n th'
# above setup but must manually be activated by sett'n this opt'n t' true.
# See discussion 'n https://github.com/McShelby/hugo-theme-relearn/discussions/862
disableDefaultRelref = false

# 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

# 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.
# This can be overridden 'n th' page's frontmatter.
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'.
# This can be overridden 'n th' page's frontmatter.
externalLinkTarget = '_self'

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 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 = '{}'

# Force board Math on every plank.
# Default: false
# If a, Math shortcode or codefence be found, th' opt'n will be ignored an'
# Math will be boarded regardlessly. This opt'n be useful 'n case ye
# be us'n passthrough configurat'n t' render yer math. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default so ye can
# force load'n it by sett'n `math=true`.
# This opt'n has an alias `math.force`.
# This can be overridden 'n th' page's frontmatter.
math = false

# 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" }'

# Force board Merrrmaid on every plank.
# Default: false
# If a Merrrmaid shortcode or codefence be found, th' opt'n will be ignored an'
# Merrrmaid will be boarded regardlessly. This opt'n be useful 'n case ye
# be us'n script'n t' render yer graph. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default so ye can
# force load'n it by sett'n `mermaid.force=true`.
# This can be overridden 'n th' page's frontmatter.
mermaid.force = false

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

# Force board OpenAPI on every plank.
# Default: false
# If a, OpenAPI shortcode or codefence be found, th' opt'n will be ignored an'
# OpenAPI will be boarded regardlessly. This opt'n be useful 'n case ye
# be us'n script'n t' render yer spec. In this case no shortcode or
# codefence be involved an' th' library be not boarded by default so ye can
# force load'n it by sett'n `openapi.force=true`.
# This can be overridden 'n th' page's frontmatter.
oppenapi.force = false

# 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'

# What t' do when a local OpenAPI spec link be not resolved.
# Default: ''
# Ye can control what should happen if a local OpenAPI spec link can not be resolved
# t' 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.
# This can be overridden 'n th' page's frontmatter.
openapi.errorlevel = 'error'