Hexo 和 Obsidian 文章实时同步

转自:符号链接、硬链接及其在 Windows 上的应用举例 - 少数派

Hexo 是一个静态博客生成工具,Obsidian 则是一个本地笔记管理工具,这两个工具的库我都使用 Git 做版本管理。

因为博客文章常常就是笔记中的文章,所以正常情况下,我需要将笔记中写好的 Markdown 复制粘贴到 Hexo 的博客目录下,然后再发布。一份文本此时被分成了两个数据,一旦需要更改,还得在两边分别编辑。

既然这两个工具会使用到同一份文本,为什么不能使用硬链接将他们共同的 Markdown 连接在一起呢?

需要做的工作是,在为 Hexo 创建文章时,同时在 Obsidian 的笔记目录下创建这个文章的硬链接。由于两者数据相通,在 Obsidian 处的编辑会自动同步到 Hexo 端。示例脚本 New-Blog.ps1 如下:

```code-line
## 计数作为文件名
$count = [System.IO.Directory]::GetFiles("$home\Hexo\source\_posts").Count
## 提前写入 Markdown 的 yaml 头
$date = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$yaml = "---" + "`ntitle: $count" + "`ndate: '$date'" + "`nupdated: '$date'" + "`ncategories: []" + "`ntags: [blog]" + "`ndescription:" +"`n`n---"
## 在 Hexo 中创建文件
Write-Output $yaml | Out-File $home\Hexo\source\_posts\$count.md
## 在 Obsidian 中创建硬链接
New-Item $home\Note\$count.md -Type HardLink -Target $home\Hexo\source\_posts\$count.md
## 退出
exit
```

配合几行简单的 AHK 脚本:

```code-line
#!N::
run, "%USERPROFILE%\Program\New-Blog.ps1",,hide
return
```

当按下 Win + Alt + N 时,就会静默运行脚本,同时新建博客和笔记。重命名和移动文件都不会改变文件 ID,因此,只要不删除,无论在 Obsidian 上怎么折腾都不会影响两者的同步关系。如果我不满意某篇博客,在 Hexo 删除了它,那么文本在 Obsidian 那里仍然留存。

在此例中,可能有人会问「为什么不用符号链接?」主要原因是 Obsidian 目前似乎有意5忽略掉笔记库的符号链接。另外,本例中的 Markdown 文件也比较适合使用硬链接。作为对比,Word 文档在编辑保存时原文件会被删除,替代以新文件,文件 ID 会改变,而这将导致链接失效。

其他复杂的文件格式或特殊的编辑器可能也有类似的情况。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值