<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Hugo on LNA-DEV ~ Lukas Nagel</title>
    <link>https://lna-dev.net/en/tags/hugo/</link>
    <description>Recent content in Hugo on LNA-DEV ~ Lukas Nagel</description>
    <image>
      <title>LNA-DEV ~ Lukas Nagel</title>
      <url>https://lna-dev.net/assets/Ping%C3%BCino/Ping%C3%BCino.png</url>
      <link>https://lna-dev.net/assets/Ping%C3%BCino/Ping%C3%BCino.png</link>
    </image>
    <generator>Hugo -- 0.166.0</generator>
    <language>en-US</language>
    <managingEditor>me@lna-dev.net (Lukas Nagel)</managingEditor>
    <webMaster>me@lna-dev.net (Lukas Nagel)</webMaster>
    <copyright>🄯 various licenses</copyright>
    <lastBuildDate>Fri, 19 Aug 2022 15:59:48 +0200</lastBuildDate>
    <atom:link href="https://lna-dev.net/en/tags/hugo/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How to create and host a Blog with Hugo for free</title>
      <link>https://lna-dev.net/en/posts/tutorials/blogwithhugo/</link>
      <pubDate>Fri, 19 Aug 2022 15:59:48 +0200</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/tutorials/blogwithhugo/</guid>
      <description>In this blog post we will discuss how to build and deploy your own blog with Hugo.</description><content:encoded><![CDATA[<h2 id="introduction">Introduction</h2>
<p>In this post I will teach you how to set up a blog like this with hugo and GitHub-Pages.</p>
<h2 id="what-you-need">What you need</h2>
<ul>
<li>GitHub-Account</li>
<li>Markdown Knowledge</li>
<li>Basic understanding of Pipelines (This time GitHub-Actions)</li>
<li>Basic understanding of Git</li>
</ul>
<h2 id="repository">Repository</h2>
<p>All the actions below must be executed in a repository connected to GitHub.</p>
<h2 id="hugo">Hugo</h2>
<h3 id="install-hugo">Install Hugo</h3>
<h4 id="snap-linux">Snap (Linux)</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>snap install hugo --channel<span style="color:#f92672">=</span>extended
</span></span></code></pre></div><h4 id="chocolatey-windows">Chocolatey (Windows)</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-ps" data-lang="ps"><span style="display:flex;"><span><span style="color:#a6e22e">choco</span> <span style="color:#a6e22e">install</span> <span style="color:#a6e22e">hugo-extended</span> <span style="color:#a6e22e">-confirm</span>
</span></span></code></pre></div><h4 id="homebrew-mac--linux">Homebrew (Mac / Linux)</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>brew install hugo
</span></span></code></pre></div><p>If you need more information or installation options:
<a href="https://gohugo.io/getting-started/installing/">Hugo - Docs - Installation</a></p>
<h3 id="create-a-new-project">Create a new project</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>hugo new site &lt;name of site&gt; -f yml
</span></span></code></pre></div><h3 id="theme">Theme</h3>
<h4 id="install-a-theme">Install a theme</h4>
<p>In this tutorial we will use the <a href="https://github.com/adityatelange/hugo-PaperMod">PaperMod-Theme</a> for Hugo.</p>
<ol>
<li>Go to <a href="https://github.com/adityatelange/hugo-PaperMod">PaperMod-Theme</a> and download the repo</li>
<li>Create a folder themes/PaperMod in your hugo project</li>
<li>Paste the files in the themes/PaperMod folder in your hugo project</li>
</ol>
<h4 id="configure-the-theme">Configure the theme</h4>
<p>To configure the theme you must change the content of the config.yaml. Change it until it fits your needs. Further
documentation about specific parameters can be found on the
<a href="https://github.com/adityatelange/hugo-PaperMod">PaperMod-GitHub-Page</a>.</p>
<h5 id="example-yaml">Example YAML</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">baseURL</span>: <span style="color:#e6db74">&#34;https://examplesite.com/&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">title</span>: <span style="color:#ae81ff">ExampleSite</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">paginate</span>: <span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">theme</span>: <span style="color:#ae81ff">PaperMod</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">enableRobotsTXT</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">buildDrafts</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">buildFuture</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">buildExpired</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">googleAnalytics</span>: <span style="color:#ae81ff">UA-123-45</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">minify</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">disableXML</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">minifyOutput</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">params</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">env</span>: <span style="color:#ae81ff">production</span> <span style="color:#75715e"># to enable Google Analytics, opengraph, twitter-cards and schema.</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">title</span>: <span style="color:#ae81ff">ExampleSite</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">description</span>: <span style="color:#e6db74">&#34;ExampleSite description&#34;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">keywords</span>: [<span style="color:#ae81ff">Blog, Portfolio, PaperMod]</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">author</span>: <span style="color:#ae81ff">Me</span>
</span></span><span style="display:flex;"><span>  <span style="color:#75715e"># author: [&#34;Me&#34;, &#34;You&#34;] # multiple authors</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">images</span>: [<span style="color:#e6db74">&#34;&lt;link or path of image for opengraph, twitter-cards&gt;&#34;</span>]
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">DateFormat</span>: <span style="color:#e6db74">&#34;January 2, 2006&#34;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">defaultTheme</span>: <span style="color:#ae81ff">auto</span> <span style="color:#75715e"># dark, light</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">disableThemeToggle</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowReadingTime</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowShareButtons</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowPostNavLinks</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowBreadCrumbs</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowCodeCopyButtons</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowWordCount</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">ShowRssButtonInSectionTermList</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">UseHugoToc</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">disableSpecial1stPost</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">disableScrollToTop</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">comments</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">hidemeta</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">hideSummary</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">showtoc</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">tocopen</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">assets</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># disableHLJS: true # to disable highlight.js</span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># disableFingerprinting: true</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">favicon</span>: <span style="color:#e6db74">&#34;&lt;link / abs url&gt;&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">favicon16x16</span>: <span style="color:#e6db74">&#34;&lt;link / abs url&gt;&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">favicon32x32</span>: <span style="color:#e6db74">&#34;&lt;link / abs url&gt;&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">apple_touch_icon</span>: <span style="color:#e6db74">&#34;&lt;link / abs url&gt;&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">safari_pinned_tab</span>: <span style="color:#e6db74">&#34;&lt;link / abs url&gt;&#34;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">label</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">text</span>: <span style="color:#e6db74">&#34;Home&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">icon</span>: <span style="color:#ae81ff">/apple-touch-icon.png</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">iconHeight</span>: <span style="color:#ae81ff">35</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#75715e"># profile-mode</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">profileMode</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">enabled</span>: <span style="color:#66d9ef">false</span> <span style="color:#75715e"># needs to be explicitly set</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">title</span>: <span style="color:#ae81ff">ExampleSite</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">subtitle</span>: <span style="color:#e6db74">&#34;This is subtitle&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">imageUrl</span>: <span style="color:#e6db74">&#34;&lt;img location&gt;&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">imageWidth</span>: <span style="color:#ae81ff">120</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">imageHeight</span>: <span style="color:#ae81ff">120</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">imageTitle</span>: <span style="color:#ae81ff">my image</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">buttons</span>:
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Posts</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">url</span>: <span style="color:#ae81ff">posts</span>
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Tags</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">url</span>: <span style="color:#ae81ff">tags</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#75715e"># home-info mode</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">homeInfoParams</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">Title</span>: <span style="color:#e6db74">&#34;Hi there \U0001F44B&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">Content</span>: <span style="color:#ae81ff">Welcome to my blog</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">socialIcons</span>:
</span></span><span style="display:flex;"><span>    - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">twitter</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#e6db74">&#34;https://twitter.com/&#34;</span>
</span></span><span style="display:flex;"><span>    - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">stackoverflow</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#e6db74">&#34;https://stackoverflow.com&#34;</span>
</span></span><span style="display:flex;"><span>    - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">github</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#e6db74">&#34;https://github.com/&#34;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">analytics</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">google</span>:
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">SiteVerificationTag</span>: <span style="color:#e6db74">&#34;XYZabc&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">bing</span>:
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">SiteVerificationTag</span>: <span style="color:#e6db74">&#34;XYZabc&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">yandex</span>:
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">SiteVerificationTag</span>: <span style="color:#e6db74">&#34;XYZabc&#34;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">cover</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">hidden</span>: <span style="color:#66d9ef">true</span> <span style="color:#75715e"># hide everywhere but not in structured data</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">hiddenInList</span>: <span style="color:#66d9ef">true</span> <span style="color:#75715e"># hide on list pages and home</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">hiddenInSingle</span>: <span style="color:#66d9ef">true</span> <span style="color:#75715e"># hide on single page</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">editPost</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">URL</span>: <span style="color:#e6db74">&#34;https://github.com/&lt;path_to_repo&gt;/content&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">Text</span>: <span style="color:#e6db74">&#34;Suggest Changes&#34;</span> <span style="color:#75715e"># edit text</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">appendFilePath</span>: <span style="color:#66d9ef">true</span> <span style="color:#75715e"># to append file path to Edit link</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#75715e"># for search</span>
</span></span><span style="display:flex;"><span>  <span style="color:#75715e"># https://fusejs.io/api/options.html</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">fuseOpts</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">isCaseSensitive</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">shouldSort</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">location</span>: <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">distance</span>: <span style="color:#ae81ff">1000</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">threshold</span>: <span style="color:#ae81ff">0.4</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">minMatchCharLength</span>: <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">keys</span>: [<span style="color:#e6db74">&#34;title&#34;</span>, <span style="color:#e6db74">&#34;permalink&#34;</span>, <span style="color:#e6db74">&#34;summary&#34;</span>, <span style="color:#e6db74">&#34;content&#34;</span>]
</span></span><span style="display:flex;"><span><span style="color:#f92672">menu</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">main</span>:
</span></span><span style="display:flex;"><span>    - <span style="color:#f92672">identifier</span>: <span style="color:#ae81ff">categories</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">name</span>: <span style="color:#ae81ff">categories</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#ae81ff">/categories/</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">weight</span>: <span style="color:#ae81ff">10</span>
</span></span><span style="display:flex;"><span>    - <span style="color:#f92672">identifier</span>: <span style="color:#ae81ff">tags</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">name</span>: <span style="color:#ae81ff">tags</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#ae81ff">/tags/</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">weight</span>: <span style="color:#ae81ff">20</span>
</span></span><span style="display:flex;"><span>    - <span style="color:#f92672">identifier</span>: <span style="color:#ae81ff">example</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">name</span>: <span style="color:#ae81ff">example.org</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#ae81ff">https://example.org</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">weight</span>: <span style="color:#ae81ff">30</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">pygmentsUseClasses</span>: <span style="color:#66d9ef">true</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">markup</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">highlight</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">noClasses</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># anchorLineNos: true</span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># codeFences: true</span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># guessSyntax: true</span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># lineNos: true</span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># style: monokai</span>
</span></span></code></pre></div><h3 id="using-a-post-template">Using a post template</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-path" data-lang="path"><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">/archetypes/</span>
</span></span></code></pre></div><p>All files in the directory above can be used as templates for posts. The default.md file is the default file for
generating new posts. All other files must be specified while creating a post.</p>
<h3 id="create-a-post">Create a Post</h3>
<p>I would always use the hugo commands to generate the files because it copies the standard configuration in the new file.
I would generate the .md files always in the posts sub-folder (If you want to create a post 😉). Only files from this
folder will be shown as posts.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>hugo new &lt;filePath&gt;
</span></span></code></pre></div><h4 id="example">Example</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>hugo new posts/BlogWithHugo.md
</span></span></code></pre></div><h3 id="build-the-page">Build the page</h3>
<p>The hugo command builds the project into a website. The files created are stored in the /public/ folder.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>hugo
</span></span></code></pre></div><h3 id="debug-the-page">Debug the page</h3>
<p>To view the page in the browser run the command below. There will be a link displayed which references the local hosted
webpage.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>hugo serve
</span></span></code></pre></div><h2 id="build-and-deployment--pipeline">Build and Deployment / Pipeline</h2>
<h3 id="setup-github-pages">Setup GitHub-Pages</h3>
<ol>
<li>Go into the settings of your repo</li>
<li>Select the GitHubPages tab</li>
<li>Set the source to GitHubActions</li>
</ol>
<p><img alt="GitHubPages Settings" loading="lazy" src="https://lna-dev.net/BlogWithHugo/GitHubPages.png"></p>
<h3 id="add-pipeline-yaml">Add Pipeline YAML</h3>
<p>Create following file.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-path" data-lang="path"><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">.github/workflows/HugoBuildAndDeploy.yaml</span>
</span></span></code></pre></div><p>Insert the following code into the file and adjust it to your needs. I described what I was doing per comments.</p>
<p>In this pipeline we will checkout the repo build it and after that deploy it to GitHub-Pages.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">name</span>: <span style="color:#ae81ff">HugoBuildAndDeploy</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">on</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">workflow_dispatch</span>: <span style="color:#75715e"># To have the ability to run the workflow manually</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">push</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">branches</span>: [<span style="color:#ae81ff">main]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">env</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">NAME</span>: <span style="color:#ae81ff">LNA-DEV-Blog</span> <span style="color:#75715e">#TODO Change to your project name</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">jobs</span>:
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">HugoBuild</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">steps</span>:
</span></span><span style="display:flex;"><span>      <span style="color:#75715e"># Checkout the repository</span>
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/checkout@v3</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>      <span style="color:#75715e"># Install Hugo</span>
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">run</span>: <span style="color:#ae81ff">sudo snap install hugo</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>      <span style="color:#75715e"># Build the hugo repository</span>
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">run</span>: <span style="color:#ae81ff">hugo</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">working-directory</span>: <span style="color:#ae81ff">./${{ env.NAME }}/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>      <span style="color:#75715e"># Zip the Artifact for GitHubPages deployment</span>
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Archive artifact</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">shell</span>: <span style="color:#ae81ff">bash</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">if</span>: <span style="color:#ae81ff">runner.os != &#39;Windows&#39;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">run</span>: <span style="color:#ae81ff">tar -cvf ${{ runner.temp }}/artifact.tar -C ./${{ env.NAME }}/public .</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>      <span style="color:#75715e"># Create a build artifact</span>
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Upload a Build Artifact</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/upload-artifact@v3.1.0</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">with</span>:
</span></span><span style="display:flex;"><span>          <span style="color:#f92672">name</span>: <span style="color:#ae81ff">github-pages</span>
</span></span><span style="display:flex;"><span>          <span style="color:#f92672">path</span>: <span style="color:#ae81ff">${{ runner.temp }}/artifact.tar</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">DeployToGithubPages</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">needs</span>: <span style="color:#ae81ff">HugoBuild</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># Setup GitHubPages</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">permissions</span>:
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">pages</span>: <span style="color:#ae81ff">write</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">id-token</span>: <span style="color:#ae81ff">write</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">environment</span>:
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">name</span>: <span style="color:#ae81ff">github-pages</span>
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">url</span>: <span style="color:#ae81ff">${{ steps.deployment.outputs.page_url }}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e"># Deploy the artifact</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">runs-on</span>: <span style="color:#ae81ff">ubuntu-latest</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">steps</span>:
</span></span><span style="display:flex;"><span>      - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">Deploy to GitHub Pages</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">id</span>: <span style="color:#ae81ff">deployment</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">uses</span>: <span style="color:#ae81ff">actions/deploy-pages@v1</span>
</span></span></code></pre></div>]]></content:encoded>
    </item>
  </channel>
</rss>