要将网页保存为 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 文件,会将其列为已跳过

转换保存的网页

  1. 打开 MD Factory。
  2. 点击添加文件,选择保存的 HTML 文件,或将它拖到窗口中。
  3. 转换会立即开始。当该文件所在行显示结果后,双击结果路径即可打开 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