<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>henrikbro</title>
    <subtitle>Notes on data platforms, running, tools, and web projects.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog.midterracedream.duckdns.org/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.midterracedream.duckdns.org"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-04-29T00:00:00+00:00</updated>
    <id>https://blog.midterracedream.duckdns.org/atom.xml</id>
    <entry xml:lang="en">
        <title>Site housekeeping</title>
        <published>2026-04-29T00:00:00+00:00</published>
        <updated>2026-04-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Henrik Brodtkorb
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.midterracedream.duckdns.org/blog/site-housekeeping/"/>
        <id>https://blog.midterracedream.duckdns.org/blog/site-housekeeping/</id>
        
        <content type="html" xml:base="https://blog.midterracedream.duckdns.org/blog/site-housekeeping/">&lt;p&gt;Static sites stay pleasant when the boring pieces are kept tidy.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;figure&quot;&gt;Figure&lt;&#x2F;h2&gt;
&lt;figure class=&quot;post-figure image-wide&quot;&gt;
  &lt;img src=&quot;&#x2F;images&#x2F;site-housekeeping.svg&quot; alt=&quot;A static site housekeeping dashboard with checks for links, feeds, and sitemap output.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
  
  &lt;figcaption&gt;A wide image example with lazy loading, alt text, and an optional caption.&lt;&#x2F;figcaption&gt;
  
&lt;&#x2F;figure&gt;
&lt;p&gt;That means checking links after template changes, keeping markdown fixtures
around for tables and code blocks, and making sure the homepage still works
when the post list grows.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;checks&quot;&gt;Checks&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Homepage post list has enough density.&lt;&#x2F;li&gt;
&lt;li&gt;Tags with multiple posts show useful counts.&lt;&#x2F;li&gt;
&lt;li&gt;Filtered tag pages still feel like part of the same system.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;callout&quot;&gt;Callout&lt;&#x2F;h2&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;
  
  &lt;p class=&quot;callout-title&quot;&gt;Small pieces&lt;&#x2F;p&gt;
  
  &lt;div class=&quot;callout-body&quot;&gt;&lt;p&gt;Shortcodes should make posts easier to read, not turn the blog into a component catalogue.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;&#x2F;aside&gt;
&lt;h2 id=&quot;caption&quot;&gt;Caption&lt;&#x2F;h2&gt;
&lt;p class=&quot;caption&quot;&gt;The checklist is intentionally short: it is here to exercise post typography, spacing, and helper components.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;gallery&quot;&gt;Gallery&lt;&#x2F;h2&gt;
&lt;p&gt;The scroll gallery keeps images in a horizontal rail with snap points. Images still link to the full-size source.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery gallery-scroll&quot; tabindex=&quot;0&quot; aria-label=&quot;Scrollable image gallery&quot;&gt;
  &lt;figure&gt;
    &lt;a href=&quot;&#x2F;images&#x2F;site-detail.svg&quot;&gt;
      &lt;img src=&quot;&#x2F;images&#x2F;site-detail.svg&quot; alt=&quot;Generated page route card.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;&#x2F;a&gt;
    &lt;figcaption&gt;Generated routes.&lt;&#x2F;figcaption&gt;
  &lt;&#x2F;figure&gt;
  
  &lt;figure&gt;
    &lt;a href=&quot;&#x2F;images&#x2F;site-card.svg&quot;&gt;
      &lt;img src=&quot;&#x2F;images&#x2F;site-card.svg&quot; alt=&quot;Shortcode component card.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;&#x2F;a&gt;
    &lt;figcaption&gt;Shortcode components.&lt;&#x2F;figcaption&gt;
  &lt;&#x2F;figure&gt;
  
  
  &lt;figure&gt;
    &lt;a href=&quot;&#x2F;images&#x2F;site-housekeeping.svg&quot;&gt;
      &lt;img src=&quot;&#x2F;images&#x2F;site-housekeeping.svg&quot; alt=&quot;Static site housekeeping dashboard.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
    &lt;&#x2F;a&gt;
    &lt;figcaption&gt;Wide source image.&lt;&#x2F;figcaption&gt;
  &lt;&#x2F;figure&gt;
  
&lt;&#x2F;div&gt;
&lt;h2 id=&quot;link-card&quot;&gt;Link card&lt;&#x2F;h2&gt;
&lt;a class=&quot;link-card&quot; href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;
  &lt;span class=&quot;link-card-title&quot;&gt;Zola&lt;&#x2F;span&gt;
  
  &lt;span class=&quot;link-card-description&quot;&gt;The static site generator used for this blog.&lt;&#x2F;span&gt;
  
  &lt;span class=&quot;link-card-url&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.getzola.org&amp;#x2F;&lt;&#x2F;span&gt;
&lt;&#x2F;a&gt;
&lt;h2 id=&quot;abbreviation&quot;&gt;Abbreviation&lt;&#x2F;h2&gt;
&lt;p&gt;The page also supports inline abbreviations like &lt;abbr class=&quot;abbr&quot; title=&quot;Really Simple Syndication&quot; tabindex=&quot;0&quot; data-title=&quot;Really Simple Syndication&quot;&gt;RSS&lt;&#x2F;abbr&gt;
 without making the prose noisy.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
