文档 - MWeb 文档库详细介绍


此文章介绍文档库的详细使用,如果你没看过 MWeb 的基本使用,建议你先去看一下。要注意的是,本文以下的内容几乎都是关于 macOS 上的 MWeb 的,iPadOS/iOS 上的文档库的使用比较简单,主要是点击底部的 “+” 按钮进行新增分类和文档,长按列表中的分类或文档进行收藏、移动、重命名和删除等操作。

文档库存储位置

MWeb 的文档库可以存储在一个文件夹中,或者是存储在 iCloud 中(同步使用的是 CloudKit 技术)。在 macOS 版 MWeb 中,你可以在 偏好设置 - 文档库 & 备份 中查看文档库存储的位置;在 iPadOS/iOS 版的 MWeb 中,你可以在 设置页 - 文档库 中查看文档库的存储位置。要注意的是,在 iPadOS/iOS 下,如果你的文档库不是存储在 iCloud 中的话,删除 MWeb app 时,文档库也会被删除!所以,建议在 iPadOS/iOS 上使用文档库,一定要把文档库设置为存储到 iCloud 中。如果你想在多个设备进行同步,也请把文档库存储在 iCloud 中。

文档库的结构、备份和从备份中恢复

一般情况下,不需要了解文档库的结构,如果你是在 macOS 下使用 MWeb,并且想对文档库备份或者从备份中恢复,那么了解文档库的结构是很有必要的。在 macOS 下,当文档库存储在文件夹中时,可以直接查看文档库所在的文件夹来了解文档库的结构。当文档库存储在 iCloud 中时,MWeb 会使用 CloudKit 技术完整的把整个文档库都同步到本地的 MWeb 的一个私有文件夹中,位置就在:~/Library/Containers/com.coderforart.MWeb3/Data/Library/Application Support/MWebLibrary。如果你使用的是 MWeb 标准版,请把上面的 com.coderforart.MWeb3 换成 com.coderforart.iOS.MWeb

文档库的文件夹的结构,是由 docs 文件夹,mainlib.db 文件和 metadata 文件夹组成。其中 docs 文件夹里保存的是每一篇笔记及笔记的相关素材。mainlib.db 文件保存的是分类和 Tag 信息以及笔记所属于的分类信息。metadata 文件夹只有在使用到发布服务时才会有,保存的是发布服务相关信息。下图就是一个典型的文档库。

这种结构可以很好的备份和用于 git 备份,你可能注意到了,即使你选择把文档库存储在 iCloud 中,也可以很方便的备份你的文档库。因为 MWeb 会把所有数据都同步到一个私有文件夹中,你只需要备份那个文件夹即可。

在 macOS 下,如果你要从备份中恢复文档库,分为两种情况:

  1. 文档库存储在文件夹中时:先把备份的文档库的文件夹复制到你想要的位置,然后在 偏好设置 - 文档库 & 备份 中,点击 “选择现有文档库” 按钮并选择那个位置即可。
  2. 文档库存储在 iCloud 中时:首先要用备份的文档库的文件夹里的所有文件替换掉文档库同步的私有文件夹(上面有说到)里的文件。然后,重启 MWeb,检查数据是否有问题,如果没问题,则点击 “同步” 按钮,在出来的菜单中,选择 “同步有问题?”,在出来的界面中,点击 “重新上传当前的文档库到 iCloud 中”。等完全上传后,再在进入这个界面,点击 “重新下载所有 iCloud 上的内容”。

分类树的使用方法

MWeb 的分类有两种,一种是普通的分类,如下图:

一种是静态网站分类(MWeb Pro 才有),这个分类可以生成静态网站,如下图:

MWeb 提供一个非常简单的方法再把分类下的文档生成一个静态网站,比如 MWeb 中文官网就是用 MWeb 的静态网站功能生成的。

界面左边的分类树配合 右键 及拖拽就可以完成相关的管理操作。中间的文档列表栏可以把文档拖拽至左边的分类以进行文档分类的管理。这种拖拽有三种情况,以下都假定拖拽到分类A

  1. 直接拖拽当前文档到分类A。这种情况下,如果列表中的文档属于当前选中的分类,则会移动到分类A,否则的话,则为拖拽的文档增加到分类A
  2. 按住 CMD 键拖拽当前文档到分类A。这种情况下,会为拖拽的文档增加增加到分类A
  3. 按住 Option 键拖拽当前文档到分类A,这种情况下,如果所拖拽的文档属于分类A,则取消文档属于分类A,如果不属于分类A,则不做任何操作。

这种操作方法的地方是可以多选,也就是可以批量管理。如果是单个文档,有更好的办法,就是点击编辑器最上面的信息条,然后进行勾选,如下图:

这个地方也是唯一可以设置文档标签(tag)的地方,下面介绍的标签,设置是用这个办法。你也可以使用快捷键 CMD + 8 来打开这个界面。

文档间的引用

在 MWeb 中引用其它文档非常简单,在文档列表中,右键要引用的文档,选择 复制,如下图所示。

然后在要引用的文档的位置 CMD + V 粘贴即可,MWeb 会生成 [如何使用“发布脚本”功能发布静态网站](how_to_use_shell_script.html) 这种语法。如果你按住 CMD 键并点击标题,则会打开这个引用的文档。

文档排序

文档库支持多种排序方式,而且每个顶层分类还可以单独设置自己的排序方式。修改排序方式的办法有两种,一种是如下图所示:

另一种是,选中要修改排序的顶层分类或者顶层分类下的某一子分类,然后在文档列表中右键,如下图所示:

