<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Experiments with Hugo on D'Arcy Norman, PhD</title><link>https://darcynorman.net/series/experiments-with-hugo/</link><description>Recent content in Experiments with Hugo on D'Arcy Norman, PhD</description><generator>Hugo</generator><language>en-us</language><managingEditor>dnorman@me.com (D'Arcy Norman)</managingEditor><webMaster>dnorman@me.com (D'Arcy Norman)</webMaster><lastBuildDate>Sun, 29 Mar 2026 19:45:00 +0000</lastBuildDate><atom:link href="https://darcynorman.net/series/experiments-with-hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>How I built the Typeset custom theme for this website</title><link>https://darcynorman.net/2026/03/29/how-i-built-the-typeset-custom-theme-for-this-website/</link><pubDate>Sun, 29 Mar 2026 19:45:00 +0000</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2026/03/29/how-i-built-the-typeset-custom-theme-for-this-website/</guid><description>&lt;p&gt;I&amp;rsquo;ve been running this site on &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; for several years now, and for most of that time I used other people&amp;rsquo;s themes and tweaked things around the edges. A few months ago, I decided to build my own theme from scratch with Claude Code. The theme is called &lt;strong&gt;Typeset&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="why-build-a-custom-theme"&gt;Why build a custom theme?&lt;/h2&gt;
&lt;p&gt;The short answer: I got tired of fighting someone else&amp;rsquo;s decisions. Every borrowed theme comes with assumptions about what a blog is and what it should look like. Eventually those assumptions start getting in the way.&lt;/p&gt;</description></item><item><title>Building a standalone RSS-to-Mastodon bridge</title><link>https://darcynorman.net/2025/10/12/building-a-standalone-rss-to-mastodon-bridge/</link><pubDate>Sun, 12 Oct 2025 10:21:52 -0600</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2025/10/12/building-a-standalone-rss-to-mastodon-bridge/</guid><description>&lt;p&gt;I&amp;rsquo;ve been working to minimize hosting requirements and to reduce external dependencies for my website. I now have simple, lightweight, self-hosted search and commenting functionality. The only external dependency remaining was the way new posts were cross-published to Mastodon.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d been using the &lt;a href="https://mastofeed.org"&gt;excellent Mastofeed service&lt;/a&gt;. Mastofeed works great! If you&amp;rsquo;re looking for a hosted (free!) solution, definitely check it out. You authorize it to post items to a Mastodon account, and it automatically toots whenever you publish something on a website by checking the RSS feed for new items. Easy peasy. But it&amp;rsquo;s an external dependency - it could disappear, or change, or start inserting ads or something, or who knows?&lt;/p&gt;</description></item><item><title>Building my own custom standalone comments app</title><link>https://darcynorman.net/2025/10/08/building-my-own-custom-standalone-comments-app/</link><pubDate>Wed, 08 Oct 2025 14:23:14 -0600</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2025/10/08/building-my-own-custom-standalone-comments-app/</guid><description>&lt;p&gt;Surely, one day, eventually, I will write a blog post that isn&amp;rsquo;t &lt;a href="https://darcynorman.net/tags/vibecoding/"&gt;about vibecoding some bauble into existence&lt;/a&gt; and actually get back to something deeper. I think learning how vibecoding (and coaxing some form of LLM to do stuff in general) is an important thing to understand, not just read about. I&amp;rsquo;m absolutely not an AI Evangelist, but this work has changed my perception of LLMs and agentic tools as they (rapidly, so rapidly) increase in capacity. This is not that day.&lt;/p&gt;</description></item><item><title>Building a custom SQLite search engine for my Hugo site</title><link>https://darcynorman.net/2025/10/05/building-a-custom-sqlite-search-engine-for-my-hugo-site/</link><pubDate>Sun, 05 Oct 2025 12:56:36 -0600</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2025/10/05/building-a-custom-sqlite-search-engine-for-my-hugo-site/</guid><description>&lt;div class="callout" role="note" style="padding: 1em 1em; border-radius: 1em; border: 2px solid #333333; margin-top: 1em; margin-bottom: 1em;"&gt;
	&lt;h3 style="display: block; font-size: 1em;"&gt;&lt;span aria-hidden="true"&gt;🐶&lt;/span&gt; Cogdog Shoutout&lt;/h3&gt;
	&lt;div class="callout-inner" style="margin-left: 0.5em; padding: 1.5em 0.75em 1.5em 0.6em;"&gt;
 &lt;p&gt;Following &lt;a href="https://cogdogblog.com/2006/02/presentation-as-conversation/#:~:text=Levine%E2%80%99s%20Law:%20START%20WITH%20THE%20DEMO!"&gt;Levine&amp;rsquo;s Law&lt;/a&gt;: Start with the demo!&lt;/p&gt;
