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
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'nFront 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'nFront 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 MatterMenu 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'nFront 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:Linuxtitle: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.
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.
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.
+++[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 1parent:Parenturl:https://example.com/1weight:1- name:A Menu Entry Title fer Child 2parent:Parenturl:https://example.com/2weight: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}]}}
Defin'n Sidebar Menus
Opt'nFront 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'
- 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.
Opt'nFront 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.
Opt'nFront 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'nFront 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.
more: opens th' overlay if screen space be limited
T'ble o' Contents
Opt'nFront 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}
Breadcrumbs
Opt'nFront Matter Set disableBreadcrumb=true t' hide th' breadcrumb 'n th' topbar.
Opt'nFront 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.
Opt'nFront Matter Ye can hide th' previous/next buttons by sett'n disableNextPrev=true. If th' buttons be hidden, also th' keyboard shortcuts be disabled.
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.
+++# 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# 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: falseimageEffects.border=true# Default: trueimageEffects.lazy=true# Default: trueimageEffects.lightbox=true# Default: falseimageEffects.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=''+++
Meta Information
Plank Title
Th' title will be used 'n th' head'n an' meta informat'n o' yer HTML.
Th' descript'n be used fer generat'n HTML meta informat'n, 'n th' children shortcode an' 'n social media meta informat'n.
If not set, th' set value o' yer site’s hugo.toml be used fer th' HTML meta informat'n an' social media meta informat'n. It appears empty fer th' children shortcode.
+++descript'n='Some lenghty example description'+++
---descript'n:Some lenghty example descript'n---
{"description":"Some lenghty example description"}
Social Media Images
Th' theme adds social media meta tags includ'n feature images fer th' Open Graph protocol an' Twitter Cards t' yer ship. These be configured as mentioned 'n th' linked Cap'n Hugo docs.
+++images=['images/hero.png']+++
---images:- images/hero.png---
{"images":["images/hero.png"]}
Hidden
Front Matter Ye can hide yer planks from th' menu by sett'n hidden=true.
Menu For Cap'n Hugo menus, ye have t' set params.hidden=true instead.
Front Matter In th' plank front matter, add a headingPre t' insert any HTML code before th' title head'n. Ye can also set headingPost t' insert HTML code after th' title head'n.
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:
HTML If th' usage o' HTML be allowed, th' theme supports styl'n fer further HTML elements.
Relearrrn Extension specific t' this 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.
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.0GitHub 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.0Obsidian 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
Like this one.
Title-only callout
Yes! In a fold'ble callout, th' contents be hidden when th' callout be collapsed
Yes! In a fold'ble callout, th' contents be hidden when th' callout be collapsed
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.
HTML Ye can also use it by configur'n Hugo fer usage o' HTML.
Th' <ins>hot, new</ins> stuff
Result
Th' hot, new 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
Result
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.
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 STRGALTDEL 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
Result
Basic Test
More Tests
View
Hear
Smell
Definit'ns
PHP Definit'n lists be made o' terms an' definit'ns o' these terms, much like 'n a dictionary.
A definit'n list 'n Marrrkdown Extra be made o' a single-line term followed by a colon an' th' definit'n fer that term. Ye can also associate more than one term t' a definit'n.
If ye add empty lines around th' definit'n terms, additional vertical space will be generated. Also multiple paragraphs be poss'ble
Apple
: Pomaceous fruit o' plants o' th' genus Malus 'n th' family Rosaceae.
: An American computer company.
Orange
: Th' fruit o' an evergreen tree o' th' genus Citrus.
Ye can make juice out o' it.
: A telecommunicat'n company.
Ye can't make juice out o' it.
Result
Apple
Pomaceous fruit o' plants o' th' genus Malus 'n th' family Rosaceae.
An American computer company.
Orange
Th' fruit o' an evergreen tree o' th' genus Citrus.
Ye can make juice out o' it.
A telecommunicat'n company.
Ye can’t make juice out o' it.
Code
Inline Code
Inline snippets o' code can be wrapped wit' backticks `.
In this example, `<div></div>` be marked as code.
Result
In this example, <div></div> be marked as code.
Indented Code Block
A simple code block can be generated by indent'n several lines o' code by at least two spaces.
Be impressed by my advanced code:
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
Result
Be impressed by my advanced code:
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
Fenced Code Block
If ye want t' gain more control o' yer code block ye can enclose yer code by at least three backticks ``` a so called fence.
GFM Ye can also add a language specifier directly after th' open'n fence, ```js, an' rules highlight'n will automatically be applied accord'n t' th' selected language 'n th' rendered HTML.
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.
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.
Images can also be linked by reference ID t' later define th' URL locat'n. This simplyfies writ'n if ye want t' use an image more than once 'n a document.
![La Forge][laforge]
[laforge]: https://octodex.github.com/images/trekkie.jpg "Geordi La Forge"
Result
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).
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:
Th' default image effects shipped wit' th' theme be
Name
Descript'n
border
Draws a light thin border around th' image
lazy
Lets th' image be lazy boarded
lightbox
Th' image will be click'ble t' show it enlarged
shadow
Draws a shadow around th' image t' make it appear hovered/glow'n
One way t' use them be t' add them as URL query parameter t' each individually linked image.
This can become cumbersome t' be done consistently fer th' whole ship. Instead, ye can configure th' defaults 'n yer hugo.toml as well as overrid'n these defaults 'n a page’s front matter.
Explicitly set URL query parameter will override th' defaults set fer a plank or yer ship.
Without any sett'ns 'n yer hugo.tomlimageEffects defaults t'