在各种排序中,自定义拖拽排序比较特殊,需要特别说明。在说明之前,我先说明一个全局选项:按分类分组显示。在文档列表中右键,就可以看到这个功能的菜单,如果在启用状态,则表示列表中的文档都在以分类分组显示的状态,不管是什么排序设置。
这个用处其实也是查找和整理文档。但是如果这个全局选项不是启用状态,那么,如果排序设置为自定义拖拽排序,则这个顶层分类也会按分类分组显示的。也就是说,只要是自定义拖拽排序,文档列表栏必定是分组显示的。
这个是由于一个文档可以属于多个分类造成的规则设定,不然会比较乱。
如果你在一个不是自定义排序的分类尝试拖拽,MWeb 会提示你先设置为自定义拖拽排序,然后才能拖拽。自定义拖拽排序分类下的文档,建议保证只属于一个分类,这样拖拽排序才不会乱。

标签的使用方法

MWeb 中标签(tag)的功能还非常简单,设置标签的方法,上面有说到了,另外就是按标签查看文档了,这个功能如下图所示:

可以看出 MWeb 会列出整个文档库的标签,选择后即可按标签查看文档。

文档大纲视图

如下图所示,文档大纲视图会列出当前文档的标题和插入的图片及附件,当然还有可以设置静态网站用的扩展项目(如果当前的文档属于某个静态网站分类的话)。下图是把大纲视图拖拽出来后固定的效果。

文档库的导入和导出

如下图所示,文档库支持导入 Markdown 文档到文档库中。如果导入的时候你选择的是一个文件夹,MWeb 会把文件夹内的所有 Markdown 文档导入到当前所选择的分类。如果文件夹的 Markdown 文档中有本地图片,也会一并导入并修改为文档库格式的图片地址。需要说明的是,要导入图片,请一定要选择整个文件夹。

另外还可以把整个分类导出为 Markdown,导出后的 Markdown 文档会按分类的结构建立文件夹。剩下的两个就是导出为 Epub 和 PDF 了,没错,可以把整个分类都导出为 Epub 或者 PDF!

MWeb 4 iCloud 同步文档库的一些问题

MWeb 3 的 iCloud 同步和 MWeb 4 的有何区别?

MWeb 3 的同步是把文档库的文件夹保存在 iCloud Drive 中,由系统进行文件同步。MWeb 4 的同步是使用一个叫 CloudKit 的技术进行同步,由 MWeb 控制,不再保存在 iCloud Drive 中。 如果要使用 MWeb 4 的 iCloud 同步,需要在设置中手动点击 “存储到 iCloud 中” 按钮。

MWeb 3 的文档库如何同步到 iCloud?

如果是 macOS 版的 MWeb,请先确认是不是保存到 iCloud Drive 或者相关的云盘的文件夹中,如果是,则需要确保文档库所在的文件夹完整同步到本地。总之是先要保证当前的文档库完整。
然后,再在 偏好设置 - 文档库 中,点击 存储到 iCloud 中 按钮,然后在跳出的提示是否合并文档库选择中,选择 合并 即可。
这个提示只显示一次,如果之前来不及选择,可以参考本文上方的 “文档库的结构、备份和从备份中恢复” 中的从备份中恢复的方法。

如果是 iOS 版的 MWeb,因为原来 iOS 版的文档库就是只读的,所以需要先使用 macOS 版的 MWeb,按上面的方法把文档库同步到 iCloud。再在 iOS 版把文档库也设置为 存储到 iCloud 中 即可。

我能否手动 git 备份存储到 iCloud 中的文档库?

可以的,在 MWeb 4 中,同步用的是苹果的 CloudKit 技术,会完整的把所有文档都同步到本地的 MWeb 的一个私有文件夹中,位置就在:~/Library/Containers/com.coderforart.MWeb3/Data/Library/Application Support/MWebLibrary。如果你使用的是 MWeb 标准版,请把上面的 com.coderforart.MWeb3 换成 com.coderforart.iOS.MWeb
如果你想备份或者 git 备份,只需要定期备份这个位置即可。这个位置只能备份,请不要改动。

这个位置的文档库的结构是跟本地的一样的,如果你不想使用 iCloud 同步了,可以把这个文件夹复制到其它地方,再在 MWeb 中切回本地文件夹存储,再选择复制到的文件夹即可。

iCloud 同步时想要的文档版本被覆盖怎么办?

在 macOS 版本的 MWeb,可以使用菜单: 文件 - 恢复为 - 浏览所有版本,对于 iOS 版,可以点击 “...” 按钮,选择 “文档历史版本” 来恢复。要注意的是,iOS 的文档历史版本只针对文档库中 iCloud 同步的文档。 建议使用时避免多设备编辑同一文档,如果要编辑,请确认文档为最新的状态。
因为在同步过程都是无状态的,比如说当前设备网络不好,网络传输出错,CloudKit 错误等等都会造成当前的设备的文档的最新版本无法及时同步到 CloudKit,这时如果另一设备上传了文档的新版本,然后当前设备变得正常,就会收到另一设备的更新推送,这时就会更新当前设备的文档。

想初始化 MWeb 文档库

如果你想初始化 MWeb 的文档库,办法有:

  1. 下载 https://cdn.mwebapp.cn/MWebInitLibrary.zip 并解压,再用 选择现有文档库 选择解压后那个位置即可。
  2. 在命令行中运行命令:defaults delete com.coderforart.MWeb3 (如果是 MWeb 标准版,则为 defaults delete com.coderforart.iOS.MWeb),此操作会删除 MWeb 的所有偏好设置,一切重新开始。