Markdown 预览
将 Markdown 文本实时渲染为 HTML 进行预览
Markdown
预览
预览将显示在此处……
预览将显示在此处……
什么是 Markdown?
Markdown 是 John Gruber 于 2004 年创建的一种轻量级标记语言。它使用星号、井号、短横线等纯文本格式符号来表示文档结构:标题、加粗、斜体、列表、链接和代码块。Markdown 预览工具将这些纯文本解析并渲染为格式化的 HTML,让您在发布前就能准确预览文档的最终呈现效果。原始 Markdown 规范记录在 Gruber 的 Daring Fireball 文档中,此后该格式已被正式标准化为 CommonMark。
Markdown 已成为开发者文档、README 文件、静态站点生成器(Jekyll、Hugo、Astro)、Wiki 和知识库的默认写作格式。GitHub、GitLab、Bitbucket、Stack Overflow、Reddit 和 Notion 均原生支持 Markdown。由于源文件是纯文本,Markdown 文件可以轻松通过 Git 进行版本控制,跨分支比对差异,并在文件不重叠的部分无冲突地合并。
Markdown 预览工具会实时解析您的输入并转换为 HTML。这样您就能在提交文件或发布页面前及时发现格式错误、失效链接和意外的嵌套问题。本预览工具完全在浏览器中运行,无需服务器往返,因此您可以处理私密或敏感文档而无需将内容通过网络传输。
为什么使用在线 Markdown 预览工具?
在没有预览功能的纯文本编辑器中编写 Markdown,意味着您只能凭猜测判断输出结果。实时预览工具能即时消除这种信息盲区。
Markdown 预览使用场景
Markdown 语法参考
下表列出了常用 Markdown 语法对应的渲染效果及 HTML 标签。涵盖了几乎所有 Markdown 解析器都支持的 CommonMark 基础语法。
| Markdown | 渲染效果 | HTML 标签 |
|---|---|---|
| # Heading | Heading 1 | <h1> |
| ## Heading | Heading 2 | <h2> |
| **bold** | Bold text | <strong> |
| *italic* | Italic text | <em> |
| ~~strike~~ | Strikethrough | <del> |
| `code` | Inline code | <code> |
| ```lang\n...\n``` | Fenced code block | <pre><code> |
| - item | Unordered list | <ul><li> |
| 1. item | Ordered list | <ol><li> |
| [text](url) | Hyperlink | <a href> |
| > quote | Blockquote | <blockquote> |
| --- | Horizontal rule | <hr> |
Markdown 变体对比
不同平台在原始 Markdown 规范的基础上添加了额外功能。了解您所针对的变体,有助于避免在其他渲染器中无声失效的语法。
代码示例:以编程方式渲染 Markdown
当您需要在应用程序中而非浏览器工具中渲染 Markdown 时,可使用以下库。每个示例均将 Markdown 字符串转换为 HTML 字符串。
import { marked } from 'marked'
const md = '# Hello\n\nThis is **Markdown**.'
const html = marked(md)
// → "<h1>Hello</h1>\n<p>This is <strong>Markdown</strong>.</p>\n"
// With options
marked.setOptions({ gfm: true, breaks: true })
const gfmHtml = marked('Line one\nLine two')
// → "<p>Line one<br>Line two</p>\n"import markdown
md = '# Hello\n\nThis is **Markdown**.'
html = markdown.markdown(md)
# → '<h1>Hello</h1>\n<p>This is <strong>Markdown</strong>.</p>'
# With extensions
html = markdown.markdown(md, extensions=['fenced_code', 'tables'])
# Convert a file
with open('README.md') as f:
html = markdown.markdown(f.read(), extensions=['extra'])package main
import (
"bytes"
"fmt"
"github.com/yuin/goldmark"
)
func main() {
source := []byte("# Hello\n\nThis is **Markdown**.")
var buf bytes.Buffer
if err := goldmark.Convert(source, &buf); err != nil {
panic(err)
}
fmt.Println(buf.String())
// → <h1>Hello</h1>
// → <p>This is <strong>Markdown</strong>.</p>
}# Convert Markdown file to HTML pandoc README.md -f markdown -t html -o output.html # Convert with GitHub Flavored Markdown pandoc README.md -f gfm -t html --standalone -o output.html # Pipe from stdin echo '# Hello **world**' | pandoc -f markdown -t html # → <h1>Hello <strong>world</strong></h1>