A tiny, fast, deterministic Markdown parser and renderer for blogs and documentation.
- 4.9 KB gzip parser
- 6.7 KB gzip HTML renderer
- 6.7 KB gzip React adapter
- 6.7 KB gzip Octane adapter
- zero runtime dependencies
- serializable AST
- safe defaults for raw HTML and executable URLs
- optional docs extensions and external syntax highlighting
pnpm add @tanstack/markdownimport { renderHtml } from '@tanstack/markdown/html'
const html = renderHtml('# Fast by default')import { Markdown } from '@tanstack/markdown/react'
export function Article({ source }: { source: string }) {
return <Markdown>{source}</Markdown>
}import { Markdown } from '@tanstack/markdown/octane'
export function Article({ source }: { source: string }) @{
<Markdown>{source}</Markdown>
}
TanStack Markdown targets controlled technical content. It supports the Markdown used by blogs and docs, then spends its remaining complexity budget on deterministic output, renderer parity, malformed-input resilience, and small entry points. It is intentionally not a complete CommonMark, GFM, MDX, or general content-processing implementation.
- Overview
- Installation
- Quick Start
- Comparison
- Syntax Profile
- React Guide
- Octane Guide
- Syntax Highlighting
- Extensions
- API Reference
- Architecture
pnpm run verifyTo include downstream content in the corpus gate:
MARKDOWN_CORPUS_DIRS=../tanstack.com/src/blog:../tanstack.com/docs \
pnpm run test:corpusTo audit practical compatibility across local TanStack repositories and a pinned external docs/blog sample:
pnpm run corpus:audit:tanstack
pnpm run corpus:audit:externalGenerated reports: