Markdown 预览工具 - 在线预览、转换 HTML 和纯文本
在线预览 Markdown 内容,并支持转换为 HTML 或纯文本,适合 README、接口文档、发布说明和技术文章整理。
功能特点
- 实时预览 Markdown 标题、列表、代码块和链接等常见语法
- 支持 Markdown 转 HTML,便于粘贴到 CMS、邮件或页面片段
- 支持转换为纯文本,适合提取文档内容或清理格式
- 按目标渲染器检查 GFM、CommonMark、表格、任务列表和原始 HTML 的兼容差异
- 适合在提交 README、文档和发布说明前快速检查排版
使用方法
- 粘贴 Markdown 文档、README 或发布说明内容
- 先确认目标平台的 Markdown 方言,再查看预览并按需转换为 HTML 或纯文本
- 检查相对链接、图片、原始 HTML 和代码块后,再复制到代码仓库、文档系统或博客
示例输入
README 标题与代码块
# API Client ## Install ```bash npm install example-sdk ```适合检查标题层级、代码语言标记和文档目录结构。
任务列表
- [x] Add API key - [ ] Add retry logic - [ ] Write integration tests适合整理发布清单、Issue 说明和项目协作文档。
链接与表格
| Status | Meaning | | --- | --- | | 200 | OK | [API docs](https://example.com/docs)适合预览表格、链接和 Markdown 渲染结果,提前发现格式错位。
相对链接与图片
[安装指南](./docs/install.md) 适合检查文档发布目录、相对路径、图片替代文本和目标平台的资源基准路径。
HTML 转义与链接协议
# Title <script>alert(1)</script> [docs](javascript:alert(1))当前辅助函数会转义原始 HTML,只把 http/https 链接转成 a 标签;javascript: 链接不会按链接语法转换。正式发布仍需完整净化流程。
示例输出
README 标题与代码块
渲染:一级标题 API Client、二级标题 Install,以及内容为 npm install example-sdk 的 Bash 代码块任务列表
渲染:1 个已完成任务和 2 个未完成任务链接与表格
渲染:Status/Meaning 两列表格,以及指向 https://example.com/docs 的 API docs 链接相对链接与图片
链接检查:./docs/install.md 和 ../images/architecture.png 会按发布文件位置解析,不能只在当前预览地址验证HTML 转义与链接协议
<script> 被转义为 <script>;javascript: 链接不会转换为 <a>
常见错误
- Markdown 标题层级影响目录和可访问性,不应只用加粗文本代替 h1/h2。
- 列表、引用、代码块和表格依赖空行与缩进,不同渲染器对边界语法可能有差异。
- Markdown 转 HTML 后仍需处理外部链接、原始 HTML 和用户输入的安全过滤。
- GFM、CommonMark 和各平台扩展语法并不完全一致。
- 把用户输入的 Markdown 直接渲染成 HTML 可能放大 javascript: 链接、原始 HTML 或不可信图片的风险。
适用场景
- README 编写预览
- API 文档排版
- 发布说明整理
- 任务清单和技术笔记
实操检查
核对 Markdown 基础渲染
固定输入:# Title Hello **world** - one - two;步骤:粘贴输入,点击“转换 HTML”,同时观察右侧预览;预期结果:输出包含 <h1>Title</h1>、<strong>world</strong>、<ul> 以及两个 <li>;失败判断:标题被当作普通段落、粗体标记未转换,或两个列表项没有被同一个 ul 包住。
核对纯文本和原始 HTML 转义
固定输入:# Title Hello **world**;步骤:点击“纯文本”,记录结果;再输入 <script>alert(1)</script> 并点击“转换 HTML”;预期结果:纯文本为 Title Hello world,脚本输入输出为 <p><script>alert(1)</script></p>;失败判断:纯文本残留 Markdown 标记,或脚本字符串出现在未转义的标签中。
页面专属核验
使用前与操作中
- 当前本地渲染器支持 1–3 级标题、段落、`-` 无序列表、粗体、斜体、行内代码和 `https://` 链接,不是完整 CommonMark/GFM 解析器。
- HTML 输出会先转义原始 HTML,预览使用生成结果;表格、任务列表、围栏代码块、图片和非 HTTPS 链接等目标平台语法必须按实际渲染器另行检查。
- 纯文本转换只移除当前实现识别的标题、强调、行内代码、链接和列表标记;转换/预览是排版结果,不会验证链接可达性、文档事实或发布平台业务规则。
结果出来后
- `# Title Hello **world**` 转 HTML 是否包含 `<h1>Title</h1>` 和 `<strong>world</strong>`,转纯文本是否得到 `Title Hello world`?
- 文档使用表格、任务列表、代码围栏、图片或原始 HTML 时,输出是否与目标仓库、CMS 或博客的 Markdown 方言一致,而不是只看本页预览?
- 链接、代码块和 HTML 内容是否已经检查目标 URL、复制后的上下文与安全策略,并确认原始标签不会被当作可执行 HTML?
相关工具
工具边界
- 预览结果取决于当前渲染器,不保证与 GitHub、GitLab、静态站点生成器完全一致。
- Markdown 不是安全过滤器,输出 HTML 前仍需做 XSS 和链接策略检查。
- 超长文档和复杂表格可能受浏览器渲染性能影响。
与相似工具的区别
- 代码格式化:Markdown 面向文档语义与预览;代码格式化器面向编程语言语法,不能保证 Markdown 渲染兼容性。
安全与兼容性
- 编辑和预览在浏览器执行;粘贴的远程图片链接仍可能在渲染时向第三方暴露访问请求。
- 发布用户提供的 Markdown 前必须净化生成的 HTML,并限制 javascript: 链接、内联 HTML 与不可信媒体。
下一步排查
- 先确认目标平台的 Markdown 方言,再检查标题、列表、代码块、相对链接和图片。
- 需要发布 HTML 时,用代码格式化和安全过滤流程复核输出。
- 文档多人协作时用文本对比工具检查版本差异。
常见问题
为什么本地 Markdown 和 GitHub 显示不同?
平台使用的解析器和扩展不同,尤其是表格、任务列表、脚注、HTML 和代码高亮语法。
Markdown 转 HTML 后可以直接发布吗?
还应过滤不可信 HTML、检查链接和图片来源,并根据目标站点的 CSS 和安全策略验证。
相对链接为什么在预览中失效?
预览页、仓库目录和最终站点的基准路径可能不同;检查链接相对的文件位置、部署根路径和目标平台是否重写资源地址。