This is a placeholder post. Replace or delete it — it exists to exercise every piece of formatting so the styling can be checked.
Headings work like this#
Body text sits on a measure of about 68 characters, which is where prose stops being tiring to read. The font is the same Geist used everywhere else on the site, so nothing here looks bolted on.
A third level, for completeness
Inline formatting: bold, italic, inline code, and
a link back to the about page.
Code#
Fenced blocks are highlighted at build time, so no JavaScript ships with a post:
static int parse_header(const uint8_t *buf, size_t len) {
if (len < sizeof(struct hdr)) /* short read */
return -EINVAL;
struct hdr *h = (struct hdr *)buf;
return h->count ? h->count : -EINVAL;
}
$ curl -sI https://leehojune.me/blog/hello | head -3
HTTP/2 200
content-type: text/html; charset=utf-8
Lists#
- Unordered items stay tight
- Second item
- Nested one level
- Ordered lists too
- Second
Quotes#
A quote is set off with a rule on the left and slightly dimmed text, so it reads as someone else's voice without shouting.
Tables#
| Field | Value |
|---|---|
| CVE | CVE-2025-55212 |
| CVSS | 7.5 |
Images#
Drop files into site-src/blog/img/ and reference them with a relative path.
A paragraph containing only an image becomes a figure, and the title becomes a caption.

An image without a title renders without a caption.
That is everything the generator handles.