hugo-theme-relearn/cont/pages/index.print.html

202 lines
18 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="generator" content="Hugo 0.113.0">
<meta name="generator" content="Relearn 5.16.2+tip">
<meta name="description" content="Documentation for Hugo Relearn Theme">
<meta name="author" content="Sören Weber">
<title>Pages organization :: Hugo Relearn Theme</title>
<link href="https://McShelby.github.io/hugo-theme-relearn/cont/pages/index.html" rel="alternate" hreflang="x-default">
<link href="https://McShelby.github.io/hugo-theme-relearn/cont/pages/index.html" rel="alternate" hreflang="en">
<link href="https://McShelby.github.io/hugo-theme-relearn/pir/cont/pages/index.html" rel="alternate" hreflang="pir">
<link href="https://McShelby.github.io/hugo-theme-relearn/cont/pages/index.html" rel="canonical" type="text/html" title="Pages organization :: Hugo Relearn Theme">
<link href="../../cont/pages/index.xml" rel="alternate" type="application/rss+xml" title="Pages organization :: Hugo Relearn Theme">
<link href="../../images/logo.svg?1686990244" rel="icon" type="image/svg+xml">
<!-- https://github.com/filamentgroup/loadCSS/blob/master/README.md#how-to-use -->
<link href="../../css/fontawesome-all.min.css?1686990246" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="../../css/fontawesome-all.min.css?1686990246" rel="stylesheet"></noscript>
<link href="../../css/nucleus.css?1686990246" rel="stylesheet">
<link href="../../css/auto-complete.css?1686990246" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="../../css/auto-complete.css?1686990246" rel="stylesheet"></noscript>
<link href="../../css/perfect-scrollbar.min.css?1686990246" rel="stylesheet">
<link href="../../css/fonts.css?1686990246" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="../../css/fonts.css?1686990246" rel="stylesheet"></noscript>
<link href="../../css/theme.css?1686990246" rel="stylesheet">
<link href="../../css/theme-auto.css?1686990246" rel="stylesheet" id="variant-style">
<link href="../../css/variant.css?1686990246" rel="stylesheet">
<link href="../../css/print.css?1686990246" rel="stylesheet" media="print">
<link href="../../css/format-print.css?1686990246" rel="stylesheet">
<link href="../../css/ie.css?1686990246" rel="stylesheet">
<script src="../../js/url.js?1686990246"></script>
<script src="../../js/variant.js?1686990246"></script>
<script>
// hack to let hugo tell us how to get to the root when using relativeURLs, it needs to be called *url= for it to do its magic:
// https://github.com/gohugoio/hugo/blob/145b3fcce35fbac25c7033c91c1b7ae6d1179da8/transform/urlreplacers/absurlreplacer.go#L72
window.index_js_url="../../index.search.js";
var root_url="../../";
var baseUri=root_url.replace(/\/$/, '');
// translations
window.T_Copy_to_clipboard = 'Copy to clipboard';
window.T_Copied_to_clipboard = 'Copied to clipboard!';
window.T_Copy_link_to_clipboard = 'Copy link to clipboard';
window.T_Link_copied_to_clipboard = 'Copied link to clipboard!';
window.T_No_results_found = 'No results found for \u0022{0}\u0022';
window.T_N_results_found = '{1} results found for \u0022{0}\u0022';
// some further base stuff
var baseUriFull='https:\/\/McShelby.github.io\/hugo-theme-relearn/';
window.variants && variants.init( [ 'auto', 'relearn-bright', 'relearn-light', 'relearn-dark', 'learn', 'neon', 'blue', 'green', 'red' ] );
</script>
<style>
#body img.bg-white {
background-color: white;
}
</style>
</head>
<body class="mobile-support print disableInlineCopyToClipboard" data-url="../../cont/pages/index.html">
<div id="body" class="default-animation">
<div id="sidebar-overlay"></div>
<div id="toc-overlay"></div>
<nav id="topbar" class="highlightable">
<div>
<div id="breadcrumbs">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" class="topbar-link" title='Menu (CTRL+ALT+n)'><i class="fas fa-bars fa-fw"></i></a>
</span>
<ol class="links" itemscope itemtype="http://schema.org/BreadcrumbList">
<li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="../../index.html"><span itemprop="name">Hugo Relearn Theme</span></a><meta itemprop="position" content="1"> &gt; </li>
<li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="../../cont/index.html"><span itemprop="name">Content</span></a><meta itemprop="position" content="2"> &gt; </li>
<li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><span itemprop="name">Pages organization</span><meta itemprop="position" content="3"></li>
</ol>
</div>
</div>
</nav>
<main id="body-inner" class="highlightable default" tabindex="-1">
<div class="flex-block-wrapper">
<article class="default">
<header class="headline">
</header>
<h1 id="pages-organization">Pages organization</h1>
<p>In <strong>Hugo</strong>, pages are the core of your site. Once it is configured, pages are definitely the added value to your documentation site.</p>
<h2 id="folders">Folders</h2>
<p>Organize your site like <a href="https://gohugo.io/content/organization/" target="_blank">any other Hugo project</a>. Typically, you will have a <em>content</em> folder with all your pages.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-plaintext" data-lang="plaintext"><span class="line"><span class="cl">content
</span></span><span class="line"><span class="cl">├── level-one
</span></span><span class="line"><span class="cl">│ ├── level-two
</span></span><span class="line"><span class="cl">│ │ ├── level-three
</span></span><span class="line"><span class="cl">│ │ │ ├── level-four
</span></span><span class="line"><span class="cl">│ │ │ │ ├── _index.md &lt;-- /level-one/level-two/level-three/level-four
</span></span><span class="line"><span class="cl">│ │ │ │ ├── page-4-a.md &lt;-- /level-one/level-two/level-three/level-four/page-4-a
</span></span><span class="line"><span class="cl">│ │ │ │ ├── page-4-b.md &lt;-- /level-one/level-two/level-three/level-four/page-4-b
</span></span><span class="line"><span class="cl">│ │ │ │ └── page-4-c.md &lt;-- /level-one/level-two/level-three/level-four/page-4-c
</span></span><span class="line"><span class="cl">│ │ │ ├── _index.md &lt;-- /level-one/level-two/level-three
</span></span><span class="line"><span class="cl">│ │ │ ├── page-3-a.md &lt;-- /level-one/level-two/level-three/page-3-a
</span></span><span class="line"><span class="cl">│ │ │ ├── page-3-b.md &lt;-- /level-one/level-two/level-three/page-3-b
</span></span><span class="line"><span class="cl">│ │ │ └── page-3-c.md &lt;-- /level-one/level-two/level-three/page-3-c
</span></span><span class="line"><span class="cl">│ │ ├── _index.md &lt;-- /level-one/level-two
</span></span><span class="line"><span class="cl">│ │ ├── page-2-a.md &lt;-- /level-one/level-two/page-2-a
</span></span><span class="line"><span class="cl">│ │ ├── page-2-b.md &lt;-- /level-one/level-two/page-2-b
</span></span><span class="line"><span class="cl">│ │ └── page-2-c.md &lt;-- /level-one/level-two/page-2-c
</span></span><span class="line"><span class="cl">│ ├── _index.md &lt;-- /level-one
</span></span><span class="line"><span class="cl">│ ├── page-1-a.md &lt;-- /level-one/page-1-a
</span></span><span class="line"><span class="cl">│ ├── page-1-b.md &lt;-- /level-one/page-1-b
</span></span><span class="line"><span class="cl">│ └── page-1-c.md &lt;-- /level-one/page-1-c
</span></span><span class="line"><span class="cl">├── _index.md &lt;-- /
</span></span><span class="line"><span class="cl">└── page-top.md &lt;-- /page-top
</span></span></code></pre></div>
<div class="box notices cstyle note">
<div class="box-label"><i class="fa-fw fas fa-exclamation-circle"></i> Note</div>
<div class="box-content">
<p><code>_index.md</code> is required in each folder, its your “folder home page”</p>
</div>
</div>
<h2 id="create-your-project">Create your project</h2>
<p>The following steps are here to help you initialize your new website. If you don&rsquo;t know Hugo at all, we strongly suggest you to train by following <a href="https://gohugo.io/overview/quickstart/" target="_blank">great documentation for beginners</a>.</p>
<p>Hugo provides a <code>new</code> command to create a new website.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">hugo new site &lt;new_project&gt;
</span></span></code></pre></div><p>The Relearn theme provides <a href="../../cont/archetypes/">archetypes</a> to help you create this kind of pages.</p>
<h2 id="frontmatter-configuration">Frontmatter Configuration</h2>
<p>Each Hugo page has to define a <a href="https://gohugo.io/content/front-matter/" target="_blank">frontmatter</a> in <em>toml</em>, <em>yaml</em> or <em>json</em>. This site will use <em>toml</em> in all cases.</p>
<p>The Relearn theme uses the following parameters on top of Hugo ones:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="err">+++</span>
</span></span><span class="line"><span class="cl"><span class="c"># Table of contents (toc) is enabled by default. Set this parameter to true to disable it.</span>
</span></span><span class="line"><span class="cl"><span class="c"># Note: Toc is always disabled for chapter pages</span>
</span></span><span class="line"><span class="cl"><span class="nx">disableToc</span> <span class="p">=</span> <span class="kc">false</span>
</span></span><span class="line"><span class="cl"><span class="c"># If set, this will be used for the page&#39;s menu entry (instead of the `title` attribute)</span>
</span></span><span class="line"><span class="cl"><span class="nx">menuTitle</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># If set, this will explicitly override common rules for the expand state of a page&#39;s menu entry</span>
</span></span><span class="line"><span class="cl"><span class="nx">alwaysopen</span> <span class="p">=</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl"><span class="c"># If set, this will explicitly override common rules for the sorting order of a page&#39;s submenu entries</span>
</span></span><span class="line"><span class="cl"><span class="nx">ordersectionsby</span> <span class="p">=</span> <span class="s2">&#34;title&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># The title of the page heading will be prefixed by this HTML content</span>
</span></span><span class="line"><span class="cl"><span class="nx">headingPre</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># The title of the page heading will be postfixed by this HTML content</span>
</span></span><span class="line"><span class="cl"><span class="nx">headingPost</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># The title of the page in menu will be prefixed by this HTML content</span>
</span></span><span class="line"><span class="cl"><span class="nx">menuPre</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># The title of the page in menu will be postfixed by this HTML content</span>
</span></span><span class="line"><span class="cl"><span class="nx">menuPost</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># Hide a menu entry by setting this to true</span>
</span></span><span class="line"><span class="cl"><span class="nx">hidden</span> <span class="p">=</span> <span class="kc">false</span>
</span></span><span class="line"><span class="cl"><span class="c"># Display name of this page modifier. If set, it will be displayed in the footer.</span>
</span></span><span class="line"><span class="cl"><span class="nx">LastModifierDisplayName</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c"># Email of this page modifier. If set with LastModifierDisplayName, it will be displayed in the footer</span>
</span></span><span class="line"><span class="cl"><span class="nx">LastModifierEmail</span> <span class="p">=</span> <span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="cl"><span class="err">+++</span>
</span></span></code></pre></div><h3 id="add-icon-to-a-menu-entry">Add icon to a menu entry</h3>
<p>In the page frontmatter, add a <code>menuPre</code> param to insert any HTML code before the menu label. The example below uses the GitHub icon.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="err">+++</span>
</span></span><span class="line"><span class="cl"><span class="nx">title</span> <span class="p">=</span> <span class="s2">&#34;GitHub repo&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">menuPre</span> <span class="p">=</span> <span class="s2">&#34;&lt;i class=&#39;fab fa-github&#39;&gt;&lt;/i&gt; &#34;</span>
</span></span><span class="line"><span class="cl"><span class="err">+++</span>
</span></span></code></pre></div><p>
<a href="#image-0293ad642b1692dd2689fb3ba8e5b055" class="lightbox-link">
<img src="../../cont/pages/frontmatter-icon.png?classes=shadow&amp;width=18.75rem" alt="Title with icon" class="shadow" style="height: auto; width: 18.75rem;" loading="lazy">
</a>
<a href="javascript:history.back();" class="lightbox" id="image-0293ad642b1692dd2689fb3ba8e5b055">
<img src="../../cont/pages/frontmatter-icon.png?classes=shadow&amp;width=18.75rem" alt="Title with icon" class="lightbox-image" loading="lazy">
</a></p>
<h3 id="ordering-sibling-menupage-entries">Ordering sibling menu/page entries</h3>
<p>Hugo provides a <a href="https://gohugo.io/content/ordering/" target="_blank">flexible way</a> to handle order for your pages.</p>
<p>The simplest way is to set <code>weight</code> parameter to a number.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="err">+++</span>
</span></span><span class="line"><span class="cl"><span class="nx">title</span> <span class="p">=</span> <span class="s2">&#34;My page&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">weight</span> <span class="p">=</span> <span class="mi">5</span>
</span></span><span class="line"><span class="cl"><span class="err">+++</span>
</span></span></code></pre></div><h3 id="using-a-custom-title-for-menu-entries">Using a custom title for menu entries</h3>
<p>By default, the Relearn theme will use a page&rsquo;s <code>title</code> attribute for the menu item (or <code>linkTitle</code> if defined).</p>
<p>But a page&rsquo;s title has to be descriptive on its own while the menu is a hierarchy.
We&rsquo;ve added the <code>menuTitle</code> parameter for that purpose:</p>
<p>For example (for a page named <code>content/install/linux.md</code>):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="err">+++</span>
</span></span><span class="line"><span class="cl"><span class="nx">title</span> <span class="p">=</span> <span class="s2">&#34;Install on Linux&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">menuTitle</span> <span class="p">=</span> <span class="s2">&#34;Linux&#34;</span>
</span></span><span class="line"><span class="cl"><span class="err">+++</span>
</span></span></code></pre></div><h3 id="override-expand-state-rules-for-menu-entries">Override expand state rules for menu entries</h3>
<p>You can change how the theme expands menu entries on the side of the content with the <code>alwaysopen</code> setting on a per page basis. If <code>alwaysopen=false</code> for any given entry, its children will not be shown in the menu as long as it is not necessary for the sake of navigation.</p>
<p>The theme generates the menu based on the following rules:</p>
<ul>
<li>all parent entries of the active page including their siblings are shown regardless of any settings</li>
<li>immediate children entries of the active page are shown regardless of any settings</li>
<li>if not overridden, all other first level entries behave like they would have been given <code>alwaysopen=false</code></li>
<li>if not overridden, all other entries of levels besides the first behave like they would have been given <code>alwaysopen=true</code></li>
<li>all visible entries show their immediate children entries if <code>alwaysopen=true</code>; this proceeds recursively</li>
<li>all remaining entries are not shown</li>
</ul>
<p>You can see this feature in action on the example page for <a href="../../shortcodes/children/">children shortcode</a> and its children pages.</p>
<footer class="footline">
</footer>
</article>
</div>
</main>
</div>
<script src="../../js/clipboard.min.js?1686990246" defer></script>
<script src="../../js/perfect-scrollbar.min.js?1686990246" defer></script>
<script src="../../js/theme.js?1686990246" defer></script>
</body>
</html>