前景

最近想搭建一个自己随时可以访问的个人笔记库,搜索了一下,确认了将 Obsidian 作为内容创作层,Hexo 作为发布层,并发布在 Cloudflare Pages (感谢cf大善人)的方案。

在站内了搜索了一下,发现一位悲惨的佬友,更新Obsidian程序导致笔记文件丢失。为了避免这种悲惨情况,决定为Obsidian 和建立Hexo 两个完全独立的根目录。准备通过一些插件或者vibe coding下实现Obsidian 到 Hexo 的自动化脚本,承担文件复制和语法转换等。

1、环境准备

1、Obsidian github地址:Obsidian

2、nvm github地址:nvm

3、git 下载地址: git

2、安装Obsidian 程序

新增仓库,位置一定不要在Obsidian 程序安装目录下,防止重蹈佬友悲剧。

3、新建hexo目录 初始化hexo

1、安装nvm

一路下一步即可

2、安装最新的长期支持版(LTS)。

1
2
nvm install lts
nvm use lts

3、初始化 hexo

1
2
3
npm install -g hexo-cli
hexo init
pnpm install

4、推送到 github 仓库

配置 git 忽略文件 然后推送到自己的私有github仓库

5、最终目录结构如下

6、修改hexo的配置文件适配脚本推送

修改hexo配置文件 _config.yml
修改渲染器配置:

1
2
3
4
post_asset_folder: true  
marked:
prependRoot: true
postAsset: true

4、安装插件并配置脚本

脚本文件如下:

Sync-ObsidianToHexo.ps1

设置->第三方插件
安装 Shell Commands 插件
打开插件设置,点击新建 New shell command
Command (命令):

1
powershell -NoProfile -ExecutionPolicy Bypass -File "D:\myself\Obsidian_Script\Sync-ObsidianToHexo.ps1" -FilePath "{{file_path:absolute}}"

并为其设置一个快捷键

设置显示脚本内容输出

5、设置cloudflare pages 自动部署

登录 cloudflare
创建pages,选择对应github仓库
构建命令:npx hexo generate
构建输出目录:public
环境变量添加 NODE_VERSION:20 (与你的本机node保持一致即可)
开始部署,添加自定义域
然后访问自定义域看是否可以成功访问

6、运行脚本

执行第4步设置的快捷键
结果如下

7、hexo效果

图片正常显示、附件可以下载。