<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">James Gasek</title>
  <subtitle>Writing on software, hardware, and applied AI.</subtitle>
  <link href="https://www.gasek.net/feed.xml" rel="self" type="application/atom+xml" />
  <link href="https://www.gasek.net/" rel="alternate" type="text/html" />
  <id>https://www.gasek.net/feed.xml</id>
  <updated>2026-08-11T00:00:00.000Z</updated>
  <entry>
    <title type="html">Starting a posts page</title>
    <link href="https://www.gasek.net/posts/hello" rel="alternate" type="text/html" title="Starting a posts page" />
    <id>https://www.gasek.net/posts/hello</id>
    <published>2026-08-11T00:00:00.000Z</published>
    <updated>2026-08-11T00:00:00.000Z</updated>
    <summary type="html">What this is and how posts get written.</summary>
    <content type="html"><![CDATA[<p>I added this page to have somewhere to write up things I work on: embedded
projects, applied AI, and whatever else turns out to be worth a few paragraphs.</p>
<p>Posts are Markdown files in <code>content/posts/</code>, parsed at build time. A post needs
a title and a date; a category and summary are optional:</p>
<pre><code class="hljs language-yaml"><span class="hljs-meta">---</span>
<span class="hljs-attr">title:</span> <span class="hljs-string">'Starting a posts page'</span>
<span class="hljs-attr">date:</span> <span class="hljs-string">'2026-08-11'</span>
<span class="hljs-attr">category:</span> <span class="hljs-string">meta</span>
<span class="hljs-attr">summary:</span> <span class="hljs-string">'What this is and how posts get written.'</span>
<span class="hljs-meta">---
</span></code></pre>
<p>Fenced code blocks get syntax highlighting, so this renders with tokens coloured:</p>
<pre><code class="hljs language-ts"><span class="hljs-keyword">export</span> <span class="hljs-keyword">async</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">getPosts</span>(<span class="hljs-params"></span>): <span class="hljs-title class_">Promise</span>&#x3C;<span class="hljs-title class_">PostMeta</span>[]> {
  <span class="hljs-keyword">const</span> files = <span class="hljs-keyword">await</span> <span class="hljs-title function_">readPostFiles</span>();
  <span class="hljs-keyword">return</span> (<span class="hljs-keyword">await</span> <span class="hljs-title class_">Promise</span>.<span class="hljs-title function_">all</span>(files.<span class="hljs-title function_">map</span>(read))).<span class="hljs-title function_">sort</span>(byDateDesc);
}
</code></pre>
<p>The file name becomes the URL, so this one lives at <code>/posts/hello</code>. There is an
<a href="/feed.xml">RSS feed</a> too.</p>]]></content>
  </entry>
</feed>