成为 Obsidian 的重度使用者之后,突然意识到它和我写博客的需求完美契合,以下是我配合 Hugo 的使用经验。
引言
为什么选择 Obsidian 作为 Hugo 博客的编辑器呢?主要有三点理由
- Obsidian 和 Hugo 都采用 markdown 语法,操作都非常熟悉
- Obsidian 有丰富的插件生态,可以契合 Hugo 博客的一些痛点,如 shortcode 的输入等
- 利用 Obsidian 自带的统计功能,能有效追踪自己的博客进度(变相催自己更新
插件
核心的插件一共四个
- 预览:Hugo preview
- 快速添加模板:QuickAdd
- 显示更改的文件:Git
- 写作统计:Dataview
还有几个用于辅助的,例如 Quiet Outline,看各自的使用习惯
工作流
我目前给博客单独开了个 vault 用于存储,没有和自己的笔记放在一起,尽量降低一点复杂度,有需要引用的地方还是使用粘贴复制的方式,使用预处理脚本让 Hugo 来处理 Obsidian 的双链引用太过复杂了。
文件夹结构
大部分都是 hugo 的标准目录,其中我保留了 archetypes 作为博文的模板目录,方便不同类型的文章快速应用 front matter 内容。
另外我采用的是 cloudflare pages 来托管域名和网站,相较于 GitHub Action,它只 git clone 一层,所以会使 Hugo 的 GitInfo 功能失效,建议自己单独实现 build 脚本
我会单独做配置备份,所以 .gitignore 除了 public 和 lock 之外,排除了 obsidian 自己的配置路径
编辑
我的个人习惯是新建博文到特定目录,然后将附件放在相同目录下,如果图片很多,我会使用 imagemagick 将它转成 webp 的格式,避免本地存储库过大。
注:喜欢贴图必备插件 Paste image rename
比较喜欢使用 Admonition 的同学一定很能领会时常忘记 shortcode 该怎么写的痛苦,当然 Obsidian 自己能实现这样的补全,但是我更习惯使用 QuickAdd 来添加模板,有的 Hugo 主题也会提供一些独有的短代码,可以一并加上快速选取。
在同时写多篇文章,但跨度很大常常忘记,并且文件夹目录较长难以查找到怎么办,Git 插件能够帮你可视化找到,点击第一个按钮就可以快速定位到文件位置。
预览
有很多人喜欢 Typora 的核心原因就是所见即所得,当然在写作的时候能直接预览到最终效果当然很舒服。Hugo 自己就能做到,但是它默认是在浏览器渲染的,没有外接屏幕的时候还需要不断的切换窗口来查看,这不太舒服。
似乎和 vscode 也没什么特殊的地方,但是 Obsidian 有实现保存 workspace 布局的功能,那就非常方便了,通常写文的时候左右两边侧栏是需要打开的,预览的时候就能通过工作区布局切换快速选取预览布局,关闭侧栏。
发布
我目前没有采用 Git 插件来自动提交,因为有很多写到一半的欠稿想先留在本地,不想上传到 git 上面,如果是每次都能写完并提交的话可以开启定时提交的功能。
统计
在上面的文件夹结构处可以看到我单独留了一个 home.md 来统计数据,这涉及到 Obsidian 用户的核心插件之一 Dataview,我们可以通过类似于 SQL 的语法来统计一些有用的数据,甚至是使用 dataviewjs 来搞一些华丽花哨的主页装饰。
例如我下面用来统计 draft 的文章列表