<?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>Meta on projectProjects</title>
    <link>https://projectprojects.ca/tags/meta/</link>
    <description>Recent content in Meta on projectProjects</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-CA</language>
    <copyright>projectProjects (CC BY-NC-SA 4.0)</copyright>
    <lastBuildDate>Sat, 21 Mar 2026 11:58:42 -0700</lastBuildDate>
    <atom:link href="https://projectprojects.ca/tags/meta/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>projectHugo</title>
      <link>https://projectprojects.ca/blog/projecthugo/</link>
      <pubDate>Sat, 21 Mar 2026 11:58:42 -0700</pubDate>
      <guid>https://projectprojects.ca/blog/projecthugo/</guid>
      <description>
         Porting over the prototype hand coded projectProjects site to use a minimal Hugo SSG setup 
      </description>
      <content:encoded><![CDATA[<h3 id="prelude">Prelude</h3>
<p>I have a strong dislike for how JavaScript (JS) is used on the modern web, which is largely to invade privacy, serve ads, and track users. I <em>personally</em> block 3rd party scripts by default (<a href="https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium-mode"
  
    target="_blank"
    rel="noopener noreferrer"
  
  >
  learn more about uBlock Origin Medium Mode
</a>
). Unfortunately, many websites today are bloated beyond belief, and rely on client side JS for purposes better suited to static HTML. Like serving blog content for example. Otherwise I would just block JS entirely, and enable it only for webapps that require it. This modern implementation of JS opens up a whole world of security and tracking issues on the modern web that need not exist.</p>
<p>So I knew I wanted to build projectProjects using plain HTML and CSS, <strong>without JS</strong>. I started out building projectProjects from scratch in VSCodium using plain HTML and CSS as a learning experience. I&rsquo;ve done a few basic webdev video courses, built some small hobby sites before, but never really dove into responsive web design or a proper public facing project.</p>
<p>This approach was great to ensure I understood exactly how everything went together on the site; but, came with its own downsides. Namely, that it was immediately apparent that my desired workflow of writing a post in Markdown (including images) and getting that into HTML on the page in my desired format would become tedious to continue to do manually for every post.</p>
<h3 id="planning">Planning</h3>
<p>From prior research, I knew what I needed to improve my workflow was called a <em>Static Site Generator</em> (SSG). When I looked into the FOSS options at the start of this saga I got a little overwhelmed by the variety available, and the fact that most platforms seemed to use some form of minified JS. I was worried I wouldn&rsquo;t be able to understand the output at the end of it, and didn&rsquo;t want to invest time to learn a theming format from scratch, so opted to manually code the site initially.</p>
<p>Upon revisiting now, I realize some of the SSG options are quite capable of only generating plain HTML and CSS <em>depending on the theme and setup</em>. <a href="https://gohugo.io"
  
    target="_blank"
    rel="noopener noreferrer"
  
  >
  Hugo
</a>
 is one such candidate. Enter <a href="https://clente.github.io/hugo-bearcub/"
  
    target="_blank"
    rel="noopener noreferrer"
  
  >
  hugo-bearcub
</a>
 theme. I still find the task of building a Hugo theme from scratch to be a bit much for me. But I had seen the <a href="https://bearblog.dev"
  
    target="_blank"
    rel="noopener noreferrer"
  
  >
  bearblog
</a>
 (hosted) project before, and knew that would be a solid minimal base to build from. So when I found out there was a Hugo theme inspired by bearblog, I decided to jump in and rebuild the site using Hugo.</p>
<h3 id="getting-setup-with-hugo">Getting Setup With Hugo</h3>
<p>Hugo was easy enough to setup. I&rsquo;m on LMDE7 on my laptop, so the native package was pretty out of date when I checked vs the github latest release. I opted to download the latest extended release from github and <code>sudo apt install</code> &rsquo;d that .deb file.</p>
<p>I knew I wanted to modify the theme for my own site, so I forked it to a gitlab repo of my own. After following the setup instructions for the theme, I set about doing the tweaks I wanted.</p>
<p>This mainly consisted of switching the theme to use variables for the colours instead of hard-coded as this is my preference for easy editing, tweaking the list layout, a few other layout tweaks, some RSS tweaks, and then implementing branding specific changes like my own colour scheme, manually loading the custom fonts I use, etc.</p>
<p>The hardest part by far for me was familiarizing myself with the Hugo directory structure. That is, where to put files to have them show up in the right spot after building (hint its probably static/), how to link images correctly in the posts (ended up doing page groups), etc.</p>
<p>Once I kind of found my footing it started to become more fluent to make the changes I wanted, refresh the server, and see them show up correctly. Hugo&rsquo;s template structure is starting to make more sense the more I play around with it so I can see why its so highly recommended.</p>
<h3 id="deploy">Deploy</h3>
<p>Everything seems smooth so far on the live server.</p>
<p>I create a new post using <code>hugo new content blog/postName/index.md</code> assuming the post will have images. I plop my pre-formatted images in the same folder then type my post in Markdown using <a href="https://ghostwriter.kde.org"
  
    target="_blank"
    rel="noopener noreferrer"
  
  >
  ghostwriter
</a>
. I attach the images as I go right from ghostwriter and they show up in the preview. They seem to be linked and rendering correctly on the live server; I suppose we&rsquo;ll know for sure once I go live.</p>
<p>I&rsquo;m just going to ftp the public folder like a caveman. I&rsquo;m aware there are fancier ways to deploy a Hugo site, but I&rsquo;m enjoying FileZilla right now.</p>
<p>If you&rsquo;re reading this, that means the projectHugo update is already live and you&rsquo;re viewing the new format. In case anyone wants to compare to how the site looked before but didn&rsquo;t get a chance to see it live, I snapped a quick <a href="https://web.archive.org/web/20260321185536/https://projectprojects.ca/"
  
    target="_blank"
    rel="noopener noreferrer"
  
  >
  archive
</a>
 of the site before I updated it to the new format.</p>
<h4 id="thanks-for-stopping-by">Thanks For Stopping By</h4>
]]></content:encoded>
    </item>
  </channel>
</rss>
