Rendering Kitchen Sink
This page is the rendering test bed for the blog. Every feature below is part of the supported authoring surface. If something looks wrong here, it is a bug in the site, not in the content.
Headings and anchors
Every heading gets a stable id generated with github-slugger. That means this
link works: jump to Stable heading anchors.
A level-three heading
A level-four heading
A level-five heading
A level-six heading
Stable heading anchors
The id for this section is stable-heading-anchors. It will not change unless the
heading text changes.
Custom anchor
This heading uses Sätteri’s heading-attribute syntax to pin a custom id. Link to it with the custom anchor.
Text formatting
Regular text, bold text, italic text, bold italic, struck-through text,
inline code, H2O and x2 (subscript and superscript are enabled), plus a
normal link, an autolink to https://docs.astro.build, and an
email link to [email protected].
A blockquote with formatting and a link.
Nested blockquotes also work.
Lists
Unordered
- First item
- Second item
- Nested item
- Another nested item
- Third item
Ordered
- First step
- Second step
- Nested step
- Another nested step
- Third step
Task list
- Render Markdown and MDX
- Render math with KaTeX
- Add more posts
- Replace the placeholder site description
Tables
| Feature | Status | Notes |
|---|---|---|
| Markdown | ✅ | CommonMark + GFM |
| MDX | ✅ | Astro components inside content |
| Math | ✅ | KaTeX at build time |
| Images | ✅ | Responsive local and remote |
A wider table to check horizontal overflow on mobile:
| One | Two | Three | Four | Five | Six | Seven | Eight |
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| alpha | beta | gamma | delta | epsilon | zeta | eta | theta |
Blockquotes
Plain blockquote.
- Lists inside blockquotes work.
- So do links.
Footnotes
Here is a footnote reference1 and a second one2. The definitions are collected at the bottom of the page.
Code blocks
A JavaScript block with a title, line numbers, and line markers:
const answer = 42;
function double(value) { return value * 2;}
console.log(double(answer));A TypeScript block without extra metadata:
interface Post { title: string; pubDate: Date;}
const post: Post = { title: 'Rendering Kitchen Sink', pubDate: new Date('2026-10-23'),};A Python block with line highlighting:
def greet(name: str) -> str: message = f"Hello, {name}!" print(message) return messageA shell block:
npm installnpm run devnpm run buildAn Astro component inside a code block:
---const { name } = Astro.props;---
<p>Hello, {name}!</p>A JSON block:
{ "name": "bamboozl.in", "framework": "Astro", "version": 7}Math
Inline math: , and a slightly more useful one: .
Display math:
A matrix and an integral:
Images
Local image with Markdown syntax

Local image with a caption

Remote image with Markdown syntax

Remote image with a caption

MDX components
Inline HTML
MDX also accepts HTML elements when you need them:
- Press Ctrl + K to search.
- Highlighted text is available too.
- API is an abbreviation.
An expandable section
This content is inside a native <details> element.
That is the end of the kitchen sink.
Footnotes
-
The first footnote, with a link back to the images section. ↩
-
The second footnote, with
inline codeand formatting. ↩