GitHub Flavored Markdown (GFM)
Theremark-gfm plugin (~4.0.1) adds GitHub Flavored Markdown support:
- Tables — standard pipe-delimited table syntax
- Strikethrough —
~~text~~ - Task lists —
- [ ] itemand- [x] item - Autolinks — bare URLs are auto-linked
- Footnotes —
[^1]references
Code Blocks with Syntax Highlighting
All fenced code blocks are processed by Shiki at build time via the@node-core/rehype-shiki package. Shiki outputs pre-highlighted HTML — no client-side JS is needed for code coloring.
Specify the language after the opening triple backticks:
javascript, typescript, bash, json, markdown, css, html, yaml, and many more.
Tabbed Code Blocks
Consecutive code blocks (no blank lines between them) are automatically rendered as a tabbed interface using Radix UI Tabs.cjs and mjs).
The tab labels “CJS” and “ESM” are the display names used for
cjs and mjs language tags. All other language identifiers show their name as-is.Custom Display Names
Any code tab can override its label using thedisplayName attribute:
React Components in Content
Because content files are MDX, you can embed React components directly in Markdown. Components must be imported at the top of the MDX file:Heading Anchors
Two plugins work together to make headings linkable:rehype-slug(~6.0.0) — generates a kebab-caseidattribute on every heading based on its text contentrehype-autolink-headings(~7.1.0) — injects an<a>anchor link inside each heading, pointing to itsid
Table of Contents
The@vcarl/remark-headings plugin (~0.1.0) extracts heading metadata from each page at build time. This data is consumed by layout components (such as Learn) to automatically generate a table of contents in the meta bar.
Reading Time
Theremark-reading-time plugin (~2.0.2) calculates an estimated reading time for each page based on word count. This is surfaced in the meta bar of layouts that include WithMetaBar.