以Obsidian为中心的Blog写作
文章目录
核心理念
- 本地优先:无论何时都需要在本地的一个文件夹中保存日志的所有内容,包括附件的完整性。无数历史都教育我们任何一个运营商从长时间(5年、10年甚至更长时间)都是不可靠的。
- 网络备份同步:本地的硬盘是不可靠的,而且也有从不同设备记录写作的需求,所有内容至少要有一份异地网络备份。
- 简化创作和发布流程:指望每次写作都开终端敲一堆命令也不是不行,但可能会破坏创作动机。最好通过GUI点击按钮全部搞定。
工具介绍
本篇将使用如下工具组合完成Blog写作:
- Obsidian及插件系统:
- 社区插件:Custom Attachment Location
- 社区插件:Obsidian Git
- 核心插件:日记
- 核心插件:模板
- GitHub
- Hugo
当按照本文进行所有的设定后,只需要操作Obsidian就能完成静态Blog的创作、管理、发布,无需操作其他软件。
搭建流程
- 在本地安装Hugo环境,选择改造模板,添加插件等,可在本地发布测试,这个流程已经有很多教程,不再赘述;
- 在GitHub上创建存储库,通过Git同步;
- 在GitHub上配置Action,用于同步后的自动化发布,以下配置供参考,记得替换
external_repository
为你自己的仓库名:
|
|
- 使用Obsidian建立新的存储库,将存储库的路径设置为Hugo的Post路径;
- 安装 Obsidian Git 插件,后续操作可摆脱命令行操作。
Obsidian设置
- 为了使Obsidian与Hugo的日志格式兼容,开启核心插件
模板
,并创建Template
目录新建内容如下的模板文件:
|
|
- 为方便写作新Blog,开启核心插件
日记
,并设置日记模板为以上模板 - 为清晰管理每篇Blog的附件,安装并开启社区插件
Custom Attachment Location
,设置Location for new Attachment
为./${filename}.assets
,并开启Auto Rename
选项 - 编辑器开启
严格换行
、显示front-matter
文件与链接
中,内部链接类型
设置为插入基于当前笔记的相对路径
,并关闭使用wiki链接
Hugo设置
- 在
Hugo
配置文件config.toml
中,设置ignoreFiles = [ "Template/.*" ]
防止生成模板文件造成错误 - 在配置文件中启用
uglyurls = true
,便于寻址附件的正确路径,详细可参看 hugo使用uglyurls路径问题彻底解决 - 增加wikilinks语法,方便在Obsidian中引用其他的blog,参见 2022-05-12 为Hugo增加Wiki链接解析
日常使用
进行了以上设置后,只打开Obsidian,就可以:
- 通过点击左侧
图标,就可创建一篇新的Blog;
- 通过粘贴的图片附件,自动归入对应同级目录下得
Blog文件名.assets
文件夹; - 写完Blog后,使用右侧
面板检视、提交、推送变更;
- Github的Action会触发,自动化使用Hugo生成静态博客并发布。
极大的降低了静态博客的管理、使用负担,真正实现配置一次,后续的创作无负担。
高级使用
- 可灵活利用
front matter
,加上draft: true
就是草稿,加上slug: "slugstring"
就可指定发布时的文章路径,加上keywords: [keyword1,keyword2]
就能改变meta中的keywords做SEO,加上tags: [tsg1,tag2]
就能方便的在博客和Obsidian中以主题组织检索内容; - 配置Hugo的
config.toml
文件,打开mathjax = true
支持公式显示,设置disqusShortname
使用disques作为评论版;
结语
- Obsidian强大的Live Preview使复杂格式的Markdown写作非常便利;强大的文档库功能包括对
front matter
的支持,可以方便管理、检索所有历史文档; - 通过与Git工作流的组合,做到本地优先、清晰版本管理、自动化发布,实现了长期内容创作与管理的的便利性、安全性、自主性兼得;
- Github是此方案唯一依赖的平台,即使未来有不测,服务无法持续,我们还有本地的完整存档可以便利的在其他类似平台部署发布;
- 目前来看这是一套近乎完美的解决方案, 不足之处就是配置略显繁琐,不过绝对值得投资点精力,一次搭建,永久收益!
文章作者 p3p3pp3
上次更新 2022-05-12