用 MaoXian 网摘保存网络文章到 Obsidian,使用『本地程序』

目录

前言

本文以图文的形式,详细地介绍如何使用 MaoXian 这款浏览器扩展,把网络上的文章以 Markdown 的格式保存到 Obsidian 的库里面。本教程特别适用于喜欢本地存储大于云存储的 Obsidian 用户。

注:本文以 Linux 系统为对接环境,不同的操作系统的对接略有差异,但整个对接思路和流程是一致的,请参照各个对接步骤灵活变通。

MaoXian 网摘简介

MaoXian 是一个简洁的网摘扩展,它专注于一个核心功能:把网页上的信息保存到你的本地电脑上,以避免网站挂了,网址失效,图片失效等问题。它支持把网页上的文章以 Markdown 的格式裁剪下来,并且同时把文章对应的图片下载下来

MaoXian 是一款纯绿色的开源软件,你不需要创建任何帐号即可使用。并且它不会收集任何个人信息,你可以在这里查看它的隐私说明。

MaoXian 网摘优势

对接思路

由于 Obsidian 和 MaoXian 的存储都是用本地文件夹 和 Markdown 文件,而且 Obsidian 会自动识别库文件夹里面的 Markdown 文件。所以只要把 MaoXian 存储位置设置成 Obsidian 库里面的某个文件夹就可以把它们对接起来

两种对接方法的选择

如果你的浏览器安装了一个管理下载的扩展,或者是你的浏览器本身就开发了特有的下载管理功能,那么当 MaoXian 叫浏览器去下载某个文件的时候,这个下载请求可能会被这些下载功能拦截到,并且要保存的文件名也可能会被改掉。这会导致 MaoXian 根本无法使用浏览器来下载文件。

你可以到扩展的 设置 > 浏览器 页面,点击 『测试』按钮,来测试浏览器能否正常处理 MaoXian 发出的下载请求。如下图,表明你可使用『方法A』来对接 Obsidian。

测试下载请求

如果你测试后,发现下载请求被拦截,那么你可以找出到底是哪个扩展拦截的,还是浏览器本身拦截的。你可以选择换掉它,或者向它的开发者反馈这个问题。如果你实在无法避免这种下载冲突, 才需要使用『本地程序』来绕过浏览器的下载功能,即:使用本文中的『方法B』来对接 Obsidian

对接流程

【注意】本页面的对接流程只介绍方法B (选用『本地程序』作为存储操作的处理程序,并通过修改『本地程序』的配置文件来修改 MaoXian 的存储位置)

如果你需要使用 方法A (选用『浏览器』作为存储操作的处理程序,并通过创建软链接(传送门)的方式修改 MaoXian 的存储位置)。请点击『这里

(1)安装和配置 Obsidian

如果你还没有安装 Obsidian,可到 官网 下载软件包并安装。然后确保你已经有一个 Obsidian 库,然后在这个库里面创建一个用于保存网页文章的文件夹。在本文中我们的 Obsidian 库的名字叫 ob-notes,这个专门用于保存网页文章的文件夹叫 web-clippings ,为了方便,我们称其为 Obsidian 的网摘入口,配置好后,如下图:

Obsidian 库与网摘入口

接下来我们需要知道这个网摘入口的文件路径,你可以右击它,点击『在系统资源管理器中显示」后,Obsidian 会打开文件管理器,然后通过点击,进入到『网摘入口文件夹』内部,此时文件管理器上的文件路径就是我们要的路径。如下图:

在系统资源管理器中显示

通过点击,进入到网摘入口文件夹内部,如下图,红框选中的部分,就是网摘入口的路径:

网摘入口在文件管理器中的路径

此时我们得到了两个文件夹的路径:

注: Windows 系统的文件路径是以盘符开头和以\分隔的,和上方很不一样。Windows 用户会得到类似 D:\Users\jack\Documents\ob-notes\web-clippings 的路径,下文不再赘述。

(2)安装 MaoXian 网摘

Firefox (火狐)浏览器,请到 火狐扩展中心 进行安装。

Chromium (谷歌浏览器社区版) 或 Chrome (谷歌浏览器)或其他以 Chromium 为核心开发的浏览器 (如: Edge 浏览器)。由于 MaoXian 网摘这款扩展没有上架谷歌浏览器商店,所以需要手动安装它。安装方式请看 通过下载扩展文件的方式来安装 MaoXian

安装成功后,它会自动弹出一个欢迎页面,由于我们使用的『本地程序』,页面提示两步操作我们都不需要做,直接关掉该页面。

(3)简单配置 MaoXian 网摘

为了更好地把重心放在对接上,此时,我们只进行一些基础配置。点击浏览器工具栏上的 MaoXian 图标,再进入 设置 > 存储设置

参考下图:

MaoXian 基础设置

(4) 安装并配置『本地程序』

请按照 本地程序文档 进行安装和配置,在配置那一步,把存储目录设置为 Obsidian 库的路径(你已经在本教程的步骤(1)中得到这个路径)

以我在步骤(1)中拿到的 Obsidian 库路径 /home/user/Documents/ob-notes 为例,我的 config.yaml 文件的内容如下:

environment: 'production'
data_dir: '/home/user/Documents/ob-notes'
msg_handler: 'default'

