piapia123
zh

Markdown 预览

文本处理

所有处理都在浏览器本地完成,数据不上传服务器

Markdown
预览

渲染在浏览器本地完成,内容不会上传。图片语法只显示替代文字,不会向你粘贴的地址发起请求。

左边写,右边实时出结果。渲染器只实现一个安全子集:先把所有 HTML 转义,再处理 Markdown 语法,所以你粘进来的脚本标签只会原样显示,不会被执行;链接里的 javascript: 协议会被拦下并标红。图片语法刻意不渲染成图片标签 —— 那会让浏览器去请求你粘贴的地址,等于把你正在看这份文档这件事告诉了对方服务器。

功能

  • 支持标题、段落、粗体、斜体、删除线、行内代码、围栏代码块、链接、有序与无序列表、引用、分隔线
  • 所有 HTML 先转义再解析,粘贴进来的标签只会作为文本显示
  • 链接过滤协议:javascript:、data: 等一律不生成可点击的锚点,而是标红显示原地址
  • 外部链接带 rel="noopener noreferrer",防反向 tabnabbing
  • 图片语法只显示替代文字,不向任何地址发起请求
  • 列表支持两级嵌套(缩进两格)
  • 下划线强调(_x_)刻意不解析,避免误伤 foo_bar_baz 与 __init__
  • 内容超过 20 万字符时截断预览并如实提示

使用方法

  1. 在左栏粘贴或输入 Markdown
  2. 右栏实时显示渲染结果
  3. 点「载入示例」查看一份覆盖全部支持语法的样例

常见问题

会支持表格、脚注、HTML 混排吗?
暂时不会。表格与脚注需要大得多的解析器,而 HTML 混排直接与「任何用户输入都先转义」这条底线冲突 —— 那等于允许用户注入标签。需要完整 CommonMark 的场合,建议在本地编辑器里预览。
为什么不解析 _斜体_?
因为代价太大:下划线在标识符里出现得太频繁,foo_bar_baz、__init__、snake_case 都会被解析成斜体。星号写法 *斜体* 没有这个问题,请用它。
图片为什么不显示?
显示图片意味着你的浏览器会去请求那个地址。对一份还没公开的文档来说,这等于把「我正在看它」告诉了对方服务器,与「内容不上传」的承诺冲突。所以只显示替代文字。
单个换行会被合并吗?
不会。段落内单个换行按换行处理(与 GitHub 评论区的行为一致),空行才分段。这样粘贴进来的排版不会在预览里被悄悄改掉。

相关工具