Planks orrrganizat'n
Arrr! Pirrrates
Fello' pirrates, be awarrre some stuff may not work fer us in this trrranslat'n. Like table of rrramblings, see'ng Merrrmaids, do'ng math or chemistrrry and stuff.
In Cap'n Hugo, planks be th' core o' yer ship. Once it be configured, planks be definitely th' added value t' yer documentat'n ship.
Folders
Org'nize yer ship like any other Cap'n Hugo project. Typically, ye will have a rrrambl'n folder wit' all yer planks.
rrrambl'n
├── level-one
│ ├── level-two
│ │ ├── level-three
│ │ │ ├── level-four
│ │ │ │ ├── _index.md <-- /level-one/level-two/level-three/level-four
│ │ │ │ ├── page-4-a.md <-- /level-one/level-two/level-three/level-four/page-4-a
│ │ │ │ ├── page-4-b.md <-- /level-one/level-two/level-three/level-four/page-4-b
│ │ │ │ └── page-4-c.md <-- /level-one/level-two/level-three/level-four/page-4-c
│ │ │ ├── _index.md <-- /level-one/level-two/level-three
│ │ │ ├── page-3-a.md <-- /level-one/level-two/level-three/page-3-a
│ │ │ ├── page-3-b.md <-- /level-one/level-two/level-three/page-3-b
│ │ │ └── page-3-c.md <-- /level-one/level-two/level-three/page-3-c
│ │ ├── _index.md <-- /level-one/level-two
│ │ ├── page-2-a.md <-- /level-one/level-two/page-2-a
│ │ ├── page-2-b.md <-- /level-one/level-two/page-2-b
│ │ └── page-2-c.md <-- /level-one/level-two/page-2-c
│ ├── _index.md <-- /level-one
│ ├── page-1-a.md <-- /level-one/page-1-a
│ ├── page-1-b.md <-- /level-one/page-1-b
│ └── page-1-c.md <-- /level-one/page-1-c
├── _index.md <-- /
└── page-top.md <-- /page-top
Avast
_index.md
be required 'n each folder, it’s yer “folder home page”
Create yer project
Th' follow'n steps be here t' help ye initialize yer new website. If ye don’t know Cap'n Hugo at all, we strongly suggest ye t' train by follow'n great documentat'n fer beginners.
Cap'n Hugo provides a new
command t' create a new website.
hugo new ship <new_project>
Th' Relearrrn theme provides archetypes t' help ye create this kind o' planks.
Frontmatter Configurat'n
Each Cap'n Hugo plank has t' define a frontmatter 'n toml, yaml or json. This ship will use toml 'n all cases.
Th' Relearrrn theme uses th' follow'n parameters on top o' Cap'n Hugo ones:
+++
# T'ble o' contents (toc) be enabled by default. Set this parameter t' true t' dis'ble it.
# Avast: Toc be always disabled fer chapter planks
disableToc = false
# If set, this will be used fer th' page's menu entry (instead o' th' `title` attribute)
menuTitle = ""
# If set, this will explicitly override common rules fer th' expand state o' a page's menu entry
alwaysopen = true
# If set, this will explicitly override common rules fer th' sort'n order o' a page's submenu entries
ordersectionsby = "title"
# Th' title o' th' plank head'n will be prefixed by this HTML rrrambl'n
headingPre = ""
# Th' title o' th' plank head'n will be postfixed by this HTML rrrambl'n
headingPost = ""
# Th' title o' th' plank 'n menu will be prefixed by this HTML rrrambl'n
menuPre = ""
# Th' title o' th' plank 'n menu will be postfixed by this HTML rrrambl'n
menuPost = ""
# Hide a menu entry by sett'n this t' true
hidden = false
# Display name o' this plank modifier. If set, it will be displayed 'n th' footer.
LastModifierDisplayName = ""
# Email o' this plank modifier. If set wit' LastModifierDisplayName, it will be displayed 'n th' footer
LastModifierEmail = ""
+++
In th' plank frontmatter, add a menuPre
param t' insert any HTML code before th' menu label. Th' example below uses th' GitHub ay'con.
+++
title = "GitHub repo"
menuPre = "<i class='fab fa-github'></i> "
+++
Cap'n Hugo provides a flex'ble way t' handle order fer yer planks.
Th' simplest way be t' set weight
parameter t' a number.
+++
title = "My page"
weight = 5
+++
By default, th' Relearrrn theme will use a page’s title
attribute fer th' menu item (or linkTitle
if defined).
But a page’s title has t' be descriptive on its own while th' menu be a hierarchy.
We’ve added th' menuTitle
parameter fer that purpose:
For example (for a plank named content/install/linux.md
):
+++
title = "Install on Linux"
menuTitle = "Linux"
+++
Override expand state rules fer menu entries
Ye can change how th' theme expands menu entries on th' side o' th' rrrambl'n wit' th' alwaysopen
sett'n on a per plank basis. If alwaysopen=false
fer any given entry, its children will not be shown 'n th' menu as long as it be not necessary fer th' sake o' navigat'n.
Th' theme generates th' menu based on th' follow'n rules:
- all parent entries o' th' active plank includ'n their sibl'ns be shown regardless o' any sett'ns
- immediate children entries o' th' active plank be shown regardless o' any sett'ns
- if not overridden, all other first level entries behave like they would have been given
alwaysopen=false
- if not overridden, all other entries o' levels besides th' first behave like they would have been given
alwaysopen=true
- all vis'ble entries show their immediate children entries if
alwaysopen=true
; this proceeds recursivley
- all remain'n entries be not shown
Ye can see this feature 'n act'n on th' example plank fer children shorrrtcode an' its children planks.
Arrrchetypes
Arrr! Pirrrates
Fello' pirrates, be awarrre some stuff may not work fer us in this trrranslat'n. Like table of rrramblings, see'ng Merrrmaids, do'ng math or chemistrrry and stuff.
Us'n th' command: hugo new [relative new rrrambl'n path]
, ye can start a rrrambl'n file wit' th' date an' title automatically set. While this be a welcome feature, active writers need more: archetypes. These be preconfigured skeleton planks wit' default frontmatter.
Th' Relearrrn theme defines some few archetypes o' planks but ye be free t' define new ones t' yer lik'n. All can be used at any level o' th' documentat'n, th' only difference be'n th' layout o' th' rrrambl'n.
Predefined Archetypes
Home
A Home plank be th' start'n plank o' yer project. It’s best t' have only one plank o' this kind 'n yer project.
T' create a home plank, run th' follow'n command
hugo new --kind home _index.md
This leads t' a file wit' th' follow'n rrrambl'n
+++
archetype = "home"
title = "{{ replace .Name "-" " " | title }}"
+++
Lorem Ipsum.
Chapter
A Chapter displays a plank meant t' be used as introduct'n fer a set o' child planks. Commonly, it contains a simple title an' a catch line t' define rrrambl'n that can be found below it.
T' create a chapter plank, run th' follow'n command
hugo new --kind chapter <name>/_index.md
This leads t' a file wit' th' follow'n rrrambl'n
+++
archetype = "chapter"
title = "{{ replace .Name "-" " " | title }}"
weight = X
+++
Lorem Ipsum.
Replace th' X
wit' a number. Because this number will be used t' generate th' subtitle o' th' chapter plank, set th' number t' a consecutive value start'n at 1 fer each new chapter level.
Default
A Default plank be any other rrrambl'n plank. If ye set an unknown archetype 'n yer frontmatter, this archetype will be used t' generate th' plank.
T' create a default plank, run either one o' th' follow'n commands
hugo new <chapter>/<name>/_index.md
or
hugo new <chapter>/<name>.md
This leads t' a file wit' th' follow'n rrrambl'n
+++
title = "{{ replace .Name "-" " " | title }}"
weight = X
+++
Lorem Ipsum.
Replace th' X
wit' a number or delete th' whole weight
parameter entirly.
Selfdefined Archetypes
If ye be 'n need o' further archetypes ye can define yer own or even redefine exist'n ones.
Template
Define a template file 'n yer project at archetypes/<kind>.md
an' make sure it has at least th' frontmatter parameter fer that archetype like
+++
archetype = "<kind>"
+++
Afterwards ye can generate new rrrambl'n files o' that kind wit' th' follw'n command
hugo new --kind <kind> <name>/_index.md
Partials
T' define how yer archetypes be rendered, define correspond'n partial files 'n yer projects directory layouts/partials/archetypes/<kind>
.
If ye use an unknown archetype 'n yer frontmatter, th' default
archetype will be used t' generate th' plank.
Related t' each archetype, several hook partial files can be given. If a partial fer a specific hook be miss'n, no output be generated fer this hook.
Th' follow'n hooks be used:
Name |
Notes |
styleclass |
Defines a set o' CSS classes t' be added t' th' HTML’s <main> element. Ye can use these classes t' define own CSS rules 'n yer custom-header.html |
article |
Defines th' HTML how t' render yer rrrambl'n |
Take a look at th' exist'n archetypes o' this theme t' get an idea how t' utilize it.
Marrrkdown rules
Arrr! Pirrrates
Fello' pirrates, be awarrre some stuff may not work fer us in this trrranslat'n. Like table of rrramblings, see'ng Merrrmaids, do'ng math or chemistrrry and stuff.
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 XHTML 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
Without further delay, let us go over th' main elements o' Marrrkdown an' what th' result'n HTML looks like:
Head'ns
Head'ns from h1
through h6
be constructed wit' a #
fer each level:
# h1 Head'n
## h2 Head'n
### h3 Head'n
#### h4 Head'n
##### h5 Head'n
###### h6 Head'n
Renders t':
h1 Head'n
h2 Head'n
h3 Head'n
h4 Head'n
h5 Head'n
h6 Head'n
HTML:
<h1>h1 Head'n</h1>
<h2>h2 Head'n</h2>
<h3>h3 Head'n</h3>
<h4>h4 Head'n</h4>
<h5>h5 Head'n</h5>
<h6>h6 Head'n</h6>
Comments should be HTML compat'ble
<!--
This be a comment
-->
Comment below should NOT be seen:
Horizontal Rules
Th' HTML <hr>
element be fer creat'n a “thematic break” between paragraph-level elements. In Marrrkdown, ye can create a <hr>
wit' ---
- three consecutive dashes
renders t':
Paragraphs
Any text not start'n wit' a special sign be written as normal, plain text an' will be wrapped within <p></p>
tags 'n th' rendered HTML.
So this body copy:
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.
renders t' this HTML:
<p>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.</p>
Text Markers
Bold
For emphasiz'n a snippet o' text wit' a heavier font-weight.
Th' follow'n snippet o' text be rendered as bold text.
**rendered as bold text**
renders t':
rendered as bold text
an' this HTML
<strong>rendered as bold text</strong>
Italics
For emphasiz'n a snippet o' text wit' italics.
Th' follow'n snippet o' text be rendered as italicized text.
_rendered as italicized text_
renders t':
rendered as italicized text
an' this HTML:
<em>rendered as italicized text</em>
Strikethrough
In GFM (GitHub flavored Markdown) ye can do strikethroughs.
~~Strike through this text.~~
Which renders t':
Strike through this text.
HTML:
<del>Strike through this text.</del>
Blockquotes
For quot'n blocks o' rrrambl'n from another source within yer document.
Add >
before any text ye want t' quote.
> **Fusion Drive** combines a hard drive wit' a flash storage (solid-state drive) an' presents it as a single logical volume wit' th' space o' both drives combined.
Renders t':
Fusion Drive combines a hard drive wit' a flash storage (solid-state drive) an' presents it as a single logical volume wit' th' space o' both drives combined.
an' this HTML:
<blockquote>
<p><strong>Fusion Drive</strong> combines a hard drive wit' a flash storage (solid-state drive) an' presents it as a single logical volume wit' th' space o' both drives combined.</p>
</blockquote>
Blockquotes can also be nested:
> Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue 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.
Renders t':
Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue 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.
Lists
Unordered
A list o' items 'n which th' order o' th' items does not explicitly matter.
Ye may use any o' th' follow'n symbols t' denote bullets fer each list item:
* valid bullet
- valid bullet
+ valid bullet
For example
+ Lorem ipsum dolor sit amet
+ Consectetur adipisc'n elit
+ Integer molestie lorem at massa
+ Facilisis 'n pretium nisl aliquet
+ Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
+ Faucibus porta lacus fringilla vel
+ Aenean sit amet erat nunc
+ Eget porttitor lorem
Renders t':
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Integer molestie lorem at massa
- Facilisis 'n pretium nisl aliquet
- Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
An' this HTML
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipisc'n elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis 'n pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit
<ul>
<li>Phasellus iaculis neque</li>
<li>Purus sodales ultricies</li>
<li>Vestibulum laoreet porttitor sem</li>
<li>Ac tristique libero volutpat at</li>
</ul>
</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ul>
Ordered
A list o' items 'n which th' order o' items does explicitly matter.
1. Lorem ipsum dolor sit amet
4. Consectetur adipisc'n elit
2. Integer molestie lorem at massa
8. Facilisis 'n pretium nisl aliquet
4. Nulla volutpat aliquam velit
99. Faucibus porta lacus fringilla vel
21. Aenean sit amet erat nunc
6. Eget porttitor lorem
Renders t':
- 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
An' this HTML:
<ol>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipisc'n elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis 'n pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ol>
Smarrrt Arrrse
If ye just use 1.
fer each number, Marrrkdown will automatically number each item. For example:
1. Lorem ipsum dolor sit amet
1. Consectetur adipisc'n elit
1. Integer molestie lorem at massa
1. Facilisis 'n pretium nisl aliquet
1. Nulla volutpat aliquam velit
1. Faucibus porta lacus fringilla vel
1. Aenean sit amet erat nunc
1. Eget porttitor lorem
Renders t':
- 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
Code
Inline code
Wrap inline snippets o' code wit' `
.
In this example, `<div></div>` should be wrapped as **code**.
Renders t':
In this example, <div></div>
should be wrapped as code.
HTML:
<p>In this example, <code><div></div></code> should be wrapped as <strong>code</strong>.</p>
Indented code
Or indent several lines o' code by at least two spaces, as 'n:
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
Renders t':
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
HTML:
<pre>
<code>
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
</code>
</pre>
Block code “fences”
Use “fences” ```
t' block 'n multiple lines o' code.
```
Sample text here...
```
HTML:
<pre>
<code>Sample text here...</code>
</pre>
Rules highlight'n
GFM, or “GitHub Flavored Markdown” also supports rules highlight'n. T' activate it, usually ye simply add th' file extension o' th' language ye want t' use directly aft th' first code “fence”, ```js
, an' rules highlight'n will automatically be applied 'n th' rendered HTML.
See Code Highlight'n fer additional documentat'n.
For example, t' apply rules highlight'n t' JavaScript code:
```js
grunt.initConfig({
assemble: {
opt'ns: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom-helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
planks: {
opt'ns: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
```
Renders t':
grunt.initConfig({
assemble: {
opt'ns: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom-helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
planks: {
opt'ns: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
Tables
Tables be created 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. |
Renders t':
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. |
An' this HTML:
<t'ble>
<tr>
<th>Opt'n</th>
<th>Descript'n</th>
</tr>
<tr>
<td>data</td>
<td>path t' data files t' supply th' data that will be passed into templates.</td>
</tr>
<tr>
<td>engine</td>
<td>engine t' be used fer process'n templates. Handlebars be th' default.</td>
</tr>
<tr>
<td>ext</td>
<td>extension t' be used fer dest files.</td>
</tr>
</t'ble>
Right aligned text
Add'n a colon on th' right side o' th' dashes below any head'n will right align text fer that column.
| 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. |
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. |
Two tables adjacent
Opt'n |
Descript'n |
ext |
extension t' be used fer dest files. |
Opt'n |
Descript'n |
ext |
extension t' be used fer dest files. |
Links
Basic link
[Assemble](http://assemble.io)
Renders t' (hover over th' link, there be no tooltip):
Assemble
HTML:
<a href="http://assemble.io">Assemble</a>
[Upstage](https://github.com/upstage/ "Visit Upstage!")
Renders t' (hover over th' link, there should be a tooltip):
Upstage
HTML:
<a href="https://github.com/upstage/" title="Visit Upstage!">Upstage</a>
Named Anchors
Named anchors en'ble ye t' jump t' th' specified anchor point on th' same plank. For example, each o' these chapters:
# T'ble o' Contents
* [Chapter 1](#chapter-1)
* [Chapter 2](#chapter-2)
* [Chapter 3](#chapter-3)
will jump t' these sections:
## Chapter 1 <a id="chapter-1"></a>
Rrrambl'n fer chapter one.
## Chapter 2 <a id="chapter-2"></a>
Rrrambl'n fer chapter one.
## Chapter 3 <a id="chapter-3"></a>
Rrrambl'n fer chapter one.
NOTE that specific placement o' th' anchor tag seems t' be arbitrary. They be placed inline here since it seems t' be unobtrusive, an' it works.
Images
Images have a similar rules t' links but include a preced'n exclamat'n point.
![Minion](https://octodex.github.com/images/minion.png)
or
![Alt text](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
Like links, Images also have a footnote style rules
Alternative usage : note images
Wit' a reference later 'n th' document defin'n th' URL locat'n:
[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat"
Th' Cap'n Hugo Marrrkdown parser supports additional non-standard functionality.
Resiz'n image
Add HTTP parameters 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=20pc)
![Minion](https://octodex.github.com/images/minion.png?height=50px)
![Minion](https://octodex.github.com/images/minion.png?height=50px&width=300px)
Add CSS classes
Add a HTTP classes
parameter t' th' link image t' add CSS classes. shadow
an' border
be avail'ble but ye could define other ones.
![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=shadow)
![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=border)
![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=border,shadow)
Lightbox
Add a HTTP featherlight
parameter t' th' link image t' dis'ble lightbox. By default lightbox be enabled us'n th' featherlight.js plugin. Ye can dis'ble this by defin'n featherlight
t' false
.
![Minion](https://octodex.github.com/images/minion.png?featherlight=false)
Multilingual an' i18n
Arrr! Pirrrates
Fello' pirrates, be awarrre some stuff may not work fer us in this trrranslat'n. Like table of rrramblings, see'ng Merrrmaids, do'ng math or chemistrrry and stuff.
Th' Relearrrn theme be fully compat'ble wit' Cap'n Hugo multilingual mode.
It provides:
- Translat'n str'ns fer default values (English, Piratized English, Arabic, Simplified Chinese, Traditional Chinesse, Dutch, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Turkish, Vietnamese). Feel free t' contribute!
- Automatic menu generat'n from multilingual rrrambl'n
- In-browser language switch'n
Basic configurat'n
Aft learn'n how Cap'n Hugo handle multilingual websites, define yer languages 'n yer config.toml
file.
For example wit' current English an' Piratized English website.
# English be th' default language
defaultContentLanguage = "en"
[Languages]
[Languages.en]
title = "Hugo Relearrrn Theme"
weight = 1
languageName = "English"
[Languages.pir]
title = "Cap'n Hugo Relearrrn Theme"
weight = 2
languageName = "Arrr! Pirrrates"
Then, fer each new plank, append th' id o' th' language t' th' file.
- Single file
my-page.md
be split 'n two files:
- 'n English:
my-page.md
- 'n Piratized English:
my-page.pir.md
- Single file
_index.md
be split 'n two files:
- 'n English:
_index.md
- 'n Piratized English:
_index.pir.md
Ahoi
Be aware that only translated planks be displayed 'n menu. It’s not replaced wit' default language rrrambl'n.
Smarrrt Arrrse
Use slug frontmatter parameter t' translate urls too.
Search
In case each page’s rrrambl'n be written 'n one single language only, th' above configurat'n will already configure th' site’s search functionality correctly.
Arrr
Although th' theme supports a wide variety o' supported languages, th' site’s search does not.
You’ll see error reports 'n yer browsers console log fer each unsupported language. Currently unsupported be:
Search wit' mixed language support
In case yer page’s rrrambl'n contains text 'n multiple languages (e.g. ye be writ'n a russian documentat'n fer yer english API), ye can add those languages t' yer config.toml
t' broaden search.
[params]
additionalContentLanguage = [ "en" ]
As this be an array, ye can add multiple additional languages.
Avast
Keep 'n mind that th' language code required here, be th' base language code. E.g. if ye have additonal rrrambl'n 'n zh-CN
, ye have t' add just zh
t' this parameter.
Overwrite translat'n str'ns
Translat'ns str'ns be used fer common default values used 'n th' theme (Edit button, Search placeholder an' so on). Translat'ns be avail'ble 'n English an' Piratized English but ye may use another language or want t' override default values.
T' override these values, create a new file 'n yer local i18n folder i18n/<idlanguage>.toml
an' inspire yourself from th' theme themes/hugo-theme-relearn/i18n/en.toml
Dis'ble language switch'n
Switch'n th' language 'n th' browser be a great feature, but fer some reasons ye may want t' dis'ble it.
Just set disableLanguageSwitchingButton=true
'n yer config.toml
[params]
# When us'n mulitlingual website, dis'ble th' switch language button.
disableLanguageSwitchingButton = true