Markdown field notes
Before publishing anything substantial here, I wanted to see what the formatting pipeline actually does with everyday markdown. Astro’s native pipeline handles GitHub-flavored markdown out of the box, so everything below is plain text — no plugins, no MDX, no embedded components.
Headings and rhythm
Headings are the skeleton of a post. Two levels are usually enough; three means the post probably wants to be two posts.
Lists, ordered and otherwise
Shopping-list thoughts belong in bullets:
- Plain text survives every editor, OS, and decade
- Diff-friendly: a one-word edit is a one-line diff
- Portable: any future CMS can import these files
When sequence matters, number them:
- Write the words
- Add frontmatter (title, description, date, tags)
- Run the build
- Ship it
Quoting
Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
— John Gruber, Markdown: Syntax
Code
Inline code like bun run build gets a quiet monospace treatment. Fenced blocks get real syntax highlighting at build time — again, zero runtime cost:
# install dependencies and produce ./dist
bun install
bun run build
JavaScript highlights too:
// Every page on this site is generated from loops like this one
const posts = await getCollection('blog');
const sorted = posts.sort((a, b) => b.data.pubDate - a.data.pubDate);
console.log(`${sorted.length} posts ready`);
Tables
| Thing | Ships as | Weighs |
|---|---|---|
| This post | Static HTML | ~10 KB |
| Dark mode | CSS media query | 0 KB JS |
| RSS feed | /rss.xml |
0 KB JS |
Small print
Horizontal rules separate moods, emphasis whispers, bold insists, and links do the heavy lifting. That’s the whole vocabulary — and honestly, it’s enough for most of what anyone needs to say.