HTML 转 Markdown
粘贴网页、邮件或 CMS 里的 HTML,得到干净的 Markdown,标题、列表、表格、代码和链接都保留,内容不会上传。
HTML
646 个字符20 行
# 野外记录快速上手
野外记录会把你的观察结果**离线**保存,联网后再同步。详细说明见[同步指南](/docs/sync)。

## 安装
```bash
npm install field-notes
```
## 选项
| 选项 | 默认值 |
| --------- | -----: |
| `sync` | true |
| `quality` | 0.8 |
- *没有网络*也能使用
- ~~手动导出~~不再需要
> 提示:出远门之前先同步一次。275 个字符23 行
能处理什么
- GitHub 风格 Markdown
- 表格、任务列表、删除线和围栏代码块都按 GitHub 的写法输出。
- 代码保留语言
<pre><code class="language-js">变成标注js的代码块,语法高亮用的 span 会去掉。- 识别表格
- HTML 表格变成 Markdown 表格,第一行都是加粗单元格时会当作表头。
- 链接和图片
- 链接和图片保留文字和标题,相对地址按网页地址补全。
- 去掉排版杂项
- 去掉脚本、样式、注释以及
<div>、<span>这类排版元素,保留其中的文字。 - 公式和脚注
- MathML 和 KaTeX 公式还原成
$…$形式的 TeX,脚注区变成 Markdown 脚注。
在代码里把 HTML 转成 Markdown
JavaScript
Turndown 可以在浏览器或 Node 里转换,加上 turndown-plugin-gfm 插件才能转换表格和删除线。
import TurndownService from "turndown";
const turndown = new TurndownService({ headingStyle: "atx", codeBlockStyle: "fenced" });
const markdown = turndown.turndown("<h1>Hello</h1><p>World</p>");
Python
from markdownify import markdownify
markdown = markdownify(html, heading_style="ATX")
Pandoc
pandoc page.html -f html -t gfm -o page.md
常见问题
怎么把 HTML 转成 Markdown?
把 HTML 粘贴到上面,复制右侧的 Markdown,或者下载为
.md 文件。转换在你的浏览器里完成。怎么把网页转成 Markdown?
选中网页上需要的部分,复制后粘贴到富文本转 Markdown。如果要从源代码转换,可以在浏览器的开发者工具里复制 HTML,连同网页地址一起粘贴到这里。
为什么链接和图片打不开?
HTML 里用的是
/docs/sync 这样的相对地址,只在原网站上有效。在「网页地址」里填写原网页地址,就会补全为完整的网址。Markdown 表达不了的 HTML 会怎样?
<div>、<span>、彩色文字这类没有 Markdown 写法的元素会去掉,只保留其中的文字。可以把结果当作干净的底稿,再在需要的地方补回格式。只想转换一个 HTML 表格可以吗?
可以。直接把
<table> 粘贴到这里,或者使用 HTML 表格转 Markdown,它还能处理从表格软件复制的内容。HTML 会上传吗?
不会。转换在你的浏览器里完成,HTML 不会离开你的设备。