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
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.
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
Th' navigat'n menu be automatically created from yer rrrambl'n files.
All configurat'ns opt'ns apply t' all planks but can be changed 'n each page’s front matter.
Expand State o' Nested Sect'ns
Opt'n Front Matter Ye can change how th' theme submenus appear wit' alwaysopen
.
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 plank be shown regardless o' any sett'ns
- if not overridden, all other first level entries behave like they would have been given
alwaysopen=false
- if not overridden, all other entries o' levels besides th' first behave like they would have been given
alwaysopen=true
- all vis'ble entries show their immediate child entries if
alwaysopen=true
; this proceeds recursively
- all remain'n entries be not shown
Expander fer Nested Sect'ns
Opt'n Front Matter Set collapsibleMenu=true
t' add an expander fer submenus. This shows submenus as collaps'ble trees wit' a click'ble expander.
{
"collapsibleMenu": true
}
Arrr
Us'n this opt'n may slow down yer build process, especially wit' many planks.
We’ve seen builds tak'n 2 minutes wit' 1000+ planks, an' over 30 minutes wit' 5000+ planks.
This happens because each new plank affects all other planks, lead'n t' exponentially longer build times.
By Weight
Cap'n Hugo provides a simple way t' handle order fer yer planks by sett'n th' weight
front matter t' a number.
+++
title = 'My page'
weight = 5
+++
---
title: My plank
weight: 5
---
{
"title": "My page",
"weight": 5
}
By Other
Opt'n Front Matter 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.
ordersectionsby = 'linktitle'
ordersectionsby: linktitle
{
"ordersectionsby": "linktitle"
}
By default, th' Relearrrn theme will use a page’s title
front matter fer th' menu entry.
Front Matter But a page’s title has t' be descriptive on its own while th' menu be a hierarchy. Use linkTitle
t' shorten th' text o' th' menu entry.
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"
}
Front Matter In th' plank front matter, 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.
Th' example below uses th' GitHub ay'con.
+++
menuPre = '<i class="fab fa-github"></i> '
title = 'GitHub Repo'
+++
---
menuPre: '<i class="fab fa-github"></i> '
title: GitHub Repo
---
{
"menuPre": "\u003ci class=\"fab fa-github\"\u003e\u003c/i\u003e ",
"title": "GitHub Repo"
}
Dis'ble Sect'n Planks
Ye may want t' structure yer planks 'n a hierarchical way but don’t want t' generate planks fer those sections? Th' theme got ye covered.
T' stay wit' th' initial example: Suppose ye want 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 show an expander.
For this, open content/first-chapter/first-page/_index.md
an' add th' follow'n front matter
+++
collapsibleMenu = true
[_build]
render = 'never'
+++
---
_build:
render: never
collapsibleMenu: true
---
{
"_build": {
"render": "never"
},
"collapsibleMenu": true
}
Linking
Open'n Links
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"
}
Enabl'n Link an' Image Link Warn'ns
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.
Breadcrumbs
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
}
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
}
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:
Index
A
C
D
E
H
I
L
M
O
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 = '{}'
menuPost = ''
menuPre = ''
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
+++
---
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: '{}'
menuPost: ""
menuPre: ""
mermaid:
force: false
mermaidInitialize: '{ "securityLevel": "loose" }'
mermaidZoom: true
openapi:
errorlevel: ""
oppenapi:
force: false
ordersectionsby: weight
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": "{}",
"menuPost": "",
"menuPre": "",
"mermaid": {
"force": false
},
"mermaidInitialize": "{ \"securityLevel\": \"loose\" }",
"mermaidZoom": true,
"openapi": {
"errorlevel": ""
},
"oppenapi": {
"force": false
},
"ordersectionsby": "weight",
"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 = ''
# 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
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 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 = ''
+++
Marrrkdown Rules
Let’s face it: Writ'n rrrambl'n fer th' web be tiresome. WYSIWYG editors help alleviate this task, but they generally result 'n horr'ble code, or worse yet, ugly web planks.
Marrrkdown be a better way t' write HTML, without all th' complexities an' ugliness that usually accompanies it.
Some o' th' key benefits be:
- Marrrkdown be simple t' learn, wit' minimal extra characters so it’s also quicker t' write rrrambl'n.
- Less chance o' errors when writ'n 'n Marrrkdown.
- Produces valid HTML output.
- Keeps th' rrrambl'n an' th' visual display separate, so ye cannot mess up th' look o' yer ship.
- Write 'n any text editor or Marrrkdown applicat'n ye like.
- Marrrkdown be a joy t' use!
John Gruber, th' author o' Marrrkdown, puts it like this:
Th' overrid'n design goal fer Markdown’s formatt'n rules be t' make it as read'ble as poss'ble. Th' idea be that a Markdown-formatted document should be publish'ble as-is, as plain text, without look'n like it’s been marked up wit' tags or formatt'n instruct'ns. While Markdown’s rules has been influenced by several exist'n text-to-HTML filters, th' single biggest source o' inspirat'n fer Markdown’s rules be th' format o' plain text email.
John Gruber
Smarrrt Arrrse
Bookmark this plank fer easy future reference!
Standard an' Extensions
If not otherwise noted, th' shown examples adhere t' th' CommonMark standard. In addit'n th' theme supports th' follow'n extensions that can be activated 'n yer hugo.toml
or be built into th' theme:
Paragraphs
In Marrrkdown yer rrrambl'n usually spans th' whole avail'ble document width. This be called a block. Blocks be always separated by whitespace t' their adjacent blocks 'n th' result'n document.
Any text not start'n wit' a special sign be written as normal, plain text paragraph block an' must be separated t' its adjacent blocks by empty lines.
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.
Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
Result
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.
Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
Head'ns
A bloody idea be t' structure yer rrrambl'n us'n head'ns an' subhead'ns. HTML-head'ns from h1
through h6
be constructed wit' a #
fer each level.
In Hugo ye usually don’t use h1
as this be generated by yer theme an' ye should only have one such element 'n a document.
# h1 Head'n
## h2 Head'n
### h3 Head'n
#### h4 Head'n
##### h5 Head'n
###### h6 Head'n
Result
h1 Head'n
h2 Head'n
h3 Head'n
h4 Head'n
h5 Head'n
h6 Head'n
Horizontal Rules
T' further structure yer rrrambl'n ye can add horizontal rules. They create a “thematic break” between paragraph blocks. In Marrrkdown, ye can create it wit' three consecutive dashes ---
.
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.
---
Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
Result
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus.
Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
Blockquotes
Quotat'ns
For quot'n blocks o' rrrambl'n from another source within yer document add >
before any text ye want t' quote.
Blockquotes can also be nested.
> Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue, aliquam non hendrerit ac, commodo vel nisi.
>
> > Sed adipisc'n elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis 'n dolor tincidunt mollis ac eu diam.
>
> Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus.
Result
Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue, aliquam non hendrerit ac, commodo vel nisi.
Sed adipisc'n elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis 'n dolor tincidunt mollis ac eu diam.
Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus.
GitHub Alerts
GFM Since Cap'n Hugo 0.132.0 GitHub alerts be also supported. Please note, that color'n an' ay'cons o' severities may defer between GitHub an' this theme.
If ye be 'n need o' more advanced opt'ns t' style yer alerts, like ay'cons, use th' notice shortcode.
> [!CAUTION]
> Advises about risks or negative outcomes o' certain act'ns.
> [!IMPORTANT]
> Key informat'n users need t' know t' achieve their goal.
> [!INFO]
> Informat'n that users <ins>_might_</ins> find interest'n.
> [!NOTE]
> Useful informat'n that users should know, even when skimm'n rrrambl'n.
> [!TIP]
> Helpful advice fer do'n th'ns better or more easily.
> [!WARNING]
> Urgent info that needs immediate user attent'n t' avoid problems.
Result
Caut'n
Advises about risks or negative outcomes o' certain act'ns.
Important
Key informat'n users need t' know t' achieve their goal.
Ahoi
Informat'n that users might find interest'n.
Avast
Useful informat'n that users should know, even when skimm'n rrrambl'n.
Smarrrt Arrrse
Helpful advice fer do'n th'ns better or more easily.
Arrr
Urgent info that needs immediate user attent'n t' avoid problems.
Obsidian Callouts
Obsidian Since Cap'n Hugo 0.134.0 Obsidian callouts be also supported. Which enables configur'ble title text an' expand/collapse.
If ye be 'n need o' more advanced opt'ns t' style yer alerts, like ay'cons, use th' notice shortcode.
> [!tip] Callouts can have custom titles
> Like this one.
> [!tip] Title-only callout
> [!note]- Be callouts fold'ble?
> Yes! In a fold'ble callout, th' contents be hidden when th' callout be collapsed
> [!note]+ Be callouts fold'ble?
> Yes! In a fold'ble callout, th' contents be hidden when th' callout be collapsed
Result
Callouts can have custom titles
Text Markers
Bold
Ye can show importance o' a snippet o' text wit' a heavier font-weight by enclos'n it wit' two asterisks **
.
I am rendered wit' **bold text**
Result
I am rendered wit' bold text
Italics
Ye can emphasize a snippet o' text wit' italics by enclos'n it wit' underscores _
.
I am rendered wit' _italicized text_
Result
I am rendered wit' italicized text
Marked Text
Ye can mark text 'n th' predefined accent color o' yer stylesheet.
Cap'n Hugo Since Cap'n Hugo 0.126.0, ye can activate this through th' Cap'n Hugo Extra Extension 'n yer hugo.toml
==Parts== o' this text ==are marked!==
HTML Ye can also use it by configur'n Hugo fer usage o' HTML.
<mark>Parts</mark> o' this text <mark>be marked!</mark>
Result
Parts o' this text be marked!
Inserted Text
Ye can mark text addit'ns t' exist'n text.
Cap'n Hugo Since Cap'n Hugo 0.126.0, ye can activate this through th' Cap'n Hugo Extra Extension 'n yer hugo.toml
HTML Ye can also use it by configur'n Hugo fer usage o' HTML.
Th' <ins>hot, new</ins> stuff
Deleted Text
GFM Ye can do strikethroughs by enclos'n text wit' two tildes ~~
. See Hugo’s documentat'n remarks if ye want t' use this together wit' th' subscript rules.
~~Strike through~~ this text
Special Typesett'n
Text Substitut'n
Pants Ye can combine multiple punctuat'n characters t' single typographic entities. This will only be applied t' text outside o' code blocks or inline code.
Do'ble quotes `"` an' single quotes `'` o' enclosed text be replaced by **"do'ble curly quotes"** an' **'single curly quotes'**.
Do'ble dashes `--` an' triple dashes `---` be replaced by en-dash **--** an' em-dash **---** entities.
Do'ble arrows point'n left `<<` or right `>>` be replaced by arrow **<<** an' **>>** entities.
Three consecutive dots `...` be replaced by an ellipsis **...** entity.
Result
Do'ble quotes "
an' single quotes '
o' enclosed text be replaced by “do'ble curly quotes” an' ‘single curly quotes’.
Do'ble dashes --
an' triple dashes ---
be replaced by en-dash – an' em-dash — entities.
Do'ble arrows point'n left <<
or right >>
be replaced by arrow « an' » entities.
Three consecutive dots ...
be replaced by an ellipsis … entity.
Subscript an' Superscript
Ye can also use subscript an' superscript text. For more complex stuff, ye can use th' math
shortcode.
Cap'n Hugo Since Cap'n Hugo 0.126.0, ye can activate this through th' Cap'n Hugo Extra Extension 'n yer hugo.toml
How many liters H~2~O fit into 1dm^3^?
HTML Ye can also use it by configur'n Hugo fer usage o' HTML.
How many liters H<sub>2</sub>O fit into 1dm<sup>3</sup>?
Result
How many liters H2O fit into 1dm3?
Keyboard Shortcuts
HTML Ye can use th' <kbd>
element t' style keyboard shortcuts.
Press <kbd>STRG</kbd> <kbd>ALT</kbd> <kbd>DEL</kbd> t' end yer shift early.
Result
Press STRG ALT DEL t' end yer shift early.
Lists
Unordered
Ye can write a list o' items 'n which th' order o' th' items does not explicitly matter.
It be poss'ble t' nest lists by indent'n an item fer th' next sublevel.
Ye may use any o' -
, *
or +
t' denote bullets fer each list item but should not switch between those symbols inside one whole list.
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
- Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Faucibus porta lacus fringilla vel
Result
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
- Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Faucibus porta lacus fringilla vel
Ordered
Ye can create a list o' items 'n which th' order o' items does explicitly matter.
It be poss'ble t' nest lists by indent'n an item fer th' next sublevel.
Marrrkdown will automatically number each o' yer items consecutively. This means, th' order number ye be provid'n be irrelevant.
1. Lorem ipsum dolor sit amet
3. Consectetur adipisc'n elit
1. Integer molestie lorem at massa
7. Facilisis 'n pretium nisl aliquet
99. Nulla volutpat aliquam velit
1. Faucibus porta lacus fringilla vel
1. Aenean sit amet erat nunc
17. Eget porttitor lorem
Result
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Integer molestie lorem at massa
- Facilisis 'n pretium nisl aliquet
- Nulla volutpat aliquam velit
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
Tasks
GFM Ye can add task lists result'n 'n checked or unchecked non-click'ble items
- [x] Basic Test
- [ ] More Tests
- [x] View
- [x] Hear
- [ ] Smell
Definit'ns
PHP Definit'n lists be made o' terms an' definit'ns o' these terms, much like 'n a dictionary.
A definit'n list 'n Marrrkdown Extra be made o' a single-line term followed by a colon an' th' definit'n fer that term. Ye can also associate more than one term t' a definit'n.
If ye add empty lines around th' definit'n terms, additional vertical space will be generated. Also multiple paragraphs be poss'ble
Apple
: Pomaceous fruit o' plants o' th' genus Malus 'n th' family Rosaceae.
: An American computer company.
Orange
: Th' fruit o' an evergreen tree o' th' genus Citrus.
Ye can make juice out o' it.
: A telecommunicat'n company.
Ye can't make juice out o' it.
Result
- Apple
- Pomaceous fruit o' plants o' th' genus Malus 'n th' family Rosaceae.
- An American computer company.
- Orange
- Th' fruit o' an evergreen tree o' th' genus Citrus.
Ye can make juice out o' it.
- A telecommunicat'n company.
Ye can’t make juice out o' it.
Code
Inline Code
Inline snippets o' code can be wrapped wit' backticks `
.
In this example, `<div></div>` be marked as code.
Result
In this example, <div></div>
be marked as code.
Indented Code Block
A simple code block can be generated by indent'n several lines o' code by at least two spaces.
Be impressed by my advanced code:
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
Result
Be impressed by my advanced code:
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
Fenced Code Block
If ye want t' gain more control o' yer code block ye can enclose yer code by at least three backticks ```
a so called fence.
GFM Ye can also add a language specifier directly after th' open'n fence, ```js
, an' rules highlight'n will automatically be applied accord'n t' th' selected language 'n th' rendered HTML.
See Code Highlight'n fer additional documentat'n.
```js
{
name: "Claus",
surname: "Santa",
profession: "courier",
age: 666,
address: {
city: "North Pole",
postalCode: 1,
country: "Arctic"
},
friends: [ "Dasher", "Dancer", "Prancer", "Vixen", "Comet", "Cupid", "Donder", "Blitzen", "Rudolph" ]
};
```
Result
{
name: "Claus",
surname: "Santa",
profession: "courier",
age: 666,
address: {
city: "North Pole",
postalCode: 1,
country: "Arctic"
},
friends: [ "Dasher", "Dancer", "Prancer", "Vixen", "Comet", "Cupid", "Donder", "Blitzen", "Rudolph" ]
};
Tables
GFM Ye can create tables by add'n pipes as dividers between each cell, an' by add'n a line o' dashes (also separated by bars) beneath th' header. Avast that th' pipes do not need t' be vertically aligned.
| Opt'n | Descript'n |
|--------|-------------|
| data | path t' data files t' supply th' data that will be passed into templates. |
| engine | engine t' be used fer process'n templates. Handlebars be th' default. |
| ext | extension t' be used fer dest files. |
Result
Opt'n |
Descript'n |
data |
path t' data files t' supply th' data that will be passed into templates. |
engine |
engine t' be used fer process'n templates. Handlebars be th' default. |
ext |
extension t' be used fer dest files. |
Aligned Columns
Add'n a colon on th' left and/or right side o' th' dashes below any head'n will align th' text fer that column accordingly.
| Opt'n | Number | Descript'n |
|-------:|:------:|:------------|
| data | 1 | path t' data files t' supply th' data that will be passed into templates. |
| engine | 2 | engine t' be used fer process'n templates. Handlebars be th' default. |
| ext | 3 | extension t' be used fer dest files. |
Result
Opt'n |
Number |
Descript'n |
data |
1 |
path t' data files t' supply th' data that will be passed into templates. |
engine |
2 |
engine t' be used fer process'n templates. Handlebars be th' default. |
ext |
3 |
extension t' be used fer dest files. |
Links
Autolink
GFM Absolute URLs will automatically be converted into a link.
This be a link t' https://example.com.
Basic Link
Ye can explicitly define links 'n case ye want t' use non-absolute URLs or want t' give different text.
[Assemble](http://assemble.io)
For even further informat'n, ye can add an additional text, displayed 'n a tooltip on hover'n over th' link.
[Upstage](https://github.com/upstage/ "Visit Upstage!")
Link References
Links can be simplyfied fer recurr'n reuse by us'n a reference ID t' later define th' URL locat'n. This simplyfies writ'n if ye want t' use a link more than once 'n a document.
[Example][somelinkID]
[somelinkID]: https://example.com "Go t' example domain"
PHP Footnotes work mostly like reference-style links. A footnote be made o' two th'ns, a marker 'n th' text that will become a superscript number an' a footnote definit'n that will be placed 'n a list o' footnotes.
Usually th' list o' footnotes will be shown at th' end o' yer document. If we use a footnote 'n a notice box it will instead be listed at th' end o' its box.
Footnotes can contain block elements, which means that ye can put multiple paragraphs, lists, blockquotes an' so on 'n a footnote. It works th' same as fer list items, just indent th' follow'n paragraphs by four spaces 'n th' footnote definit'n.
That's some text wit' a footnote[^1]
[^1]: An' that's th' footnote.
That's some more text wit' a footnote.[^someid]
[^someid]:
Anyth'n o' interest goes here.
Blue light glows blue.
Result
That’s some text wit' a footnote
That’s some more text wit' a footnote.
Images
Basic Images
Images have a similar rules t' links but include a preced'n exclamat'n mark.
![Spock](https://octodex.github.com/images/spocktocat.png)
Like links, images can also be given a tooltip.
![Picard](https://octodex.github.com/images/jean-luc-picat.jpg "Jean Luc Picard")
Image References
Images can also be linked by reference ID t' later define th' URL locat'n. This simplyfies writ'n if ye want t' use an image more than once 'n a document.
![La Forge][laforge]
[laforge]: https://octodex.github.com/images/trekkie.jpg "Geordi La Forge"
Image Effects
Relearrrn This theme allows additional non-standard formatt'n by sett'n query parameter at th' end o' th' image URL. See th' image effects docs fer a detailed example an' how t' configure it.
Resiz'n
Add query parameter width
and/or height
t' th' link image t' resize th' image. Values be CSS values (default be auto
).
![Minion](https://octodex.github.com/images/minion.png?width=20vw)
![Minion](https://octodex.github.com/images/minion.png?height=50px)
![Minion](https://octodex.github.com/images/minion.png?height=50px&width=40vw)
CSS Classes
Add a query parameter classes
t' th' link image t' add CSS classes. Add some o' th' predefined values or even define yer own 'n yer CSS.
Shadow
![Spidertocat](https://octodex.github.com/images/spidertocat.png?classes=shadow)
Border
![DrOctocat](https://octodex.github.com/images/droctocat.png?classes=border)
Left
![Supertocat](https://octodex.github.com/images/okal-eltocat.jpg?classes=left)
Right
![Riddlocat](https://octodex.github.com/images/riddlocat.jpg?classes=right)
Inline
![Spidertocat](https://octodex.github.com/images/spidertocat.png?classes=inline)
![DrOctocat](https://octodex.github.com/images/droctocat.png?classes=inline)
![Supertocat](https://octodex.github.com/images/okal-eltocat.jpg?classes=inline)
![Riddlocat](https://octodex.github.com/images/riddlocat.jpg?classes=inline)
Combinat'n
![X-tocat](https://octodex.github.com/images/xtocat.jpg?classes=shadow,border,left)
Lightbox
Add th' query parameter lightbox=false
t' th' image link t' dis'ble th' lightbox.
![Homercat](https://octodex.github.com/images/homercat.png?lightbox=false)
Avast
If ye want t' wrap an image 'n a link an' lightbox=true
be yer default sett'n, ye have t' explicitly dis'ble th' lightbox t' avoid it t' hijack'n yer link like:
[![Homercat](https://octodex.github.com/images/homercat.png?lightbox=false)](https://octodex.github.com/#homercat)