设置 Hugo 的永久链接
我在 Hugo 与 Obsidian 反链同步,失败了 一文中希望解决博客超链与 Obsidian 反向链接的格式统一问题。但是最终因为延伸出了过多的其它问题,导致不得不放弃。
为了方便在 Obsidian 中链接其它文档,我通过设置永久链接的方式,也就是在 md 文档的 frontmatter 部分设定一个 slug 属性,该属性通过 md5 随机生成,然后我再配置文章 URL 的时候使用该值,即可链接到文章。具体的操作方法如下:
先在 Hugo 配置文件 hugo.toml 中配置 URL 的样式。
[permalinks]
blog = "/blog/:year/:slug"
然后在 archetypes 目录中,创建一个 blog.md 模版,内容如下:
---
title: "新笔记"
date: {{ .Date }}
draft: false
slug: {{ substr (md5 (printf "%s%s" .Date (replace .TranslationBaseName "-" " " | title))) 4 8 }}
---
最后使用命令 hugo new blog/new.md 创建文章,slug 就会随机生成唯一编码,这样先解决了 URL 过长的问题。
接下来,使用 Obsidian 插件 shell commands 创建一个新的命令,这样就可以快速复制出一个基于 Hugo URL 规则的文章链接。

唯一美中不足的,是这个链接在 Obsidian 中是无法被直接点击访问的。为了解决这个问题,我直接在链接中加入域名,这样无论是博客页面还是 Obsidian,打开链接都是通过域名的链接访问,就解决了 Obsidian 的链接无效的问题。
新的命令格式:
echo -n "[{{!title}}](https://ivan.show/blog/{{date:yyyy}}/{{yaml_value:slug}})"