Front Matter

Plank Designs

How t' vary layouts by us'n plank designs

Menus

Sett'n th' behavior o' th' menus

Link'n

What opt'ns be avail'ble fer links an' images

Topbar

Configure th' topbar

Reference

All front matter fer th' Relearrrn theme

Subsct'ns o' Front Matter

Page Designs

A plank be displayed by exactly one plank design an' represented by Hugo’s reserved type front matter.

Th' Relearrrn theme offers th' plank designs home, chapter, an' default but ye can define further custom plank designs.

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

  • If ye have an archetype file, ye can just do

    hugo new --kind chapter chapter1/_index.md
  • If ye be creat'n yer Marrrkdown files manually, ye can achieve th' same by just sett'n type='chapter' 'n th' front matter.

Yer result'n Marrrkdown file needs t' have at least th' type front matter set t' th' value o' th' plank design

+++
title = "Chapter 1"
type = "chapter"
+++

Predefined Designs

Home

A Home plank be th' start'n plank o' yer project. It’s best t' have only one plank o' this kind 'n yer project.

T' create a home plank, run th' follow'n command

hugo new --kind home _index.md

Home page Home page

Chapter

A Chapter displays a plank meant t' be used as introduct'n fer a set o' child planks.

Commonly, it contains a title front matter an' a short descript'n 'n th' rrrambl'n.

T' create a chapter plank, run th' follow'n command

hugo new --kind chapter chapter1/_index.md

If a numerical weight front matter be set, it will be used t' generate th' subtitle o' th' chapter plank. Set th' number t' a consecutive value start'n at 1 fer each new chapter on th' same directory level.

Chapter page Chapter page

Default

A Default plank be any other rrrambl'n plank.

T' create a default plank, run either one o' th' follow'n commands

hugo new chapter1/page1/_index.md

or

hugo new chapter1/page1.md

Default page Default page

Menus

Linking

Opt'n Front Matter By default, external links open 'n a new tab. T' change this, use th' externalLinkTarget sett'n wit' a proper link target.

For example, this will open links 'n th' same tab

externalLinkTarget = '_self'
externalLinkTarget: _self
{
   "externalLinkTarget": "_self"
}

Opt'n Front Matter Ye can use link.errorlevel an' image.errorlevel t' control what should happen if a local link can not be resolved t' a resource.

If not set or empty, any unresolved link be written as given into th' result'n output. If set t' warning th' same happens an' an additional warning be printed 'n th' built console. 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. Th' file must be a resource o' th' plank or th' ship.

Link warnings be also avail'ble fer th' include an' openapi shorrrtcodes.

[image]
  errorlevel = 'warning'

[link]
  errorlevel = 'warning'
image:
  errorlevel: warning
link:
  errorlevel: warning
{
   "image": {
      "errorlevel": "warning"
   },
   "link": {
      "errorlevel": "warning"
   }
}

Topbarrr

This plank be about how t' configure th' topbar us'n configurat'n opt'ns. If ye want t' add further buttons or functionality, see this section.

Yer topbar contains th' follow'n elements. Some o' them be configuar'ble:

T'ble o' Contents

Opt'n Front Matter Set disableToc=true t' hide th' TOC button on all planks. If th' button be hidden, also th' keyboard shortcut be disabled. This can be overridden 'n a page’s front matter.

disableToc = true
disableToc: true
{
   "disableToc": true
}

Opt'n Front Matter Set disableBreadcrumb=true t' hide th' breadcrumb 'n th' topbar.

Further breadcrumbs sett'ns can be found 'n th' rrrambl'n configurat'n section.

disableBreadcrumb = true
disableBreadcrumb: true
{
   "disableBreadcrumb": true
}

Edit Button

Opt'n Front Matter If editURL be set t' a URL, an edit button will be shown 'n th' topbar. If th' button be hidden, also th' keyboard shortcut 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 front matter.

editURL = 'https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}'
editURL: https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}
{
   "editURL": "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}"
}

Arrow Navigat'n

Opt'n Front Matter Ye can hide th' previous/next buttons by sett'n disableNextPrev=true. If th' buttons be hidden, also th' keyboard shortcuts be disabled.

disableNextPrev = true
disableNextPrev: true
{
   "disableNextPrev": true
}

Front Matter Reference

Every Cap'n Hugo plank must have front matter.

In addit'n t' Hugo’s standard front matter, th' Relearrrn theme offers extras sett'ns listed here.

Throughout th' documentat'n, theme-specific front matter be marked wit' a Front Matter badge.

Add theme front matter directly t' th' root o' yer page’s front matter. For example:

+++
math = true
+++
---
math: true
---
{
   "math": true
}

Index

A

C

D

E

H

I

L

M

O

S

All Front Matter