&lt;p&gt;This post talks about how the new custom search engine for my website was built (&lt;a href="https://darcynorman.net/2025/09/29/building-a-new-search-engine-for-my-hugo-site/"&gt;original announcement from almost a &lt;em&gt;week&lt;/em&gt; ago&lt;/a&gt;). The search tool is at &lt;a href="https://darcynorman.net/search"&gt;https://darcynorman.net/search&lt;/a&gt; and the &lt;a href="https://github.com/dlnorman/hugo-lightweight-search"&gt;source code is available on Github&lt;/a&gt; if you want to check it out before/while/after you read this…&lt;/p&gt;</description></item><item><title>developing a custom hugo theme with claude</title><link>https://darcynorman.net/notes/2025/2025-03-18-developing-a-custom-hugo-theme-with-claude/</link><pubDate>Tue, 18 Mar 2025 16:09:22 +0000</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/notes/2025/2025-03-18-developing-a-custom-hugo-theme-with-claude/</guid><description>&lt;p&gt;I&amp;rsquo;ve been using a customized theme based on the great &lt;a href="https://themes.gohugo.io/themes/beautifulhugo/"&gt;Beautiful Hugo&lt;/a&gt; theme for Hugo for a few years now. It&amp;rsquo;s worked well, and I&amp;rsquo;d made a lot of adjustments to make it do what I wanted. But it never felt like &amp;ldquo;mine&amp;rdquo; and I&amp;rsquo;d always meant to take the time to build my own. So, Which was likely never going to happen, so a week and a half ago I thought I&amp;rsquo;d try building one with Claude:&lt;/p&gt;</description></item><item><title>Publishing an OPML Blogroll With Hugo</title><link>https://darcynorman.net/2024/04/01/publishing-an-opml-blogroll-with-hugo/</link><pubDate>Mon, 01 Apr 2024 19:02:32 -0600</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2024/04/01/publishing-an-opml-blogroll-with-hugo/</guid><description>&lt;p&gt;&lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; is the static site generating content management system that I use to publish this website. It works really well, and has some deep functionality that I&amp;rsquo;m not even touching. For instance, it can parse data files while generating the site - including JSON and XML - and can use the content of those files to display information on web pages.&lt;/p&gt;
&lt;p&gt;I was going to follow &lt;a href="https://nikdoof.com/posts/2022/automating-a-blogroll-in-hugo/"&gt;some&lt;/a&gt; &lt;a href="https://jlelse.blog/dev/auto-blogroll-hugo"&gt;recipes&lt;/a&gt; that I found online, but they involved converting the OPML file into JSON to be read by Hugo. I didn&amp;rsquo;t want to do that if possible. So, time to roll my own solution using built-in functionality in Hugo…&lt;/p&gt;</description></item><item><title>Self Hosted Searching in Hugo</title><link>https://darcynorman.net/2020/06/09/self-hosted-searching-in-hugo/</link><pubDate>Tue, 09 Jun 2020 16:38:14 -0600</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2020/06/09/self-hosted-searching-in-hugo/</guid><description>&lt;p&gt;I&amp;rsquo;ve been using DuckDuckGo&amp;rsquo;s site-specific search as a way to make this site searchable, after moving from WordPress to Hugo. Since static websites don&amp;rsquo;t have a database, searching is more difficult so I&amp;rsquo;d let that go and had just used an embedded search form that fired off a DuckDuckGo query.&lt;/p&gt;
&lt;p&gt;Which worked. Mostly. But it also got results from other subdomains at *.darcynorman.net, and didn&amp;rsquo;t sort them too well. So it was not as useful as the &lt;a href="https://wordpress.org/plugins/relevanssi/"&gt;WordPress Relevanssi search plugin&lt;/a&gt; had been.&lt;/p&gt;</description></item><item><title>Hugo Screencast Demo</title><link>https://darcynorman.net/2020/01/18/hugo-screencast-demo/</link><pubDate>Sat, 18 Jan 2020 13:49:20 -0700</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2020/01/18/hugo-screencast-demo/</guid><description>&lt;p&gt;Some people&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; have asked me how &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; works for publishing &lt;a href="https://darcynorman.net"&gt;my site&lt;/a&gt;. It&amp;rsquo;s working great for my needs, and although it still needs some command-line work, it&amp;rsquo;s simple enough to learn it.&lt;/p&gt;</description></item><item><title>Combining Section Feeds and Filtering the Homepage in Hugo</title><link>https://darcynorman.net/2020/01/10/combining-section-feeds-and-filtering-the-homepage-in-hugo/</link><pubDate>Fri, 10 Jan 2020 09:42:22 -0700</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2020/01/10/combining-section-feeds-and-filtering-the-homepage-in-hugo/</guid><description>&lt;p&gt;I&amp;rsquo;ve been setting up my website, and had things working pretty much exactly how I want them. But, I&amp;rsquo;d been struggling with how to properly separate content on the website while combining content in the main site feed. The main reason is to be able to have things like &lt;a href="https://darcynorman.net/reflections"&gt;&lt;code&gt;/reflections&lt;/code&gt;&lt;/a&gt; to separate week-in-review reflection posts without overwhelming the homepage with weekly posts that would make all other content that I post on less than a weekly cadence be lost in the noise.&lt;/p&gt;</description></item><item><title>On moving my blog to Hugo</title><link>https://darcynorman.net/2019/11/22/on-moving-my-blog-to-hugo/</link><pubDate>Fri, 22 Nov 2019 12:01:38 -0700</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2019/11/22/on-moving-my-blog-to-hugo/</guid><description>&lt;p&gt;After finally deciding to throw caution to the wind and move my webstuff back into a static format, this website finally landed on &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt;. I did an initial migration from WordPress to &lt;a href="http://jekyllrb.com"&gt;Jekyll&lt;/a&gt;, which looked really promising but took waaaaay too long to generate the 2,800+ posts for this site (taking almost 45 minutes?). Hugo runs as a native application, and runs MUCH faster. Generating the entire site currently takes less than 5 seconds, then uploading it to the server via rsync takes only a little longer.&lt;/p&gt;</description></item><item><title>Moving my blog to Hugo</title><link>https://darcynorman.net/2019/11/21/moving-my-blog-to-hugo/</link><pubDate>Thu, 21 Nov 2019 20:32:38 -0700</pubDate><author>dnorman@me.com (D'Arcy Norman)</author><guid>https://darcynorman.net/2019/11/21/moving-my-blog-to-hugo/</guid><description>&lt;p&gt;After many, many, many years running my blog on WordPress, I finally got tired of fussing around with convincing it to do what I want it to do, and trying to get it to perform well enough to not have to wait 20 seconds for page loads. I&amp;rsquo;m also wanting to shift away from hoarding all of my content online.&lt;/p&gt;
&lt;p&gt;I had been experimenting with Jekyll, but it was so unbelievably slow to generate the static HTML for this site that I had to give up on it. I&amp;rsquo;m now running on &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt;. It&amp;rsquo;s a native binary application that runs on my laptop, so generation is really fast. It took less than 4 seconds to generate the full website for all 2,818 posts for this blog!&lt;/p&gt;</description></item></channel></rss>