<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Posts Tagged "changelog" on Alex Leighton's Blog</title>
  <id>https://alexleighton.com/posts/tags/changelog-tag-feed.xml</id>
  <link href="https://alexleighton.com/posts/tags/changelog-tag-feed.xml" rel="self" />
  <link href="https://alexleighton.com/posts/tags/changelog.html" />
  <updated>2026-03-11T13:36:28.055135011Z</updated>
  <author>
    <name>Alex Leighton</name>
    <uri>https://alexleighton.com/</uri>
  </author>
  <icon>https://alexleighton.com/static/icon-dino.png</icon>
  <logo>https://alexleighton.com/static/icon-dino.png</logo>
  
  <entry>
    <title>Changelog: Series Pages</title>
    <id>https://alexleighton.com/posts/2026-02-03-changelog-series-pages.html</id>
    <link href="https://alexleighton.com/posts/2026-02-03-changelog-series-pages.html" />
    <published>2026-02-03T15:00:00Z</published>
    <updated>2026-02-03T15:00:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Series of blog posts now have a dedicated page.</p><p>Published on <span title="2026-02-03T15:00:00Z">2026-02-03</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Series of blog posts now have a dedicated page.</h3><p>Published on <span title="2026-02-03T15:00:00Z">2026-02-03</span><br>Tags: changelog, static-site</p><p>Like tags, which group different blog posts together, series now have dedicated pages where all the constituent blog posts are listed.</p>
<p>The <a href="../../../posts/series/all.html">All Series</a> page lists all series, like the <a href="../../../posts/series/knowledge-bases.html">Knowledge Bases Tool</a> series.</p><p><a href="https://alexleighton.com/posts/2026-02-03-changelog-series-pages.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Changelog: Individual Image Pages</title>
    <id>https://alexleighton.com/posts/2025-12-01-changelog-individual-image-pages.html</id>
    <link href="https://alexleighton.com/posts/2025-12-01-changelog-individual-image-pages.html" />
    <published>2025-12-02T05:45:00Z</published>
    <updated>2025-12-02T05:45:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Images now link to a page featuring the image.</p><p>Published on <span title="2025-12-02T05:45:00Z">2025-12-02</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Images now link to a page featuring the image.</h3><p>Published on <span title="2025-12-02T05:45:00Z">2025-12-02</span><br>Tags: changelog, ocaml, static-site</p><p>I've created individual image pages. Now all images will link to their own image page, which makes it easier to see the alt text and variant images. For example, <a href="../../../img/img_o_01k80xvwggfn1s20cv98d75bee.html">this page for the picture of my dog on Rialto Beach</a>.</p>
<p>Implementing this was pretty straightforward. My static site generator makes a distinction between "normal" pages, ones where the <code>Page</code> structure is constructible solely from the contents of a file (HTML or Markdown body with all the necessary metadata in a <a href="https://jekyllrb.com/docs/front-matter/">YAML frontmatter</a>), and "synthetic" pages, where the <code>Page</code> structure is constructed in OCaml code inside the generator. These image pages are synthetic: the generator constructs one for each image original used on the site, generated alongside other synthetic pages like the tag pages or blog post archive pages.</p><p>...<br><a href="https://alexleighton.com/posts/2025-12-01-changelog-individual-image-pages.html">Read the full post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Changelog: Photos Page</title>
    <id>https://alexleighton.com/posts/2025-10-09-changelog-photos-page.html</id>
    <link href="https://alexleighton.com/posts/2025-10-09-changelog-photos-page.html" />
    <published>2025-10-09T14:00:00Z</published>
    <updated>2025-10-09T14:00:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Photography posts are now browseable image-first.</p><p>Published on <span title="2025-10-09T14:00:00Z">2025-10-09</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Photography posts are now browseable image-first.</h3><p>Published on <span title="2025-10-09T14:00:00Z">2025-10-09</span><br>Tags: changelog, photography, static-site</p><p>I've created a <a href="../../../photos.html">Photos</a> page to show off the <a href="../../../posts/tags/photography.html">photography</a>-tagged posts in a gallery format.</p>
<p>It didn't take much coding work to build, just adding on a "thumb" mode to the image builtin. The majority of the work was achievable with pre-existing template builtins:</p>
<pre><code class="language-html">&lt;main&gt;
  &lt;section&gt;
  &lt;h1&gt;Photos&lt;/h1&gt;
  &lt;div class="gallery"&gt;
    {setlist(posts, contains(item.md.tags, photography))/}
    {foreach(posts, post)/}
      {if(post.md.thumbnail)/}
      &lt;a href="{pageurl(post.md.slug)}"&gt;
        {img(post.md.thumbnail, thumb)}
      &lt;/a&gt;
      {/if}
    {/foreach}
    {/setlist}
  &lt;/div&gt;
  &lt;/section&gt;
