跳到正文

预览Markdown

私密处理——您的文件绝不会被存储

383个字符 · 20行

预览

使用方法

1

编写或粘贴

也可以拖入.md文件。预览随输入实时更新。

2

查看最终效果

表格、任务列表、删除线、脚注和带颜色的围栏代码——GitHub风格,而不是普通的CommonMark。

3

带走结果

复制HTML,或保存为一个独立网页,在任何地方都能打开,打印效果也很好。

用的是哪种Markdown,以及为什么要净化HTML

Markdown是一个家族,而不是单一规范,这里采用的是被广泛认可的GitHub风格语法集:标题、强调、列表、链接、图片、引用块、表格、带语法高亮的围栏代码块、任务列表、删除线、脚注和自动链接。这正是几乎所有人会写、README里会出现的内容。较少见的方言以及特定网站添加的自定义插件——提示块、短代码、模板语法——不支持,因此专为某个生成器编写的文档,可能会有部分语法按原文显示。

原始HTML会被渲染,但会先经过净化,这是值得理解的部分。Markdown有意允许在其中嵌入HTML,这意味着任何来源的Markdown文件都可能包含script标签、内联事件处理程序、iframe或javascript:链接。原样渲染,就会仅仅因为您粘贴了陌生人的README来看看,就在您的会话中运行他们的代码。所有可执行的内容都会在显示之前被去除,所以格式得以保留,代码则不会保留。

这是一条通用经验,而不只是本页面的一个细节。任何渲染用户提交的Markdown的系统——评论框、wiki、客服工单——只要不做净化,就等于在渲染用户提交的HTML,而“这只是Markdown”正是这个问题被忽视的原因。转换Markdown并不构成安全边界;净化那一步才是。

您看到的是内容的预览,而不是某个特定网站的效果。GitHub、GitLab和文档生成器各有自己的样式表、标题锚点和扩展,所以同一个文件在各处看起来都不一样——这里展示的结构是它们共同认可的部分。本工具不获取任何外部内容,所以通过网址引用的图片只有在对方服务器允许时才能加载,而指向仓库中文件的相对路径则根本无法解析。

如果您需要的是别的

如果您正在写README,就在它最终所在的地方预览。GitHub自带的编辑器会用完全一致的渲染、扩展和锚点来预览,GitHub CLI——gh markdown-preview——则能在本地用同一个渲染器预览。对于文档,生成器本身(MkDocs、Docusaurus、Hugo)都有实时刷新的预览,展示真实的样式和导航,也就是读者将看到的样子。

如果是编辑而不是检查,带实时预览窗格的Markdown编辑器——Obsidian、Typora、带内置预览的VS Code——比每次粘贴到网页里更好用,因为预览会随输入更新,文件也留在原处。本页面适合阅读别人的Markdown,或快速看一眼别人发给您的东西。

常见问题

我的文档会被存储吗?

不会。不存储任何内容,也不保留任何内容,页面加载后即使关掉Wi-Fi也能使用。笔记、草稿和内部文档,恰恰是人们会不假思索粘贴到预览工具里的东西。

这是哪种风格的Markdown?

GitHub风格,因为如今“Markdown”在实际中指的就是它。表格、任务列表、删除线、自动链接、脚注和带语法颜色的围栏代码块都能正常显示。普通的CommonMark预览这些都不支持,所以在GitHub上显示正常的README,在那些预览里看起来是乱的。

可以在其中使用原始HTML吗?

可以,并且会在显示前经过净化。Markdown允许原始HTML,本预览也会渲染它——但任何可能运行脚本的内容都会先被去除,因为粘贴别人的README绝不应执行他们的代码。格式、链接和图片都会保留。

会高亮代码块吗?

会,带语言检测,支持README中常见的各种语言——与GitHub风格渲染器使用的是同一个高亮工具。在开头的围栏符号后写上语言名,代码就会按该语言着色。

能转成PDF吗?

我们的[Markdown转PDF](markdown-to-pdf)工具正好能做到,分页和排版都很规范。本页面用于阅读和检查;那个工具用于生成文档。

Markdown中的图片怎么办?

通过网址引用的图片会正常加载。通过相对路径引用的图片——"![](img/chart.png)"——无法读取,因为网页无权访问您文件所在的文件夹。这些图片会显示为一个标注了缺失文件名的占位符,而不是一个破损图标。

小贴士: Markdown中的原始HTML会被渲染,但会先经过净化——脚本、事件处理程序以及任何可执行的内容都会被去除,因此粘贴别人的README不会执行他们的代码。支持GitHub风格Markdown;较少见的方言和自定义插件不支持。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。