- Per-post OG tags (title, description, image, date) in template head
- Twitter Card support (summary_large_image)
- Auto-generate 1200x630 card images from embedded base PNG
- Title, description, domain, date drawn on image via fogleman/gg
- Fonts embedded via go:embed (OpenSans Bold + Regular)
- Optional og-image: and og-description: front matter overrides
- Layout constants in ogimage.go for easy repositioning
- Generated images cached in content/og/ (gitignored)
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
- Allow raw HTML in markdown (html.WithUnsafe) for <details> blocks
- Style <details>/<summary> with purple gradient, custom markers
- h2/h3 headings now accent purple to distinguish from body text
- Second blog post: "Transformers and Neural Networks"
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
- Wire up Ergon and ArchASM custom highlight.js languages
- Serve /content/images/ for post image embeds
- Blog width 820px -> 1040px to match landing page
- First real blog post: "Why make a blog?"
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Static landing page + markdown blog served by Go.
Goldmark renders posts in-memory, no database.
Dockerfile + compose for podman deployment.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>