要将网页保存为 Markdown,请在 Chrome 或 Edge 中按 Ctrl+S,保存类型选择“网页,全部”,然后将 HTML 文件添加到 MD Factory。应用会在你的电脑上转换该网页,并保存一个 Markdown 文件,网页中的图片就放在它旁边。
本指南适用于你自己留存的网页:文章、文档、菜谱、参考页面。如果需要在脚本或构建流程中转换 HTML,请直接跳到最后一节。
在 Chrome 或 Edge 中保存网页
在 Chrome 中按 Ctrl+S,或打开“更多”菜单,依次选择“投放、保存和分享”、“将页面另存为”。具体步骤见 Chrome 帮助.
在 Edge 中按 Ctrl+S。该快捷键列在 Edge 键盘快捷方式.
中。在“保存类型”列表中选择“网页,全部”。两种浏览器都提供三种格式,MD Factory 对它们的处理各不相同:
| 保存类型 | 浏览器保存的内容 | 在 MD Factory 中得到的结果 |
|---|---|---|
| 网页,全部 | 一个 HTML 文件,以及一个同名并以 _files 结尾的文件夹,其中存放图片 | 文字和图片 |
| 网页,仅 HTML | 只有 HTML 文件;图片仍留在网站上 | 只有文字,没有图片,并标记为需要检查 |
| 网页,单个文件 | 一个 MHTML 文件 | 无:MD Factory 不打开 MHTML 文件,会将其列为已跳过 |
转换保存的网页
- 打开 MD Factory。
- 点击添加文件,选择保存的 HTML 文件,或将它拖到窗口中。
- 转换会立即开始。当该文件所在行显示结果后,双击结果路径即可打开 Markdown 文件。
请添加 HTML 文件,而不是它所在的文件夹。如果添加文件夹,MD Factory 也会处理 _files 文件夹:其中的脚本、样式表和图片会显示为已跳过,里面的任何 HTML 文件则会作为单独的笔记转换。
Markdown 文件沿用网页的名称,并保存在网页旁边。其中用到的图片会放在旁边的一个文件夹里:
Saved pages/
Sourdough bread.html
Sourdough bread_files/
Sourdough bread.md
Sourdough bread_images/
保存的网页及其 _files 文件夹保持原样。如果移动 Markdown 文件,请把它的 _images 文件夹一起移动:Markdown 会链接到该文件夹中的图片。
哪些内容会保留到 Markdown 中
| 网页上 | Markdown 中 |
|---|---|
| 标题 | 同级标题 |
| 段落、列表和引用 | 保留,包括粗体和斜体文字 |
| 代码块和行内代码 | 保留为代码 |
| 表格 | Markdown 表格 |
| 随网页保存的图片 | 以 PNG 文件复制到图片文件夹 |
| 链接 | 保留,处理方式见下文 |
| 脚本、样式和嵌入框架,例如来自其他网站的视频播放器 | 移除 |
| 网站菜单、页眉、页脚、侧边栏和 Cookie 提示 | 保留为普通文字和链接 |
| 浏览器标签页中的标题 | 不包含 |
如果表格有表头单元格,其第一行会成为 Markdown 表格的表头。否则,应用会添加带编号的列标题。合并单元格会铺开到整个网格中:值保留在第一个单元格,被它覆盖的其他单元格为空。
哪些图片会保留
MD Factory 从不从互联网下载任何内容。只有文件在你的电脑上的图片才会进入 Markdown:
- “网页,全部”创建的 _files 文件夹中的图片;
- 网页周围其他文件夹中的图片,包括上级文件夹;
- 嵌入在 HTML 代码本身中的图片。
仅存在于网站上的图片会被省略,文件会被标记为需要检查。SVG 图片不受支持,同样会被省略。
链接如何处理
- 完整的网址、电子邮件链接和电话链接保持原样。
- 相对链接,例如指向同一网站其他页面的链接,如果保存的网页记录了其原始地址,就会变成完整的网址。否则它们保持原样,只有当被链接的文件相对于 Markdown 文件的位置不变时才能使用。
- 指向同一网页中某个部分的链接仍然有效,因为这些部分在 Markdown 中保留了锚点。
- 点击时运行脚本的链接,即以 javascript: 开头的链接,会变成纯文本。
整理笔记
MD Factory 会转换网页的整个正文。它不会猜测哪一部分是文章,因此顶部会有网站菜单,底部会有页脚、相关链接和 Cookie 提示。请删除不需要的内容。
浏览器标签页中的标题不会包含在内。如果文章本身缺少标题,请在顶部添加一个。
将网页的地址和保存日期写在笔记的第一行。这样以后可以找到原文,引用时也能注明出处。
如果你在 Obsidian 中记笔记,我们的 将文档导入 Obsidian 的指南 介绍了如何把文件转换后放进库中,并保持图片的链接。
如果网页被标记为需要检查
需要检查表示 Markdown 文件已保存,但网页上有些内容没有转换过来。队列处理完毕后,点击该文件所在行中的状态即可查看提示信息。
| 提示信息 | 常见原因 |
|---|---|
| 外部图像或资源被跳过。 | 图片只在网站上,例如以“网页,仅 HTML”保存之后。 |
| 无法导出图像。 | 网页指向的图片文件在文件夹中不存在。 |
| 不支持图像格式。 | 图片的格式应用无法转换,例如 SVG。 |
| 某些文档内容无法用Markdown表示。 | 网页中有嵌入框架,例如来自其他网站的视频播放器,它已被移除。 |
| 无法保留本地链接目标。 | 指向本网站其他页面的链接无法对应到网址或已保存的文件。链接文字会保留,但不带链接。 |
| 推断出文本编码。检查特殊字符。 | 网页不是以 UTF-8 保存的,因此应用需要推断其编码。请检查带重音符号的字母和符号。 |
在代码中转换 HTML
如果需要在脚本、构建步骤或爬虫中将 HTML 转为 Markdown,MD Factory 并不合适:它通过窗口操作,没有命令行或编程接口。请改用库。 Turndown 可在 JavaScript 中把 HTML 转为 Markdown,可用于 Node.js 或浏览器,采用 MIT 许可证。 html2text 在 Python 中实现同样的功能,采用 GPL-3.0 许可证。 Pandoc 是一款命令行转换器,可在多种文档格式之间转换,包括 HTML 和 Markdown。无论使用哪一个,转换规则以及图片和链接的处理都需要你自己来设置。
pandoc -f html -t gfm page.html -o page.md