对接上后,启用它,状态如下图:

已对接上的『本地程序』

(5)选用『本地程序』来保存文件

我们在步骤(3)中,暂时没有设置『本地程序』为处理程序。现在『本地程序』已经对接上并且启用了,就可以把存储设置中的处理程序选为『本地程序』了,如下:

选择『本地程序』作为处理程序

由于我们在步骤(3)中,把 MaoXian 的存储根目录配置成 web-clippings ,所以当 MaoXian 扩展请求『本地程序』保存文件时,这些文件就会存储在 /home/user/Documents/ob-notes/web-clippings 这个目录下。即保存在了 Obsidian 的网摘入口文件夹里面。

(6)裁剪测试

由于 Obsidian 会自动识别 Markdown 文件,所以能在 Obsidian 上直接看到由 MaoXian 保存过来的 Markdown 文件。你现在就可以新打开一个网页裁剪试试,看能否在 Obsidian 上看到裁剪下来的文件 ,你将会看到一个新的 markdown 文件,叫 index

下图是我的测试结果,在表单那一步,我填写了分类 test

第一次裁剪测试

在文件系统上查看,MaoXian 默认的存储结构,如下图:

MaoXian 默认的存储结构

到这里整个对接流程已经结束。我们已经把 MaoXian 网摘和 Obsidian 对接了起来,并完成对其的测试,也对 MaoXian 默认的存储结构有了一个初步的了解。你可以就此打住,或者去细配置 MaoXian 的存储路径、Markdown 模板 和 Markdown 格式。若要接着配置,请查看下一章节。

配置 MaoXian 的存储路径

由于每个人的需求都不一样,所以很难列举出所有不同的设置。在本章节里,我们会用一个例子,作为参考,读者可灵活变通,配置出自己想要的存储结构。

MaoXian 支持你很灵活地配置各种类型文件的存放路径,只要这些路径都以『MaoXian 的根目录』打头就行,即所有裁剪下来的文件都必须存储在『根目录』下。

从存储设置页面,你可以了解到 MaoXian 的默认存储路径是这样构成的:

下载路径 / 根目录 / 分类目录 / 裁剪目录 / 文件名

其中:

注: 许多路径相关的设置项都允许你使用变量,你可以点击相关的『可用变量』进行查看,利用变量和存储路径各部分的组合,可以很灵活地配置你的存储结构,但有一点要提醒读者的是:你配置的存储结构要避免发生文件覆盖的情况

我们将配置下方的存储结构

~/Documents/ob-notes/web-clippings $ tree
.
└── read-later
    └── 20230529_测试博客功能_1685369680
        ├── assets
        │   └── 5f05cab82dc67034430a15a011750962.png
        └── index.md

各部分解释如下:

该存储结构的特点为:

配置默认分类

不管你要配置的存储路径包不包含 分类目录,配置『默认分类』都很有必要。我们推荐你都配置它,

下图中,我们把它的值配置为 read-later

根目录和默认分类

配置裁剪目录

裁剪目录配置为 $YYYY$MM$DD_$TITLE_$TIME-INTSEC,如下图:

裁剪目录

配置主文件

主文件保持不变,使用默认值,如下图:

主文件

配置资源文件

资源文件(即图片文件),修改文件名为 $MD5URL$EXT 因为我们在『裁剪目录』上已经加了时间戳,所以这里去掉。如下图:

资源文件

配置内嵌的网页文件

我们的保存格式为 Markdown, MaoXian 会自动把这些内嵌网页文件嵌入到主 Md 文件里,所以该项不需要配置,保持默认值就好。

配置元信息文件

这个文件记录着本次裁剪的元信息,示例内容如下,如果你确定以后都用不到这些元信息,则可以不保存该文件。保存该文件的好处是:方便其他程序识别和处理这些裁剪下来的文件。

{
  "version": "2.0",
  "clipId": "1685345270",
  "format": "md",
  "title": "测试博客功能",
  "link": "http://dev.pc:3000/blog/other/2016/01/01/test-blog-feature.html",
  "category": "test",
  "tags": [
    "标签A",
    "标签B"
  ],
  "created_at": "2023-05-29 15:27:50",
  "mainPath": "index.md",
  "paths": [
    "index.json",
    "a-title_测试博客功能",
    "assets/1685345270-5f05cab82dc67034430a15a011750962.png",
    "index.md"
  ]
}

不保存元信息文件

配置标题文件

这个文件只是为了在文件系统里起标识作用,如果你的 markdown 文件的存储路径,将包含标题信息。则建议不要保存该文件。如图:

不保存标题文件

到此,我们的示例存储结构就配置好了,希望你可成功配置你的存储结构 :)

配置 Markdown 模板与格式

你可以在 设置页面 > Markdown 里设置 Markdown 的模板与格式。由于每个人的需求不同,我个人只配置了 YAML Front Matter。下面是我的 Markdown 模板,供参考:

---
标题: {{title}}{{^title}}无标题{{/title}}
源网址: {{url}}
时间: {{createdAt}}
分类: {{category}}{{^category}}未分类{{/category}}
标签: {{#tags}}
 - {{.}}{{/tags}}{{^tags}}
 - 无{{/tags}}
---

{{content}}

关于 Markdown 格式,请自行配置,设置页面已经展示得很清楚。