遇见 Syncthing

目前在用 Syncthing 实现 Obsidian 的同步,用的很舒服。详见 文件同步备份路线图

Docsify 是 Vault 中的的一个文件夹,额外同步到 Nas 上一个叫做 Web 的文件夹中,然后自动 git 提交、发布。

到这里流程很简单,但是我想把我写的 Dataview 小挂件也合并进来一起发布。但是小挂件的代码边写、边用、边改,就不适合放在 Docsify 的目录下,当然想发布的话又必须合并到其中……说着有点饶了,简单列表示意一下:

/
|-- Notes             .......... 笔记目录
|-- Dataview          .......... Dataview 相关代码目录
    |-- Widgets       .......... 想要发布的小挂件目录
|-- Docsify           .......... 发布的内容目录,对应 Nas 中的 Web 目录
    |-- Dataview      .......... Dataview 相关文章
        |-- Widgets   .......... 发布时期望小挂件目录在这里

注意上面最后一个 Widgets 目录在我的 Vault 中是不存在的。

然后我创建了如下同步流程:

flowchart LR

subgraph PC
  subgraph PCOB[Obsidian]
    PCDoc[Docsify]
    PCWid[Widgets]
  end
end

subgraph Nas
  subgraph NasOB[Obsidian]

  end
  subgraph NasDoc[Web]
    NasWid[Widgets]
  end
end

PCOB <--->|Syncthing|NasOB
PCDoc --->|Syncthing|NasDoc
PCWid --->|Syncthing|NasWid

这里的重点是第二条线(Docsify --> Web)的同步中排除 Widgets 文件夹,仅在 Nas 端这边排除即可,因为只有这边 Web 目录中多出了这个文件夹。

如此实现了相对复杂的文件同步,再借助过滤,Widgets 的同步中排除了 js 和 css 文件,这样就只剩下说明文档被一同发布了。

Append at 2023-11-01 20:05:12

现在使用新的网站生成器,同步规则没有这么复杂了,不过上面思路在一些特殊情况下依然值得参考。

©2022~2023 稻米鼠. Last build at 2023/12/5 00:00:21