June 18, 2026 · David Spatholt
Getting Started with This Blog
How the blog system works — write in VS Code, git push, it's live.
How It Works
This blog is just static HTML files in docs/blog/. Each post is a folder with an
index.html. Metadata in <meta> tags drives the auto-indexer,
which regenerates the blog landing page and a machine-readable JSON manifest on every
git push.
Writing a New Post
-
Copy the template:
cp -r docs/blog/sample-post docs/blog/your-post-name -
Edit the metadata in the
<head>— title, date, tags, excerpt:<meta name="blog:title" content="Your Title"> <meta name="blog:date" content="2026-06-19"> <meta name="blog:tags" content="research,python,automation"> <meta name="blog:excerpt" content="Short summary shown on blog index"> -
Write your content inside the
.prosesection. HTML only — no markdown. -
Commit and push:
git add docs/blog/your-post-name/ git commit -m "blog: add your-post-name" git push
GitHub Actions automatically runs the blog indexer and deploys. The post appears on the blog landing page within ~20 seconds.
Metadata Fields
| Tag | Required | Fallback |
|---|---|---|
blog:title | Yes | First <h1> or folder name |
blog:date | Recommended | Git log date or today |
blog:tags | No | Omitted |
blog:excerpt | Recommended | First <p> text |
blog:author | No | "David Spatholt" |
Layout Tips
Use the .prose class for article body typography. It handles headings,
lists, code blocks (<code>), and links with appropriate spacing.
For images, use:
<figure>
<img src="image.png" alt="Description" />
<figcaption>Optional caption</figcaption>
</figure>
Local Preview
cd ~/workspace/dspacks-site
npx serve docs -l 4000
# Open http://localhost:4000/blog/your-post-name/