&lt;/main&gt;
</code></pre><p><a href="https://alexleighton.com/posts/2025-10-09-changelog-photos-page.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Changelog: Images!</title>
    <id>https://alexleighton.com/posts/2025-09-23-changelog-images.html</id>
    <link href="https://alexleighton.com/posts/2025-09-23-changelog-images.html" />
    <published>2025-09-24T03:45:00Z</published>
    <updated>2025-09-24T03:45:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>This site now supports posting images.</p><p>Published on <span title="2025-09-24T03:45:00Z">2025-09-24</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>This site now supports posting images.</h3><p>Published on <span title="2025-09-24T03:45:00Z">2025-09-24</span><br>Tags: changelog, static-site</p><p>I've finally built support for images! It's taken about 2 months to finish implementation — I started during my vacation in early August and have been working on it when I find the time and motivation. I'll write up a larger post detailing the full system later, suffice it to say I'm generating multiple encodings (<a href="https://en.wikipedia.org/wiki/JPEG">JPEG</a>, <a href="https://en.wikipedia.org/wiki/WebP">WEBP</a>, <a href="https://en.wikipedia.org/wiki/AVIF">AVIF</a>) at multiple resolutions (400px, 720px, 1440px) so I can minimize bandwidth usage and enable the user's browser to select the image which fits best (<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/picture"><code>&lt;picture&gt;</code></a>).</p>
<p>To kick things off, here's a picture of my dog Ki at the dog park:</p>
<p><a href="../../../img/img_o_01k5qtv97rfvy9cqtd2vq322jg.html"><img src="https://alexleighton.com/img/img_01k5qtv97red5b4p6jz4djdb0p.jpg" alt="A tri-colored Australian Shepherd dog named Ki sitting on a wooden tree stump, looking directly at the camera with his tongue hanging out in a happy expression. He has a black coat with white chest and paws, and tan/brown markings around his face and legs. The setting is an outdoor area with a blurred background of buildings and trees during golden hour lighting."></img></a></p><p><a href="https://alexleighton.com/posts/2025-09-23-changelog-images.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Changelog: Blog Archive</title>
    <id>https://alexleighton.com/posts/2025-09-13-blog-archive.html</id>
    <link href="https://alexleighton.com/posts/2025-09-13-blog-archive.html" />
    <published>2025-09-13T22:15:00Z</published>
    <updated>2025-09-13T22:15:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Posts are now browseable by year and month.</p><p>Published on <span title="2025-09-13T22:15:00Z">2025-09-13</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Posts are now browseable by year and month.</h3><p>Published on <span title="2025-09-13T22:15:00Z">2025-09-13</span><br>Tags: changelog, static-site</p><p>A page breaking down my blog posts by year and then month, to enable easy browsing of the whole archive, is now available: <a href="../../../years.html">Blog Archives</a>.</p>
<p>Now that I've hit over 50 posts, I thought it was time to build an archive scheme that won't just be an infinitely growing page. Pages for each year a post happened are generated, filtered down to contain only the posts from that year, and further grouped by month. In the process, the blog nav has been standardized and put on the <a href="../../../posts/tags/all.html">tags</a> and <a href="../../../search.html">search</a> pages.</p><p><a href="https://alexleighton.com/posts/2025-09-13-blog-archive.html">Read the post →</a></p>]]></content>
  </entry>
  
  <entry>
    <title>Changelog: Tag Feeds</title>
    <id>https://alexleighton.com/posts/2025-09-07-tag-feeds.html</id>
    <link href="https://alexleighton.com/posts/2025-09-07-tag-feeds.html" />
    <published>2025-09-08T04:15:00Z</published>
    <updated>2025-09-08T04:15:00Z</updated>
    <author><name>Alex Leighton</name></author>
    <summary type="html"><![CDATA[<p>Significant tags now have RSS feeds.</p><p>Published on <span title="2025-09-08T04:15:00Z">2025-09-08</span></p>]]></summary>
    <content type="html"><![CDATA[<h3>Significant tags now have RSS feeds.</h3><p>Published on <span title="2025-09-08T04:15:00Z">2025-09-08</span><br>Tags: changelog, rss, static-site</p><p>You can now subscribe to posts of a specific tag. The existing <a href="../../../feed.xml">"all posts" feed</a> remains, and now there is a feed for every tag that "contains" at least 5 posts. For example:</p>
<ul>
<li><a href="../../../posts/tags/article-tag-feed.xml">Articles</a></li>
<li><a href="../../../posts/tags/listening-to-tag-feed.xml">Music I'm Listening To</a></li>
<li><a href="../../../posts/tags/software-eng-tag-feed.xml">Software Engineering</a></li>
<li><a href="../../../posts/tags/static-site-tag-feed.xml">Static Site Posts</a></li>
</ul>
<p>The tag page (e.g. <a href="../../../posts/tags/static-site.html">static-site</a>) links to the feed on the page, as well as sets the feed meta tag — so you can paste the tag page URL or the tag feed URL into your feed reader of choice.</p><p><a href="https://alexleighton.com/posts/2025-09-07-tag-feeds.html">Read the post →</a></p>]]></content>
  </entry>
  
</feed>
