Content pipeline
Pages and posts are Markdown files now, with a CMS in front of them
Everything on this site except the homepage and the colophon is a Markdown file
under content/, compiled into the site at build time. Frontmatter is validated
during the build, so a missing title or a malformed date fails the build instead
of publishing a broken page.
Code fences are highlighted while the site is built, which means a reader gets syntax colours without downloading a highlighter and without asking a CDN for a grammar:
const content = {
pages : "/content/pages" ,
posts : "/content/posts" ,
} satisfies Record < string , string >;
export function slug ( file : string ) : string {
return file . replace ( / ^content\/(pages|posts)\/ / , "" ). replace ( / \.md$ / , "" );
} And then sometime after the build, Komodo notices, pulls the new image, and swaps out the running image.
Of course, all of this doesn’t really mean much to anyone looking at my site. It’s just here.