惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
博客园_首页
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
美团技术团队
小众软件
小众软件
Jina AI
Jina AI
S
SegmentFault 最新的问题
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

Streamdown Documentation

Configuration FAQ Getting Started Introduction Security Animation Carets Code Blocks Components Interactivity Internationalization Link Safety Memoization Migrate from react-markdown Styling Unterminated Block Parsing Typography Usage @streamdown/cjk @streamdown/code Built-in Plugins @streamdown/math @streamdown/mermaid Custom renderers
GitHub Flavored Markdown
Vercel · 2026-04-11 · via Streamdown Documentation

Extended Markdown features including tables, task lists, strikethrough, and autolinks.

Streamdown includes full support for GitHub Flavored Markdown (GFM) through remark-gfm. This extends standard Markdown with powerful features commonly used on GitHub and other modern Markdown platforms.

Create formatted tables with alignment options:

| Feature | Supported | Notes |
|---------|-----------|-------|
| Tables | ✅ | Full support |
| Task Lists | ✅ | Interactive |
| Strikethrough | ✅ | ~~Like this~~ |

Renders as:

FeatureSupportedNotes
TablesFull support
Task ListsInteractive
StrikethroughLike this

Column Alignment

Control text alignment using colons in the separator row:

| Left | Center | Right |
|:-----|:------:|------:|
| A | B | C |
| 1 | 2 | 3 |

Result:

Alignment Syntax:

  • :--- - Left-aligned (default)
  • :---: - Center-aligned
  • ---: - Right-aligned

Table Features

Streamdown enhances tables with:

  • Responsive scrolling - Tables scroll horizontally on narrow screens
  • Download button - Export tables as CSV, TSV, or Markdown
  • Hover states - Row highlighting for better readability
  • Proper spacing - Optimized cell padding

Complex Tables

Tables support inline formatting:

| Name | Description | Status |
|------|-------------|--------|
| **Streamdown** | A `react-markdown` replacement | ✅ Active |
| *Feature X* | Under development | 🚧 WIP |
| ~~Old Package~~ | Deprecated | ❌ Removed |

Disabling Table Controls

You can disable the table download button:

<Streamdown controls={{ table: false }}>
  {markdown}
</Streamdown>

Create interactive todo lists:

- [x] Setup project structure
- [x] Install dependencies
- [ ] Write documentation
- [ ] Deploy to production

Renders as:

  • Setup project structure
  • Install dependencies
  • Write documentation
  • Deploy to production

Task List Syntax

  • - [ ] - Unchecked task (whitespace in brackets)
  • - [x] - Checked task (lowercase x)
  • - [X] - Also checked (uppercase X)

Nested Task Lists

Task lists can be nested:

- [ ] Phase 1: Setup
  - [x] Initialize repository
  - [x] Configure build tools
  - [ ] Setup CI/CD
- [ ] Phase 2: Development
  - [ ] Implement features
  - [ ] Write tests

Task Lists in Different Contexts

Task lists work in various contexts:

## Shopping List
- [ ] Milk
- [ ] Eggs
- [x] Bread

> **Note**: Here's a quote with tasks:
> - [x] Complete quote formatting
> - [ ] Add more examples

Mark text as deleted or outdated:

~~This approach is deprecated~~

Use this **new method** instead.

Result: This approach is deprecated

Multiple Words

Strikethrough works across multiple words:

~~This entire sentence is struck through.~~

In Context

**Before:** ~~500ms response time~~
**After:** 50ms response time ⚡

Result: Before: 500ms response time After: 50ms response time ⚡

URLs and email addresses are automatically converted to links:

Visit https://streamdown.ai for more info.

Contact us at hello@streamdown.ai

No need for explicit link syntax:

Check out github.com/vercel/streamdown

URL Protocols

Autolinks work with common protocols:

  • http:// and https://
  • ftp://
  • mailto:
https://example.com
ftp://files.example.com
mailto:hello@example.com

In standard Markdown (and GFM), single newlines within a paragraph are treated as soft breaks and rendered as spaces — the lines are combined into one paragraph:

This is line one
This is line two
This is line three

This renders as a single paragraph: "This is line one This is line two This is line three".

To force a visible line break, use one of these approaches:

Two Trailing Spaces (Hard Break)

Add two or more spaces at the end of a line:

Line one··
Line two··
Line three

(where ·· represents two spaces)

Backslash (Hard Break)

Use a trailing backslash:

Line one\
Line two\
Line three

If you want single newlines to always render as <br> without trailing spaces, add the remark-breaks plugin:

import remarkBreaks from "remark-breaks";
import { Streamdown, defaultRemarkPlugins } from "streamdown";

<Streamdown
  remarkPlugins={[...Object.values(defaultRemarkPlugins), remarkBreaks]}
>
  {markdown}
</Streamdown>