Here’s a list o' all avail'ble front matter wit' example values. Default values be described 'n th' annotated example below or 'n each front matter’s documentat'n.

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

[image]
  errorlevel = ''

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

[include]
  errorlevel = ''

[link]
  errorlevel = ''

[mermaid]
  force = false

[openapi]
  errorlevel = ''

[oppenapi]
  force = false

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

[[sidebarmenus]]
  disableTitle = false
  identifier = 'shortcuts'
  main = false
  type = 'menu'
+++
---
LastModifierDisplayName: ""
LastModifierEmail: ""
alwaysopen: ""
collapsibleMenu: true
customMathJaxURL: ""
customMermaidURL: ""
customOpenapiURL: ""
descript'n: ""
disableBreadcrumb: false
disableNextPrev: false
disableToc: false
editURL: ""
externalLinkTarget: _self
headingPost: ""
headingPre: ""
hidden: false
highlightWrap: true
image:
  errorlevel: ""
imageEffects:
  border: true
  lazy: true
  lightbox: true
  shadow: false
images:
- images/hero.png
include:
  errorlevel: ""
link:
  errorlevel: ""
linkTitle: ""
math: false
mathJaxInitialize: '{}'
menuPageRef: ""
menuPost: ""
menuPre: ""
menuUrl: ""
mermaid:
  force: false
mermaidInitialize: '{ "securityLevel": "loose" }'
mermaidZoom: true
openapi:
  errorlevel: ""
oppenapi:
  force: false
ordersectionsby: weight
sidebarmenus:
- disableTitle: true
  identifier: home
  main: true
  pageRef: ""
  type: plank
- disableTitle: false
  identifier: shortcuts
  main: false
  type: menu
title: Example Plank
type: ""
---
{
   "LastModifierDisplayName": "",
   "LastModifierEmail": "",
   "alwaysopen": "",
   "collapsibleMenu": true,
   "customMathJaxURL": "",
   "customMermaidURL": "",
   "customOpenapiURL": "",
   "description": "",
   "disableBreadcrumb": false,
   "disableNextPrev": false,
   "disableToc": false,
   "editURL": "",
   "externalLinkTarget": "_self",
   "headingPost": "",
   "headingPre": "",
   "hidden": false,
   "highlightWrap": true,
   "image": {
      "errorlevel": ""
   },
   "imageEffects": {
      "border": true,
      "lazy": true,
      "lightbox": true,
      "shadow": false
   },
   "images": [
      "images/hero.png"
   ],
   "include": {
      "errorlevel": ""
   },
   "link": {
      "errorlevel": ""
   },
   "linkTitle": "",
   "math": false,
   "mathJaxInitialize": "{}",
   "menuPageRef": "",
   "menuPost": "",
   "menuPre": "",
   "menuUrl": "",
   "mermaid": {
      "force": false
   },
   "mermaidInitialize": "{ \"securityLevel\": \"loose\" }",
   "mermaidZoom": true,
   "openapi": {
      "errorlevel": ""
   },
   "oppenapi": {
      "force": false
   },
   "ordersectionsby": "weight",
   "sidebarmenus": [
      {
         "disableTitle": true,
         "identifier": "home",
         "main": true,
         "pageRef": "",
         "type": "page"
      },
      {
         "disableTitle": false,
         "identifier": "shortcuts",
         "main": false,
         "type": "menu"
      }
   ],
   "title": "Example Page",
   "type": ""
}

Annotated Front Matter

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

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

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

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

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

# Th' plank design t' be used
# Default: not set
# This decides th' layout o' yer plank. Th' theme ships 'home', 'chapter' an'
# 'default'. If not set, 'default' be taken.
type = ''

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

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

# Hide th' t'ble o' contents button.
# Default: false
# If th' TOC button be hidden, also th' keyboard shortcut be disabled.
# If not set, th' set value o' yer site's hugo.toml be used.
disableToc = false

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

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

# Th' URL prefix t' edit a plank.
# Default: not set
# If set, an edit button will be shown 'n th' topbar. If th' button be hidden,
# also th' keyboard shortcuts be disabled. Th' value can contain th' macro
# `${FilePath}` which will be replaced by th' file path o' yer displayed plank.
# If not set, th' set value o' yer site's hugo.toml be used. If th' global
# parameter be given but ye want t' hide th' button fer th' displayed plank,
# ye can set th' value t' an empty str'n. If instead o' hid'n ye want t' have
# an disabled button, ye can set th' value t' a str'n contain'n just spaces.
# This be useful if ye want t' give th' opportunity fer people t' create merge
# request fer yer rrrambl'n.
editURL = ''

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

# Menu specific title
# Default: not set
# Th' title displayed 'n th' menu. If not set th' `title` front matter will
# be used.
linkTitle = ''

