mirror of
https://github.com/McShelby/hugo-theme-relearn.git
synced 2025-02-15 16:23:32 +00:00
docs: use exampleSite structure in examples #1003
This commit is contained in:
parent
603c90f266
commit
2a6d621e79
8 changed files with 119 additions and 59 deletions
|
@ -18,14 +18,14 @@ Regardless of shipped or custom page design, you are using them in the same way.
|
||||||
- If you have an [archetype file](https://gohugo.io/content-management/archetypes/), you can just do
|
- If you have an [archetype file](https://gohugo.io/content-management/archetypes/), you can just do
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
hugo new --kind chapter chapter1/_index.md
|
hugo new --kind chapter log/_index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
- If you are creating your Markdown files manually, you can achieve the same by just setting `type='chapter'` in the front matter to make your page displayed with the `chapter` page design.
|
- If you are creating your Markdown files manually, you can achieve the same by just setting `type='chapter'` in the front matter to make your page displayed with the `chapter` page design.
|
||||||
|
|
||||||
````toml {title="_index.md"}
|
````toml {title="log/_index.md"}
|
||||||
+++
|
+++
|
||||||
title = "Chapter 1"
|
title = "Captain's Log"
|
||||||
type = "chapter"
|
type = "chapter"
|
||||||
+++
|
+++
|
||||||
````
|
````
|
||||||
|
@ -55,7 +55,7 @@ Commonly, it contains a title front matter and a short description in the conten
|
||||||
To create a chapter page, run the following command
|
To create a chapter page, run the following command
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
hugo new --kind chapter chapter1/_index.md
|
hugo new --kind chapter log/_index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
If a numerical `weight` front matter is set, it will be used to generate the subtitle of the chapter page. Set the number to a consecutive value starting at 1 for each new chapter on the same directory level.
|
If a numerical `weight` front matter is set, it will be used to generate the subtitle of the chapter page. Set the number to a consecutive value starting at 1 for each new chapter on the same directory level.
|
||||||
|
@ -69,13 +69,19 @@ A **Default** page is any other content page.
|
||||||
To create a default page, run either one of the following commands
|
To create a default page, run either one of the following commands
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
hugo new chapter1/page1/_index.md
|
hugo new log/first-day/_index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
hugo new chapter1/page1.md
|
hugo new log/second-day/index.md
|
||||||
|
````
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
````shell
|
||||||
|
hugo new log/third-day.md
|
||||||
````
|
````
|
||||||
|
|
||||||
![Default page](pages-default.png?width=60pc)
|
![Default page](pages-default.png?width=60pc)
|
||||||
|
|
|
@ -13,18 +13,19 @@ Organize your site like [any other Hugo project](https://gohugo.io/content/struc
|
||||||
|
|
||||||
````plaintext
|
````plaintext
|
||||||
content
|
content
|
||||||
├── first-chapter
|
├── log
|
||||||
│ ├── first-page
|
│ ├── first-day
|
||||||
| | |── _index.md
|
| | |── _index.md
|
||||||
| │ ├── first-sub-page
|
| │ ├── first-sub-page
|
||||||
| | | |── _index.md
|
| | | |── _index.md
|
||||||
| | | |── picture1.png
|
| | | |── picture1.png
|
||||||
| | | └── plain.txt
|
| | | └── plain.txt
|
||||||
│ ├── second-page
|
│ ├── second-day
|
||||||
| | |── index.md
|
| | |── index.md
|
||||||
| | |── picture1.png
|
| | |── picture1.png
|
||||||
| | └── picture2.png
|
| | └── picture2.png
|
||||||
│ └── third-page.md
|
│ ├── third-day.md
|
||||||
|
│ └── _index.md
|
||||||
└── _index.md
|
└── _index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ The theme ships with the following predefined buttons (from left to right in the
|
||||||
- {{% button style="transparent" icon="bars" %}}{{% /button %}} [**sidebar**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/sidebar.html): opens the sidebar flyout if in mobile layout
|
- {{% button style="transparent" icon="bars" %}}{{% /button %}} [**sidebar**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/sidebar.html): opens the sidebar flyout if in mobile layout
|
||||||
- {{% button style="transparent" icon="list-alt" %}}{{% /button %}} [**toc**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/toc.html): [opens the table of contents in an overlay](authoring/frontmatter/topbar#table-of-contents)
|
- {{% button style="transparent" icon="list-alt" %}}{{% /button %}} [**toc**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/toc.html): [opens the table of contents in an overlay](authoring/frontmatter/topbar#table-of-contents)
|
||||||
- {{% button style="transparent" icon="pen" %}}{{% /button %}} [**edit**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/edit.html): browses to the editable page if the `editURL` [parameter is set](authoring/frontmatter/topbar#edit-button)
|
- {{% button style="transparent" icon="pen" %}}{{% /button %}} [**edit**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/edit.html): browses to the editable page if the `editURL` [parameter is set](authoring/frontmatter/topbar#edit-button)
|
||||||
- {{% button style="transparent" icon="code" %}}{{% /button %}} **source**: [**source**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/markdown.html): browses to the chapter's source code if [markdown support](configuration/sitemanagement/outputformats#source-support) was activated
|
- {{% button style="transparent" icon="code" %}}{{% /button %}} [**source**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/markdown.html): browses to the chapter's source code if [markdown support](configuration/sitemanagement/outputformats#source-support) was activated
|
||||||
- {{% button style="transparent" icon="fa-fw fab fa-markdown" %}}{{% /button %}} [**markdown**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/markdown.html): browses to the chapter's markdown source if [markdown support](configuration/sitemanagement/outputformats#markdown-support) was activated
|
- {{% button style="transparent" icon="fa-fw fab fa-markdown" %}}{{% /button %}} [**markdown**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/markdown.html): browses to the chapter's markdown source if [markdown support](configuration/sitemanagement/outputformats#markdown-support) was activated
|
||||||
- {{% button style="transparent" icon="print" %}}{{% /button %}} [**print**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/print.html): browses to the chapter's printable page if [print support](configuration/sitemanagement/outputformats#print-support) was activated
|
- {{% button style="transparent" icon="print" %}}{{% /button %}} [**print**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/print.html): browses to the chapter's printable page if [print support](configuration/sitemanagement/outputformats#print-support) was activated
|
||||||
- {{% button style="transparent" icon="chevron-left" %}}{{% /button %}} [**prev**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/prev.html): browses to the [previous page](authoring/frontmatter/topbar#arrow-navigation) if there is one
|
- {{% button style="transparent" icon="chevron-left" %}}{{% /button %}} [**prev**](https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/partials/topbar/button/prev.html): browses to the [previous page](authoring/frontmatter/topbar#arrow-navigation) if there is one
|
||||||
|
|
|
@ -115,9 +115,9 @@ You may want to structure your entries in a hierarchical way but don't want to g
|
||||||
|
|
||||||
### For Page Menus
|
### For Page Menus
|
||||||
|
|
||||||
To stay with the [initial example](authoring/structure): Suppose you want `first-chapter/first-page` appear in the sidebar but don't want to generate a page for it. So the entry in the sidebar should not be clickable but should be expandable.
|
To stay with the [initial example](authoring/structure): Suppose you want `log/first-day` appear in the sidebar but don't want to generate a page for it. So the entry in the sidebar should not be clickable but should be expandable.
|
||||||
|
|
||||||
For this, open `content/first-chapter/first-page/_index.md` and add the following front matter
|
For this, open `content/log/first-day/_index.md` and add the following front matter
|
||||||
|
|
||||||
{{< multiconfig fm=true >}}
|
{{< multiconfig fm=true >}}
|
||||||
[_build]
|
[_build]
|
||||||
|
@ -224,9 +224,9 @@ sidebarmenus = [
|
||||||
|
|
||||||
## Redefining Sidebar Menus for Certain Pages
|
## Redefining Sidebar Menus for Certain Pages
|
||||||
|
|
||||||
Suppose you are building a site that contains a topmost `blog` and `documentation` section.
|
Suppose you are building a site that contains a topmost `log` and `ship` section.
|
||||||
|
|
||||||
When the user is on one of the blog pages he should only see a page menu containing all blog pages, while on a documentation page he should only see a page menu containing all doc pages.
|
When the user is on one of the log pages he should only see a page menu containing all log pages, while on one of the ship pages she should only see a page menu containing all sub pages of the ship section.
|
||||||
|
|
||||||
For both sections, the default `shortcuts` Hugo menu should be displayed as if [defaults menus](#defining-sidebar-menus) were used.
|
For both sections, the default `shortcuts` Hugo menu should be displayed as if [defaults menus](#defining-sidebar-menus) were used.
|
||||||
|
|
||||||
|
@ -234,76 +234,75 @@ Directory structure:
|
||||||
|
|
||||||
````plaintext
|
````plaintext
|
||||||
content
|
content
|
||||||
├── blog
|
├── log
|
||||||
│ ├── post-1.md
|
│ ├── first-day.md
|
||||||
│ ├── post-2.md
|
│ ├── second-day.md
|
||||||
│ ├── post-3.md
|
│ ├── third-day.md
|
||||||
│ └── _index.md
|
│ └── _index.md
|
||||||
├── docs
|
├── ship
|
||||||
│ ├── topic-1.md
|
│ ├── cargo.md
|
||||||
│ ├── topic-2.md
|
│ ├── midst.md
|
||||||
│ ├── topic-3.md
|
│ ├── upper.md
|
||||||
│ └── _index.md
|
│ └── _index.md
|
||||||
└── _index.md
|
└── _index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
{{% badge style="cyan" icon="gears" title=" " %}}Option{{% /badge %}} {{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} Using [Hugo's cascade feature](https://gohugo.io/content-management/front-matter/#cascade), we can redefine the menus once in `blog/_index.md` and `docs/_index.md` setting `sidebarmenus` so they will be used in all children pages.
|
{{% badge style="cyan" icon="gears" title=" " %}}Option{{% /badge %}} {{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} Using [Hugo's cascade feature](https://gohugo.io/content-management/front-matter/#cascade), we can redefine the menus once in `log/_index.md` and `ship/_index.md` setting `sidebarmenus` so they will be used in all children pages.
|
||||||
|
|
||||||
Setting the `sidebarmenus` Front Matter will overwrite all default menus. If you want to display the `shortcuts` Hugo menu as well like in this example, you have to declare it with the Front Matter as given in the [default options](#defining-sidebar-menus).
|
Setting the `sidebarmenus` Front Matter will overwrite all default menus. If you want to display the `shortcuts` Hugo menu as well like in this example, you have to declare it with the Front Matter as given in the [default options](#defining-sidebar-menus).
|
||||||
|
|
||||||
{{< multiconfig fm=true file="blog/_index.md">}}
|
{{< multiconfig fm=true file="log/_index.md">}}
|
||||||
title = 'Blog'
|
title = "Captain's Log"
|
||||||
[[cascade]]
|
[[cascade]]
|
||||||
[cascade.params]
|
[cascade.params]
|
||||||
sidebarmenus = [
|
sidebarmenus = [
|
||||||
{ type = 'page', identifier = 'blog', pageRef = '/blog' },
|
{ type = 'page', identifier = 'log', pageRef = '/log' },
|
||||||
{ type = 'menu', identifier = 'shortcuts' },
|
{ type = 'menu', identifier = 'shortcuts' },
|
||||||
]
|
]
|
||||||
{{< /multiconfig >}}
|
{{< /multiconfig >}}
|
||||||
|
|
||||||
{{< multiconfig fm=true file="docs/_index.md">}}
|
{{< multiconfig fm=true file="ship/_index.md">}}
|
||||||
title = 'Documentation'
|
title = 'The Ship'
|
||||||
[[cascade]]
|
[[cascade]]
|
||||||
[cascade.params]
|
[cascade.params]
|
||||||
sidebarmenus = [
|
sidebarmenus = [
|
||||||
{ type = 'page', identifier = 'docs', pageRef = '/docs' },
|
{ type = 'page', identifier = 'ship', pageRef = '/ship' },
|
||||||
{ type = 'menu', identifier = 'shortcuts' },
|
{ type = 'menu', identifier = 'shortcuts' },
|
||||||
]
|
]
|
||||||
{{< /multiconfig >}}
|
{{< /multiconfig >}}
|
||||||
|
|
||||||
## Displaying Arbitrary Links in a Page Menu
|
## Displaying Arbitrary Links in a Page Menu
|
||||||
|
|
||||||
You may have the need to add arbitrary links at some point in your menu that are initially not backed by a page. These are called crosslinks.
|
You may have the need to add arbitrary links at some point in your menu that should redirect to other pages in your site structure. These are called crosslinks.
|
||||||
|
|
||||||
Assume the following structure
|
Assume the following structure
|
||||||
|
|
||||||
````plaintext
|
````plaintext
|
||||||
content
|
content
|
||||||
├── reference
|
├── log
|
||||||
│ ├── ref-a.md
|
│ ├── first-day.md
|
||||||
│ ├── ref-b.md
|
│ ├── second-day.md
|
||||||
│ ├── ref-c.md
|
│ ├── third-day.md
|
||||||
│ └── _index.md
|
│ └── _index.md
|
||||||
├── topic-blue.md
|
├── burning-sail-incident.md
|
||||||
├── topic-red.md
|
├── kraken-incident.md
|
||||||
├── topic-yellow.md
|
|
||||||
└── _index.md
|
└── _index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
You now want to include `ref-b` as separate `topic-green` entry after `topic-blue` in your menu.
|
You now want to add a top level menu entry that points to `third-day` as separate `crows-nest-incident`.
|
||||||
|
|
||||||
For that create a new page with the following front matter
|
For that create a new page with the following front matter
|
||||||
|
|
||||||
{{< multiconfig fm=true file="content/topic-green.md" >}}
|
{{< multiconfig fm=true file="content/crows-nest-incident.md" >}}
|
||||||
title = 'Topic Green'
|
title = "The Crow's Nest Incident"
|
||||||
menuPageRef = '/reference/ref-b'
|
menuPageRef = '/log/third-day'
|
||||||
{{< /multiconfig >}}
|
{{< /multiconfig >}}
|
||||||
|
|
||||||
{{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} If you want to link to an external page instead, you can use `menuUrl` instead of `menuPageRef`.
|
{{% badge style="green" icon="fa-fw fab fa-markdown" title=" " %}}Front Matter{{% /badge %}} If you want to link to an external page instead, you can use `menuUrl` instead of `menuPageRef`.
|
||||||
|
|
||||||
Pages defining a crosslink are never part of the arrow navigation and are skipped instead.
|
Pages defining a crosslink are never part of the arrow navigation and are skipped instead.
|
||||||
|
|
||||||
So with the above example and alphabetical sorting of the menu entries, pressing {{% button style="transparent" icon="chevron-right" %}}{{% /button %}} on `topic-blue` will skip the newly added `topic-green` and instead will load `topic-red`.
|
So with the above example and alphabetical sorting of the menu entries, pressing {{% button style="transparent" icon="chevron-left" %}}{{% /button %}} on `kraken-incident` page will skip the newly added `crows-nest-incident` and instead will load `burning-sail-incident`.
|
||||||
|
|
||||||
Having sub pages below a page that has `menuUrl` or `menuPageRef` set in their front matter is undefined.
|
Having sub pages below a page that has `menuUrl` or `menuPageRef` set in their front matter is undefined.
|
||||||
|
|
||||||
|
|
|
@ -65,15 +65,17 @@ Here's how to make your site multilingual using [translations by file name](http
|
||||||
|
|
||||||
````plaintext
|
````plaintext
|
||||||
├── content
|
├── content
|
||||||
│ ├── first-chapter
|
│ ├── log
|
||||||
│ │ ├── first-page
|
│ │ ├── first-day
|
||||||
| | | ├── _index.en.md
|
| | | ├── _index.en.md
|
||||||
| | | └── _index.pir.md
|
| | | └── _index.pir.md
|
||||||
│ │ ├── second-page
|
│ │ ├── second-day
|
||||||
| | | ├── index.en.md
|
| | | ├── index.en.md
|
||||||
| | | └── index.pir.md
|
| | | └── index.pir.md
|
||||||
│ │ ├── third-page.en.md
|
│ │ ├── third-day.en.md
|
||||||
│ │ └── third-page.pir.md
|
│ │ ├── third-day.pir.md
|
||||||
|
│ │ ├── _index.en.md
|
||||||
|
│ │ └── _index.pir.md
|
||||||
│ ├── _index.en.md
|
│ ├── _index.en.md
|
||||||
│ └── _index.pir.md
|
│ └── _index.pir.md
|
||||||
├── themes
|
├── themes
|
||||||
|
@ -84,7 +86,58 @@ Here's how to make your site multilingual using [translations by file name](http
|
||||||
|
|
||||||
## Translation by Content Directory
|
## Translation by Content Directory
|
||||||
|
|
||||||
The theme also support [translations by content directory](https://gohugo.io/content-management/multilingual/#translation-by-content-directory) which can be configured in a similar way. This is not used in further examples of this documentation.
|
The theme also support [translations by content directory](https://gohugo.io/content-management/multilingual/#translation-by-content-directory) which can be configured in a similar way.
|
||||||
|
|
||||||
|
1. Set up languages in your `hugo.toml` file:
|
||||||
|
|
||||||
|
{{< multiconfig file=hugo >}}
|
||||||
|
defaultContentLanguage = 'en'
|
||||||
|
|
||||||
|
[languages]
|
||||||
|
[languages.en]
|
||||||
|
weight = 1
|
||||||
|
languageName = 'English'
|
||||||
|
languageCode = 'en'
|
||||||
|
contentDir = 'content/en'
|
||||||
|
title = 'My Website'
|
||||||
|
|
||||||
|
[languages.pir]
|
||||||
|
weight = 2
|
||||||
|
languageName = 'Pirrratish'
|
||||||
|
languageCode = 'art-x-pir'
|
||||||
|
languageDirection = 'rtl'
|
||||||
|
contentDir = 'content/pir'
|
||||||
|
title = 'Arrr, my Website'
|
||||||
|
{{< /multiconfig >}}
|
||||||
|
|
||||||
|
2. Duplicate your content files into separate directories named by their language code:
|
||||||
|
|
||||||
|
````plaintext
|
||||||
|
├── content
|
||||||
|
│ ├── en
|
||||||
|
| │ ├── log
|
||||||
|
| │ │ ├── first-day
|
||||||
|
| | | | └── _index.md
|
||||||
|
| │ │ ├── second-day
|
||||||
|
| | | | └── index.md
|
||||||
|
| │ │ ├── third-day.md
|
||||||
|
| │ │ └── _index.md
|
||||||
|
| │ └── _index.md
|
||||||
|
│ ├── pir
|
||||||
|
| │ ├── log
|
||||||
|
| │ │ ├── first-day
|
||||||
|
| | | | └── _index.md
|
||||||
|
| │ │ ├── second-day
|
||||||
|
| | | | └── index.md
|
||||||
|
| │ │ ├── third-day.md
|
||||||
|
| │ │ └── _index.md
|
||||||
|
| │ └── _index.md
|
||||||
|
| ├── themes
|
||||||
|
| │ └── hugo-theme-relearn
|
||||||
|
| │ └── ...
|
||||||
|
| └── hugo.toml
|
||||||
|
````
|
||||||
|
|
||||||
|
|
||||||
## Search Settings
|
## Search Settings
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,13 @@ If you've followed the [Getting Started](introduction/quickstart) guide, your di
|
||||||
|
|
||||||
````plaintext
|
````plaintext
|
||||||
├── content
|
├── content
|
||||||
│ ├── first-chapter
|
│ ├── log
|
||||||
│ │ ├── first-page
|
│ │ ├── first-day
|
||||||
| | | └── _index.md
|
| | | └── _index.md
|
||||||
│ │ ├── second-page
|
│ │ ├── second-day
|
||||||
| | | └── index.md
|
| | | └── index.md
|
||||||
│ │ └── third-page.md
|
│ │ ├── third-day.md
|
||||||
|
│ │ └── _index.md
|
||||||
│ └── _index.md
|
│ └── _index.md
|
||||||
├── themes
|
├── themes
|
||||||
│ └── hugo-theme-relearn
|
│ └── hugo-theme-relearn
|
||||||
|
|
|
@ -96,19 +96,19 @@ Chapters are top-level pages that contain other pages. They have a special layou
|
||||||
Make your first chapter page
|
Make your first chapter page
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
hugo new --kind chapter first-chapter/_index.md
|
hugo new --kind chapter log/_index.md
|
||||||
````
|
````
|
||||||
|
|
||||||
The new file `content/first-chapter/_index.md` has a `weight` number in the front matter. This sets the chapter's subtitle and its order in the menu.
|
The new file `content/log/_index.md` has a `weight` number in the front matter. By the themes default settings this sets the chapter's subtitle and its order in the menu.
|
||||||
|
|
||||||
### Your First Content Pages
|
### Your First Content Pages
|
||||||
|
|
||||||
Now make content pages inside the chapter. Here are three ways to do this
|
Now make content pages inside the chapter. Here are three ways to do this
|
||||||
|
|
||||||
````shell
|
````shell
|
||||||
hugo new first-chapter/first-page/_index.md
|
hugo new log/first-day/_index.md
|
||||||
hugo new first-chapter/second-page/index.md
|
hugo new log/second-day/index.md
|
||||||
hugo new first-chapter/third-page.md
|
hugo new log/third-day.md
|
||||||
````
|
````
|
||||||
|
|
||||||
Hugo treats these files differently based on their file names. Learn more in [Hugo's guide](https://gohugo.io/content-management/).
|
Hugo treats these files differently based on their file names. Learn more in [Hugo's guide](https://gohugo.io/content-management/).
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
7.3.2+e18b21ac7f2ad06dec4ee7febd63cd1af7971584
|
7.3.2+603c90f266c54338ff40368daffaa2241805e3b6
|
Loading…
Add table
Reference in a new issue