<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>stafford williams</title>
    <description>blog dev</description>
    <link>https://staffordwilliams.com/dev/</link>
    <pubDate>Sun, 01 Nov 2026 10:13:19 GMT</pubDate>
    <lastBuildDate>Sun, 01 Nov 2026 10:13:19 GMT</lastBuildDate>
    <generator>Astro</generator>
    <item>
      <title>blog: Build blocks absolute self-links, trailing-slash post links</title>
      <description>&lt;p&gt;Absolute links back to the site are now caught at build time, and the existing ones were cleaned up.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Build fails on absolute links to the site itself&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Existing absolute self-links&lt;/li&gt;&lt;li&gt;&lt;code&gt;post:&lt;/code&gt; and &lt;code&gt;link:&lt;/code&gt; references with a trailing slash&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w25/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w25/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Per-post model in the series panel</title>
      <description>&lt;p&gt;The series panel stopped hardcoding the code-assist model and now shows the one each post was written with.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Optional &lt;code&gt;model&lt;/code&gt; frontmatter on posts&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Series footer names each post&apos;s own model&lt;/li&gt;&lt;li&gt;Build fails when a series post lacks its model&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w24/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w24/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Mermaid diagrams, netlify-cli postinstall</title>
      <description>&lt;p&gt;Posts can now embed Mermaid diagrams, and a fresh install sets up deployment tooling.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Mermaid diagrams in posts&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;postinstall&lt;/code&gt; installs netlify-cli if missing&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w15/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w15/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Root RSS feed, trimmed excerpts, devlog cards</title>
      <description>&lt;p&gt;Feeds got a site-wide entry point with cleaner excerpts, and devlogs got social cards and links from project info.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Social card images per devlog tag&lt;/li&gt;&lt;li&gt;Devlog link in project info&lt;/li&gt;&lt;li&gt;Site-wide &lt;code&gt;feed.xml&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Feeds use short excerpts instead of full posts&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w11/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w11/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: LinkedIn links on posts</title>
      <description>&lt;p&gt;Posts can now link through to their LinkedIn share.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;LinkedIn icon linking to each post&apos;s share&lt;/li&gt;&lt;li&gt;Backfilled LinkedIn URLs on existing posts&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w10/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w10/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Shiki syntax highlighting, warning blocks</title>
      <description>&lt;p&gt;Syntax highlighting moved to Astro&apos;s built-in Shiki, and posts gained warning callouts.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;:::warning&lt;/code&gt; callout blocks&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Shiki replaces highlight.js&lt;/li&gt;&lt;li&gt;Code block styling reworked for Shiki&lt;/li&gt;&lt;li&gt;Deprecation warnings on the refactoring post&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w08/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w08/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Series directive fixes</title>
      <description>&lt;p&gt;A fix to the series plugin so it works with parsed directives and keeps the content that follows them.&lt;/p&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;remark-series&lt;/code&gt; reads directive nodes instead of regex&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Content after a series directive being swallowed&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w07/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w07/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Secure Base64 parody tool</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v4-8&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2026-02-03&amp;quot;&amp;gt;Feb 3&amp;lt;/time&amp;gt; Secure Base64 parody tool &amp;lt;span&amp;gt;v4.8&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Added &lt;a href=&quot;/secure-base64&quot;&gt;secure-base64&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w06/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w06/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Heading anchor links, AI prompt toggle, remark plugin split</title>
      <description>&lt;p&gt;The remark plugins were broken into focused pieces, and posts gained linkable headings.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Anchor links on post headings&lt;/li&gt;&lt;li&gt;Show/hide prompt toggle on AI content blocks&lt;/li&gt;&lt;li&gt;Remark plugins README&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Jekyll includes plugin split into single-purpose plugins&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Sass &lt;code&gt;darken()&lt;/code&gt; deprecation warning&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w05/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w05/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: AI content blocks, drafts collection, link submission</title>
      <description>&lt;p&gt;AI-written sections can now be marked up in posts, and drafts became previewable locally.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;:::ai&lt;/code&gt; blocks badge AI-written sections&lt;/li&gt;&lt;li&gt;Dev-only drafts preview pages&lt;/li&gt;&lt;li&gt;Link submission page for authenticated users&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Drafts moved into a content collection&lt;/li&gt;&lt;li&gt;Shared &lt;code&gt;AutoResizeIframe&lt;/code&gt; component&lt;/li&gt;&lt;li&gt;Local dev runs through &lt;code&gt;netlify dev&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w03/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w03/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Slippery Boxes fullscreen mode, subdomain move, devlog backfill</title>
      <description>&lt;p&gt;The Slippery Boxes page got a fullscreen mode and its original development history was backfilled.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Linkable fullscreen mode for Slippery Boxes&lt;/li&gt;&lt;li&gt;&lt;code&gt;local&lt;/code&gt; param to point the game at a dev server&lt;/li&gt;&lt;li&gt;Backfilled Slippery Boxes devlogs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Slippery Boxes served from its own subdomain&lt;/li&gt;&lt;li&gt;Refreshed page description and screenshot&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w02/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w02/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Project info on devlogs, link: shorthand, post filtering</title>
      <description>&lt;p&gt;Devlog pages gained per-project metadata, and older projects had their devlogs backfilled.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Project info panel on devlog pages&lt;/li&gt;&lt;li&gt;&lt;code&gt;link:&lt;/code&gt; shorthand for external links&lt;/li&gt;&lt;li&gt;Post filtering on the blog index&lt;/li&gt;&lt;li&gt;Backfilled spacetraders-v1 and bags devlogs&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2026-w01/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2026-w01/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Series navigation directive</title>
      <description>&lt;p&gt;Posts can now declare a series and get navigation to the other posts generated for them.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;:::series&lt;/code&gt; directive renders series navigation&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Steering the Vibe posts use the series directive&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2025-w52/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2025-w52/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Jekyll removed, post: link syntax, per-project devlog feeds</title>
      <description>&lt;p&gt;The Astro migration was finished and Jekyll removed, with a new validated shorthand for linking between posts.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;post:&lt;/code&gt; link syntax validated at build time&lt;/li&gt;&lt;li&gt;VS Code launch config for the dev server&lt;/li&gt;&lt;li&gt;Remark plugin for Jekyll include tags&lt;/li&gt;&lt;li&gt;Card-game, bubble-bobble, bookmarklet builder and categories pages&lt;/li&gt;&lt;li&gt;Per-project devlog RSS feeds&lt;/li&gt;&lt;li&gt;Open Graph cards on main pages&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Internal links converted to &lt;code&gt;post:&lt;/code&gt; syntax&lt;/li&gt;&lt;li&gt;Jekyll removed entirely&lt;/li&gt;&lt;li&gt;Assets moved to &lt;code&gt;public/assets/&lt;/code&gt;&lt;/li&gt;&lt;li&gt;netlify-cli dropped from dependencies&lt;/li&gt;&lt;li&gt;Jekyll &lt;code&gt;post_url&lt;/code&gt; tags replaced with real URLs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Inline code styling&lt;/li&gt;&lt;li&gt;Clearfix for floated images&lt;/li&gt;&lt;li&gt;Devlog aggregate page layout and toggle button&lt;/li&gt;&lt;li&gt;Code blocks broken by the conversion&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2025-w51/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2025-w51/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Jekyll to Astro migration, RSS feeds, restored pages</title>
      <description>&lt;p&gt;The blog moved from Jekyll to Astro, followed by a round of polish to restore missing pages and feeds.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;RSS feeds for blog and devlog&lt;/li&gt;&lt;li&gt;Bookmarklet builder, bubble bobble, slippery boxes, spacetraders, talks and privacy pages&lt;/li&gt;&lt;li&gt;Migration verification script&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Verification script catches more cases, with an ignore list&lt;/li&gt;&lt;li&gt;Better link cards and social images&lt;/li&gt;&lt;li&gt;Site migrated from Jekyll to Astro&lt;/li&gt;&lt;li&gt;HTML posts converted to markdown&lt;/li&gt;&lt;li&gt;Devlogs and links as content collections&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Share buttons&lt;/li&gt;&lt;li&gt;Formatting left over from the Jekyll conversion&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2025-w50/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2025-w50/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Jekyll 4 upgrade, info callouts, gem caching</title>
      <description>&lt;p&gt;The Jekyll side of the site moved to version 4, with a few small additions along the way.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Info callout component&lt;/li&gt;&lt;li&gt;Redirects for old asteroid-logistics URLs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Jekyll 3 to 4 with a pinned Gemfile&lt;/li&gt;&lt;li&gt;SCSS variables extracted to a partial&lt;/li&gt;&lt;li&gt;Ruby gems cached in CI&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2025-w49/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2025-w49/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: og:image for notes</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v3-2&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-11-09&amp;quot;&amp;gt;Nov 9&amp;lt;/time&amp;gt; og:image for notes &amp;lt;span&amp;gt;v3.2&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;A while back I added &lt;a href=&quot;post:this-social-image-was-generated&quot;&gt;og:image generation&lt;/a&gt; for posts and pages and later extended it to support &lt;a href=&quot;/devlog&quot;&gt;devlogs&lt;/a&gt;. I did not however add it to &lt;a href=&quot;/notes&quot;&gt;notes&lt;/a&gt; for two reasons:&lt;/p&gt;&lt;p&gt;- My github action that deploys the blog generates all the images on every push - adding notes would more than double deploy time - I didn&apos;t want to solve the above issue by commiting the images to source&lt;/p&gt;&lt;p&gt;Today I solved this via two key changes:&lt;/p&gt;&lt;p&gt;1. The &lt;a href=&quot;https://github.com/staff0rd/image-generator/commit/415a2c7187edfccc9351915a882f2fc9c5e6fdc7&quot;&gt;generator will now skip existing images by default&lt;/a&gt; and; 2. The generated images are cached via &lt;a href=&quot;https://github.com/actions/cache&quot;&gt;actions/cache&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The relative section from the github workflow looks like this:&lt;/p&gt;&lt;p&gt;```yml - uses: actions/cache@v4 name: Restore cached images with: path: _site/assets/cards key: cards-${{ github.sha }} restore-keys: | cards-&lt;/p&gt;&lt;p&gt;- run: ./scripts/generate-images.sh ${GITHUB_WORKSPACE} name: Generate images ```&lt;/p&gt;&lt;p&gt;The restore key matching on &lt;code&gt;cards-&lt;/code&gt; means the last run always matches, returning all previously generated images. The result is now each notes page has a unique &lt;code&gt;og:image&lt;/code&gt;:&lt;/p&gt;&lt;p&gt;!&lt;a href=&quot;/assets/cards/notes/ravendb.png&quot;&gt;notes on ravendb image&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 09 Nov 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2025-w45/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2025-w45/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Square og:image</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v3-1&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2024-03-10&amp;quot;&amp;gt;Mar 10&amp;lt;/time&amp;gt; square og:image &amp;lt;span&amp;gt;v3.1&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;I implemented the findings from &lt;a href=&quot;/notes/opengraph/#multiple-og:image&quot;&gt;here&lt;/a&gt; specific to adding a square image. [&lt;code&gt;image-generator&lt;/code&gt;](https://github.com/staff0rd/image-generator) is updated to .NET 8 and now outputs a square image as well as a rectangular image. It&apos;s not clear which will be chosen considering a bunch of the og:image checking sites only load either the rectangular image or the square image.&lt;/p&gt;&lt;p&gt;In fact, the output can be seen on this very page under _View source &amp;gt; &lt;code&gt;head&lt;/code&gt;_:&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;html &amp;lt;meta name=&amp;quot;twitter:image&amp;quot; property=&amp;quot;og:image&amp;quot; content=&amp;quot;https://staffordwilliams.com/assets/cards/2024-03-10-blog-square-image.png&amp;quot;&amp;gt; &amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;https://staffordwilliams.com/assets/cards/2024-03-10-blog-square-image.png&amp;quot;&amp;gt; &amp;lt;meta property=&amp;quot;og:image:width&amp;quot; content=&amp;quot;4000&amp;quot;&amp;gt; &amp;lt;meta property=&amp;quot;og:image:height&amp;quot; content=&amp;quot;2000&amp;quot;&amp;gt; &amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;https://staffordwilliams.com/assets/cards/2024-03-10-blog-square-image-square.png&amp;quot;&amp;gt; &amp;lt;meta property=&amp;quot;og:image:width&amp;quot; content=&amp;quot;2000&amp;quot;&amp;gt; &amp;lt;meta property=&amp;quot;og:image:height&amp;quot; content=&amp;quot;2000&amp;quot;&amp;gt; &lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;There&apos;s a good chance the first image should be of the form factor &lt;code&gt;1200x630&lt;/code&gt;, but I&apos;ll see in the coming weeks how different sites and apps render it.&lt;/p&gt;&lt;p&gt;### Update 2024-03-12&lt;/p&gt;&lt;p&gt;This was promptly reverted once I posted to discord and saw this:&lt;/p&gt;&lt;p&gt;!&lt;a href=&quot;/assets/discord-ogimage.png&quot;&gt;discord showing both og:image&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I&apos;ll have to test on a dev site what this looks likes across platforms.&lt;/p&gt;</description>
      <pubDate>Sun, 10 Mar 2024 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2024-w10/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2024-w10/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Dropping micro.blog</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v3-0&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2021-09-01&amp;quot;&amp;gt;Sep 1&amp;lt;/time&amp;gt; Dropping micro.blog &amp;lt;span&amp;gt;v3.0&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;After a year of integrating with &lt;a href=&quot;https://micro.blog&quot;&gt;micro.blog&lt;/a&gt; to host my &lt;a href=&quot;/devlog&quot;&gt;devlog&lt;/a&gt; entries I&apos;ve decided it&apos;s more hassle than it&apos;s worth. The benefits of micro blog was the ability to post outside my git environment and have posts auto-tweeted.&lt;/p&gt;&lt;p&gt;Integrating proved difficult due to &lt;a href=&quot;https://github.com/microdotblog/issues/issues/159#issuecomment-753567004&quot;&gt;issues with CORS&lt;/a&gt;. Recently a Micro.blog server upgrade conflicted with my Cloudflare proxy meaning I would need to disable the rpoxy for Micro.blog to reestablish an HTTPS certificate (this would also break the CORs issue), and then re-enable it.&lt;/p&gt;&lt;p&gt;I decided to reduce the dependency on Micro.blog and have migrated the &lt;a href=&quot;/devlog&quot;&gt;devlog&lt;/a&gt; into a collection within my own jekyll-generated site. This gives me the opportunity to have further control over the content and structure, for example the devlog permalinks which are a &lt;a href=&quot;https://jekyllrb.com/docs/plugins/hooks/&quot;&gt;Jekyll plugin&lt;/a&gt; i&apos;ve written in ruby:&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;ruby Jekyll::Hooks.register :devlog, :pre_render do |page| permalink = &amp;quot;devlog/#{page.data[&amp;quot;tags&amp;quot;].first}/#{page.data[&amp;quot;version&amp;quot;]}/&amp;quot; page.data[&amp;quot;permalink&amp;quot;] = permalink end &lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 01 Sep 2021 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2021-w35/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2021-w35/</guid>
      <category>blog</category>
    </item>
    <item>
      <title>blog: Devlog</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v2-40&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2020-08-27&amp;quot;&amp;gt;Aug 27&amp;lt;/time&amp;gt; Devlog &amp;lt;span&amp;gt;v2.40&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;After posting some updates on &lt;a href=&quot;/categories/garage&quot;&gt;garage&lt;/a&gt; I realised that I often have content that sits somewhere between &lt;a href=&quot;/blog&quot;&gt;blogging&lt;/a&gt; and &lt;a href=&quot;/notes&quot;&gt;note&lt;/a&gt; taking but I don&apos;t end up writing it because it sits in neither. The result of this is that I&apos;ve integrated &lt;a href=&quot;https://micro.blog&quot;&gt;micro.blog&lt;/a&gt; into my site via a _devlog_ section on the &lt;a href=&quot;/&quot;&gt;homepage&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://micro.blog&quot;&gt;Micro.blog&lt;/a&gt; takes care of twitter cross-posting and I&apos;ve edited its theme to look similar to &lt;a href=&quot;/&quot;&gt;staffordwilliams.com&lt;/a&gt;. As the rest of my site is static generated, I pull the content into the homepage via &lt;a href=&quot;https://www.npmjs.com/package/rss-parser&quot;&gt;RSSParser&lt;/a&gt;. You can see the code in the source for &lt;code&gt;index.html&lt;/code&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 27 Aug 2020 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/blog/2020-w35/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/blog/2020-w35/</guid>
      <category>blog</category>
    </item>
  </channel>
</rss>
