hexo+obsidian+freefilesync 实现笔记管理和博客的管理与自动推送
net: 笔记系统构建
起因
为了将之前无聊搞出来的博客网站融入到我的整个笔记管理之中,实现笔记管理与博客推送的结合。我对原有的笔记结构进行了改进,想能更加便捷的发布博客。后来又想着一不做二不休,干脆自己再写个简单的脚本实现博客的一键推送。于是,我就写了这篇文章记录我的实现过程。
自动推送前准备
主要是在obsidian上做修改,因为我之前就是用obsidian做笔记的。
你可以了解一下obsidain,比如观看这个视频
obsidian设置修改
1. 修改了笔记模板
- 在笔记模板前加入了yml头,因为没有yml头的md文件是无法作为博客发出的
- 不知道yml头的可以看我之前发的文章或者直接百度。
- net一栏是我管理本地笔记的方法,不属于yml头,不用在意。

2. 将obsidian的wiki链接关掉
- obsidian作为一款markdown编辑器,其特色之一就是支持wiki链接,但是我们的博客指认传统的markdown语法
- 强烈推荐使用obsidian作为你的笔记管理软件,真的非常强大。

- 强烈推荐使用obsidian作为你的笔记管理软件,真的非常强大。
- 还有就是记得将内部链接类型改为“基于当前笔记的相对路径”

3. obsidian指定附件文件夹为images

笔记仓库与博客仓库结构
原来的笔记仓库结构
- 大概是这样的

顾名思义,分别存放着日记、图片(附件)、参考资料、笔记模板、周记与zk笔记。
关于zk笔记的部分我是参考的这个视频有兴趣可以看一下。
后来的笔记仓库结构
就是这样的

对,只是将zk笔记分了一下类而已,其中post是我要发布为博客的笔记。至于为什么要这样做,给你们看看blog仓库的构造应该就知道了。

其他的不用管,只看 source 文件夹里面的_post 与 images,这两个就是博客文章及其图片的存放文件夹。
也就是说,我们只要在笔记仓库里写好文章,将文章放入 post 文件夹,其中插入的图片会默认放在images文件夹中,然后将笔记仓库里的 post 与 images 和blog仓库里的_post 与images进行同步再输入hexo命令三连就可以实现博客的上传。所以现在我们只要解决同步问题就可以了
freefilesync——文件同步备份软件
- 为了实现两个文件夹的同步,可以下载freefilesync软件(这个软件我在以前一直用于文件备份,没想到还能用在这)
- 它的使用也非常简单,在两侧分别选择你要同步的文件夹,点击比较就会显示两个文件夹的差别,确认后点击同步就可以是两侧文件同步。
- 于是利用这一点,我实现了笔记仓库里的 post 与 images 和blog仓库里的_post 与images的同步。

自动推送的实现
脚本设计
由于需求很简单,只要两侧文件夹同步,然后再用hexo命令三连推送即可,问题是如何不打开freefilesync,只靠命令就可以调用freefilesync进行文件的同步。
好巧不巧的是,freefilesync自带将配置保存为批处理作业文件的功能,,这个文件可以直接被windows的命令调用,只要我们将同步任务配置好,将其保存为批处理作业文件即可。
比如实现post与_post的同步
- 在两侧分别选择post和_post文件夹
- 点击右上角的另存为的两个图标的右边的那个,就可以将当前配置存在文件中
- 去一个易于区分的名字比如 post_sync
- 在命令台输入以下命令即可使文件同步
1
call post_sync.ffs_batch

images的同步同理
脚本实现
接下来只需要将命令写在一个.bat文件里即可,下面就是最终的代码。
1 | @echo on |
- @echo on 是指打开回显,即运行过程会以命令台上显示在窗口,不想看到可以将“on”改成“off”
- call images_sync.ffs_batch 和 call post_sync.ffs_batch 是调用软件同步图片和博文
- hexo clean && hexo g && hexo d 就是我提到的 hexo 三连,将博文推送到网站
- start https://wocaodiande.github.io/ 就是打开默认浏览器访问我的博客网站,检查是否有异常
- pause 是指脚本运行完后,命令台不会自动关闭,要让其自动关闭可以不写
注意!!
- images_sync.ffs_batch、 call post_sync.ffs_batch 和 .bat 脚本文件最好都放在blog文件夹的根目录里
- 否则调用images_sync.ffs_batch和 call post_sync.ffs_batch时要补全其地址
- 在使用hexo三连前,使用 cd 命令跳转到 blog 的根目录上
- 使用 call images_sync.ffs_batch 或 call post_sync.ffs_batch 时,不能直接调起freefilesync进行同步,很有可能是你动了这个软件的地址,建议卸了重装
- 所以一定不要手贱去改软件安装文件夹的名字,血泪的教训。
- hexo 的命令之后的语句最好用&&连接都写在一行,不然的话可能会运行完hexo clean 脚本就自动停止了
1
2
3
4
5
6
7
8
9
10
11错误示范
@echo on
call images_sync.ffs_batch
call post_sync.ffs_batch
hexo clean
hexo g
hexo d
start https://wocaodiande.github.io/
pause
这样写的话可能连hexo clean都没运行完就把脚本给你掐了,我也不知道为啥,你可以试试
没出错的话务必和我联系
顺嘴提一句
可以在桌面上建个bat脚本的快捷方式,这样只要编辑完了一篇文章就可以在桌面直接双击推送了。
你能看到这篇文章就说明我的脚本有效了,否则你就看不到这篇文章(废话)。
顺便再推荐一下 obsidian,就是单纯的作为笔记软件,真的很好用(赞赏)。