# Prefix fer th' title 'n navigat'n menu.
# Default: not set
# Th' title o' th' plank 'n th' menu will be prefixed by this HTML rrrambl'n.
menuPre = ''

# Suffix fer th' title 'n navigat'n menu.
# Default: not set
# Th' title o' th' plank 'n th' menu will be suffixed by this HTML rrrambl'n.
menuPost = ''

# Link th' menu entry t' a different internal plank instead.
# Default: not set
# This will effectivly hide th' plank an' its rrrambl'n from th' viewer by
# link'n t' th' given URL instead.
menuPageRef = ''

# Link th' menu entry t' an external URL instead o' a plank.
# Default: not set
# This will effectivly hide th' plank an' its rrrambl'n from th' viewer by
# link'n t' th' given URL instead.
menuUrl = ''

# Th' order o' navigat'n menu submenus.
# Default: 'weight'
# Submenus can be ordered by 'weight', 'title', 'linktitle', 'modifieddate',
# 'expirydate', 'publishdate', 'date', 'length' or 'default' (adher'n t'
# Hugo's default sort order).
# If not set, th' value o' th' parent menu entry be used.
ordersectionsby = 'weight'

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

# Shows expander fer submenus.
# Default: false
# If set t' true, a submenu 'n th' sidebar will be displayed 'n a collaps'ble
# tree view an' a click'ble expander be set 'n front o' th' entry.
# If not set, th' set value o' yer site's hugo.toml be used.
collapsibleMenu = true

# Define yer own sidebar menus.
# Default: th' value used below
# Th' sidebar menus be built from this parameter. If not set, th' set value
# o' yer site's hugo.toml be used an' contains th' below default.
# Menus be written from th' sidebar's top t' buttom 'n th' order given 'n
# this array.
# 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' navigat'n menu if ye be
# currently not on this plank or th' hidden plank be not part o' current page's
# ancestors. For all other functionality 'n Hugo a hidden plank behaves like any
# other plank if not otherwise configured.

# Hide a page's menu entry.
# Default: false
# If this value be true, th' plank be hidden from th' menu.
hidden = false

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

# Prefix fer th' title 'n th' rrrambl'n area.
# Default: not set
# Th' title o' th' plank head'n will be prefixed by this HTML rrrambl'n.
headingPre = ''

# Suffix fer th' title 'n th' rrrambl'n area.
# Default: not set
# Th' title o' th' plank head'n will be suffixed by this HTML rrrambl'n.
headingPost = ''

# Display name o' th' page's last editor.
# Default: not set
# If set, it will be displayed 'n th' default footer.
LastModifierDisplayName = ''

# Email address o' th' page's last editor.
# Default: not set
# If set together wit' LastModifierDisplayName, it will be displayed 'n th'
# default footer.
LastModifierEmail = ''

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

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

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 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.
# If not set, th' set value o' yer site's hugo.toml be used.
include.errorlevel = ''

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 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.
# If not set, th' set value o' yer site's hugo.toml be used.
image.errorlevel = ''

# Image effects.
# See th' documentat'n fer how ye can even add yer own arbitrary effects t'
# th' list.
# All effect values default t' th' values o' yer site's hugo.toml an' can be
# overridden through URL parameter given t' th' image. See th' documentat'n fer
# details.

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

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

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

# 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'.
# If not set, th' set value o' yer site's hugo.toml be used.
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.
# If not set, th' set value o' yer site's hugo.toml be used.
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`.
# If not set, th' set value o' yer site's hugo.toml be used.
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.
# If not set, th' set value o' yer site's hugo.toml be used.
customMathJaxURL = '' # 'https://unpkg.com/mathjax/es5/tex-mml-chtml.js'

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

# Make graphs pan'ble an' zoom'ble
# Default: false
# For huge graphs it can be helpful t' make them zoom'ble. Zoom'ble graphs come
# wit' a reset button fer th' zoom.
# If not set, th' set value o' yer site's hugo.toml be used or given as a
# parameter t' individual graphs.
mermaidZoom = true

# Initializat'n opt'ns fer Merrrmaid.
# Default: not set
# A JSON value. See th' Merrrmaid documentat'n fer poss'ble parameter.
# If not set, th' set value o' yer site's hugo.toml be used.
mermaidInitialize = '{ "securityLevel": "loose" }'

# 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`.
# If not set, th' set value o' yer site's hugo.toml be used.
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.
# If not set, th' set value o' yer site's hugo.toml be used.
customMermaidURL = '' # 'https://unpkg.com/mermaid/dist/mermaid.min.js'

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

# 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`.
# If not set, th' set value o' yer site's hugo.toml be used.
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.
# If not set, th' set value o' yer site's hugo.toml be used.
customOpenapiURL = '' # 'https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js'

# 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.
# If not set, th' set value o' yer site's hugo.toml be used.
openapi.errorlevel = ''
+++