Ivan's Blog

Hugo 与 Obsidian 反链同步,失败了

我目前使用 Obsidian 撰写 Hugo 博客的文档。除了作为编辑器使用,Obsidian 中也存储了我不少的笔记,所以我希望在使用 Obsidian 作为日常记录的同时,可以无缝将笔记内容转移到 Hugo 搭建的博客中。

在 Obsidian 中,超链接使用的是 [[link]] 这样的 Wiki 风格样式。为了保证书写的超链接与发布后的链接能够一一对应上,我必须设置 Hugo 或是设置 Obsidian 某一个与另外一个超链接使用同样的格式。

网络上查了一下,发现早在 2017 年就有人提出 了想要 Hugo 官方支持 Wiki Style 的链接。但似乎作者并没有采纳,且不打算支持。因为 Wiki 风格的双中括号并非 md 官方支持的链接,且会因为文件重名带来一些许多未知的问题。

因此我首先放弃了 Wiki 风格链接的使用。设置 Obsidian 使用 markdown 标准的 [name](link) 格式链接。

image.png

虽然链接使用了相对路径以及传统 md 格式后,能够正确认识到目录的路径,但还是出现了两个问题:

  1. 包含空格的文档标题,空格会被替换成 -,导致链接过去的文章是 404
  2. 在 Obsidian 中引用文章链接时,会自动加上 .md 扩展名,导致渲染出的链接出错同样 404

我以为第二个问题很容易解决,只要找一款 Obsidian 插件应该就可以。后来发现没有这样的插件,自带的设置中更是没有任何支持去掉 .md 扩展名的类别。

思索了一下,我认为不应该在 md 文档上做修改,而应该让文档保持正常标准的 md 格式,这样无论是更换任何编辑器,都可以很方便移植。因此我找到了通过修改配置项,将 Hugo 生成的 URL 结尾加上 .md 这样就能保证编辑器与发布页面的链接格式是一致的。

[permalinks]
  blog = "/:slug.md/"

而第一个问题比第二个问题棘手多了,网络上查到的增加一个 preserveTaxonomyNames=true 这样的参数,作用是让一些特殊字符保持原样输出,说是可以解决 URL 空格被替换成 - 的问题,但是我尝试了修改配置文件,并没有生效,查询官方文档也找不到相关的参数。

又经过一番折腾无果后,我决定放弃同步 Obsidian 与 Hugo 的链接格式,主要原因就是无法解决空格被替换的问题,还有一部分原因是,我打算使用固定链接。

根据网友在这篇 文章中的介绍,使用固定链接可以防止 URL 的变化,利用搜索引擎的优化,且不会让网址过长。

我重新将配置文件改回原样,决定配置博客使用永久链接。这将使 Obsidian 的内部链接失效,大大减少我使用内部反链的频率。

至此,又是没有解决问题的一天。

#Hugo #笔记 #Obsidian