<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>letsblaze</title><link>https://letsblaze.thomaslaurenson.com/</link><description>Recent content on letsblaze</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 07 Apr 2026 09:39:01 +1200</lastBuildDate><atom:link href="https://letsblaze.thomaslaurenson.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Tags and Taxonomy</title><link>https://letsblaze.thomaslaurenson.com/blog/tags-and-taxonomy/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/blog/tags-and-taxonomy/</guid><description>&lt;p&gt;letsblaze supports Hugo&amp;rsquo;s built-in taxonomy system. Tags are the primary taxonomy.&lt;/p&gt;
&lt;h2 id="adding-tags-to-a-post"&gt;Adding tags to a post&lt;/h2&gt;
&lt;p&gt;In front matter:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="font-weight:bold"&gt;title&lt;/span&gt;: &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;My Post&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="font-weight:bold"&gt;tags&lt;/span&gt;: [&lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;hugo&amp;#34;&lt;/span&gt;, &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;web&amp;#34;&lt;/span&gt;, &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;html&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="tag-pages"&gt;Tag pages&lt;/h2&gt;
&lt;p&gt;Every tag automatically gets a listing page at &lt;code&gt;/tags/TAG-NAME/&lt;/code&gt; showing all
posts with that tag, with pagination.&lt;/p&gt;
&lt;p&gt;The tags index at &lt;code&gt;/tags/&lt;/code&gt; lists all tags ordered by post count.&lt;/p&gt;
&lt;h2 id="rss-per-tag"&gt;RSS per tag&lt;/h2&gt;
&lt;p&gt;Hugo generates an RSS feed for each tag automatically:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/tags/hugo/index.xml&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This lets readers subscribe to specific topics rather than the full blog feed.&lt;/p&gt;</description></item><item><title>Working with Images</title><link>https://letsblaze.thomaslaurenson.com/blog/working-with-images/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/blog/working-with-images/</guid><description>&lt;p&gt;letsblaze handles images with a custom render hook that adds &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt; and
&lt;code&gt;&amp;lt;figcaption&amp;gt;&lt;/code&gt; support and automatic dimension detection for page-bundle images.&lt;/p&gt;
&lt;h2 id="page-bundles"&gt;Page bundles&lt;/h2&gt;
&lt;p&gt;The recommended way to use images is as page bundles — store the image alongside
the content file:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;content/
 blog/
 working-with-images/
 index.md ← this file
 hero.jpg ← image in the same directory&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a leaf bundle. Hugo can read the image dimensions at build time and emit
&lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; attributes automatically, preventing layout shift (CLS).&lt;/p&gt;</description></item><item><title>Code and Syntax Highlighting</title><link>https://letsblaze.thomaslaurenson.com/blog/code-and-syntax-highlighting/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/blog/code-and-syntax-highlighting/</guid><description>&lt;p&gt;letsblaze uses Hugo&amp;rsquo;s built-in Chroma syntax highlighter, configured to emit
inline styles rather than CSS classes. This means syntax highlighting works
with no external stylesheet — consistent with the theme&amp;rsquo;s no-external-resources
philosophy.&lt;/p&gt;
&lt;h2 id="inline-code"&gt;Inline code&lt;/h2&gt;
&lt;p&gt;Wrap short code references in backticks: &lt;code&gt;const x = 42&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="fenced-code-blocks"&gt;Fenced code blocks&lt;/h2&gt;
&lt;p&gt;Use triple backticks with a language identifier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff;font-weight:bold"&gt;def&lt;/span&gt; greet(name: &lt;span style="color:#fff;font-weight:bold"&gt;str&lt;/span&gt;) -&amp;gt; &lt;span style="color:#fff;font-weight:bold"&gt;str&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#fff;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#0ff;font-weight:bold"&gt;f&lt;/span&gt;&lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;Hello, &lt;/span&gt;&lt;span style="color:#0ff;font-weight:bold"&gt;{&lt;/span&gt;name&lt;span style="color:#0ff;font-weight:bold"&gt;}&lt;/span&gt;&lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff;font-weight:bold"&gt;print&lt;/span&gt;(greet(&lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;world&amp;#34;&lt;/span&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0f0;font-weight:bold"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="font-weight:bold"&gt;html&lt;/span&gt; &lt;span style="color:#007f7f"&gt;lang&lt;/span&gt;=&lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;en&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="font-weight:bold"&gt;head&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="font-weight:bold"&gt;meta&lt;/span&gt; &lt;span style="color:#007f7f"&gt;charset&lt;/span&gt;=&lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="font-weight:bold"&gt;title&lt;/span&gt;&amp;gt;Example&amp;lt;/&lt;span style="font-weight:bold"&gt;title&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;/&lt;span style="font-weight:bold"&gt;head&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="font-weight:bold"&gt;body&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="font-weight:bold"&gt;p&lt;/span&gt;&amp;gt;Hello, world.&amp;lt;/&lt;span style="font-weight:bold"&gt;p&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;/&lt;span style="font-weight:bold"&gt;body&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;/&lt;span style="font-weight:bold"&gt;html&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo new blog/my-post.md
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo server --buildDrafts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo --minify&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="syntax-style"&gt;Syntax style&lt;/h2&gt;
&lt;p&gt;letsblaze is opinionated: the default Chroma style is &lt;code&gt;monochrome&lt;/code&gt;. This works
in both light and dark mode without maintaining two colour palettes.&lt;/p&gt;</description></item><item><title>Writing Content</title><link>https://letsblaze.thomaslaurenson.com/blog/writing-content/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/blog/writing-content/</guid><description>&lt;p&gt;letsblaze renders standard Markdown with a few additions. This post covers
everything available when writing content.&lt;/p&gt;
&lt;h2 id="headings"&gt;Headings&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; is reserved for the page title, rendered automatically by the theme.
Use &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; through &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; for section headings within content.&lt;/p&gt;
&lt;h2 id="h2"&gt;H2&lt;/h2&gt;
&lt;h3 id="h3"&gt;H3&lt;/h3&gt;
&lt;h4 id="h4"&gt;H4&lt;/h4&gt;
&lt;h5 id="h5"&gt;H5&lt;/h5&gt;
&lt;h6 id="h6"&gt;H6&lt;/h6&gt;
&lt;h2 id="lists"&gt;Lists&lt;/h2&gt;
&lt;p&gt;Ordered and unordered lists render with clean browser defaults.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First item&lt;/li&gt;
&lt;li&gt;Second item&lt;/li&gt;
&lt;li&gt;Third item&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Unordered item&lt;/li&gt;
&lt;li&gt;Another item&lt;/li&gt;
&lt;li&gt;And another&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="blockquotes"&gt;Blockquotes&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The web is for everyone. Build accordingly.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://letsblaze.thomaslaurenson.com/docs/getting-started/configuration/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/docs/getting-started/configuration/</guid><description>&lt;p&gt;All letsblaze configuration lives in &lt;code&gt;hugo.toml&lt;/code&gt;. Below is a complete reference
for every supported parameter.&lt;/p&gt;
&lt;h2 id="top-level-settings"&gt;Top-level settings&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Recommended value&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;languageCode&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;en-US&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Use BCP 47 format with uppercase region subtag&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;enableEmoji&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Enables &lt;code&gt;:shortcode:&lt;/code&gt; emoji syntax in content&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;enableGitInfo&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Sets &lt;code&gt;lastmod&lt;/code&gt; in sitemap from git commit dates&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;disableHugoGeneratorInject&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;letsblaze keeps the Hugo generator tag intentionally&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="pagination"&gt;Pagination&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[pagination]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pagerSize = &lt;span style="color:#ff0;font-weight:bold"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="markup"&gt;Markup&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[markup.goldmark.renderer]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; unsafe = &lt;span style="color:#fff;font-weight:bold"&gt;true&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# required for shortcodes like &amp;lt;kbd&amp;gt;, &amp;lt;del&amp;gt;, &amp;lt;mark&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[markup.highlight]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; noClasses = &lt;span style="color:#fff;font-weight:bold"&gt;true&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# required — letsblaze has no external CSS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; style = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;monochrome&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="theme-params"&gt;Theme params&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[params]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; author = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; copyright = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# falls back to site title if not set&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; description = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;Site description&amp;#34;&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# used in meta tags and homepage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dateFormat = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;2006-01-02&amp;#34;&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# Go reference time format&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; homepagePostCount = &lt;span style="color:#ff0;font-weight:bold"&gt;5&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# recent posts shown on homepage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; showThemeCredit = &lt;span style="color:#fff;font-weight:bold"&gt;true&lt;/span&gt; &lt;span style="color:#007f7f"&gt;# set false to hide &amp;#34;Theme: letsblaze&amp;#34; in footer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#007f7f"&gt;# ogImage = &amp;#34;/og-image.png&amp;#34; # path to default OG image in static/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="menus"&gt;Menus&lt;/h2&gt;
&lt;p&gt;Navigation items are defined in &lt;code&gt;hugo.toml&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Features</title><link>https://letsblaze.thomaslaurenson.com/docs/reference/features/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/docs/reference/features/</guid><description>&lt;h2 id="no-javascript"&gt;No JavaScript&lt;/h2&gt;
&lt;p&gt;letsblaze ships zero client-side JavaScript. All interactive behaviour uses
native HTML elements (&lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;) or CSS (&lt;code&gt;prefers-color-scheme&lt;/code&gt;,
&lt;code&gt;aria-current&lt;/code&gt;).&lt;/p&gt;
&lt;h2 id="no-external-resources"&gt;No external resources&lt;/h2&gt;
&lt;p&gt;No external stylesheets, no web fonts, no CDN calls. All styles are inline.
Every page is self-contained.&lt;/p&gt;
&lt;h2 id="dark-mode"&gt;Dark mode&lt;/h2&gt;
&lt;p&gt;Dark mode is automatic — it follows the system &lt;code&gt;prefers-color-scheme&lt;/code&gt; preference.
No toggle, no JavaScript, no cookie. It just works.&lt;/p&gt;
&lt;h2 id="syntax-highlighting"&gt;Syntax highlighting&lt;/h2&gt;
&lt;p&gt;Code blocks are highlighted at build time using Hugo&amp;rsquo;s Chroma highlighter with
inline styles. The default style is &lt;code&gt;monochrome&lt;/code&gt;. See Configuration for how to
change it.&lt;/p&gt;</description></item><item><title>Installation</title><link>https://letsblaze.thomaslaurenson.com/docs/getting-started/installation/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/docs/getting-started/installation/</guid><description>&lt;p&gt;letsblaze requires Hugo &lt;strong&gt;0.134.0 or later&lt;/strong&gt;. Run &lt;code&gt;hugo version&lt;/code&gt; to check.&lt;/p&gt;
&lt;h2 id="option-1--git-submodule-recommended"&gt;Option 1 — Git submodule (recommended)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff;font-weight:bold"&gt;cd&lt;/span&gt; your-hugo-site
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git submodule add https://github.com/thomaslaurenson/letsblaze themes/letsblaze&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In &lt;code&gt;hugo.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;theme = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;letsblaze&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To update the theme later:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git submodule update --remote --merge&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="option-2--hugo-module"&gt;Option 2 — Hugo module&lt;/h2&gt;
&lt;p&gt;Initialise your site as a Hugo module if you haven&amp;rsquo;t already:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo mod init github.com/YOUR-USERNAME/YOUR-SITE&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In &lt;code&gt;hugo.toml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[module]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[module.imports]]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; path = &lt;span style="color:#0ff;font-weight:bold"&gt;&amp;#34;github.com/thomaslaurenson/letsblaze&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pull the module:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo mod get&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="option-3--manual-download"&gt;Option 3 — Manual download&lt;/h2&gt;
&lt;p&gt;Download the repository as a zip from GitHub and extract it into &lt;code&gt;themes/letsblaze/&lt;/code&gt;.
Set &lt;code&gt;theme = &amp;quot;letsblaze&amp;quot;&lt;/code&gt; in &lt;code&gt;hugo.toml&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Markdown Reference</title><link>https://letsblaze.thomaslaurenson.com/docs/reference/markdown/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/docs/reference/markdown/</guid><description>&lt;p&gt;A reference for all Markdown elements supported by letsblaze. Use this page
to verify rendering before writing content.&lt;/p&gt;
&lt;h2 id="headings"&gt;Headings&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; is reserved for the page title. Use &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; to &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; in content.&lt;/p&gt;
&lt;h2 id="h2"&gt;H2&lt;/h2&gt;
&lt;h3 id="h3"&gt;H3&lt;/h3&gt;
&lt;h4 id="h4"&gt;H4&lt;/h4&gt;
&lt;h5 id="h5"&gt;H5&lt;/h5&gt;
&lt;h6 id="h6"&gt;H6&lt;/h6&gt;
&lt;h2 id="paragraph"&gt;Paragraph&lt;/h2&gt;
&lt;p&gt;Standard paragraph text. Separate paragraphs with a blank line. Line breaks
within a paragraph are collapsed to a space unless you end a line with two
spaces or a backslash.&lt;/p&gt;
&lt;h2 id="blockquotes"&gt;Blockquotes&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Single-level blockquote.&lt;/p&gt;</description></item><item><title>Welcome to letsblaze</title><link>https://letsblaze.thomaslaurenson.com/blog/welcome-to-letsblaze/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/blog/welcome-to-letsblaze/</guid><description>&lt;p&gt;letsblaze is a Hugo theme built on one principle: the fastest resource is one that
was never requested.&lt;/p&gt;
&lt;p&gt;No JavaScript. No external stylesheets. No web fonts. No CDN calls. Every page is
HTML with a small inline style block. Nothing else ships to the browser.&lt;/p&gt;
&lt;h2 id="why-no-javascript"&gt;Why no JavaScript&lt;/h2&gt;
&lt;p&gt;JavaScript is powerful and often necessary. It is also the single largest contributor
to slow page loads across the web. For a blog or documentation site, there is almost
nothing that JavaScript provides that semantic HTML cannot handle.&lt;/p&gt;</description></item><item><title>About</title><link>https://letsblaze.thomaslaurenson.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://letsblaze.thomaslaurenson.com/about/</guid><description>&lt;p&gt;I&amp;rsquo;m Thomas Laurenson — a developer who thinks the web works best when it is fast,
readable, and honest about what it is.&lt;/p&gt;
&lt;p&gt;letsblaze is the theme I built for my own site. It has no JavaScript, no external
stylesheets, no web fonts, and no CDN dependencies. Every page is plain HTML with
a small inline style block. That is the entire stack.&lt;/p&gt;
&lt;p&gt;The name comes from the idea that a site should be genuinely fast — not fast after
optimisation, but fast by default because there is nothing to slow it down.&lt;/p&gt;</description></item></channel></rss>