构建 Obsidian 的 Hexo 写作工作流
为什么选择 Obsidian
放弃 Typora 的理由:
- Typora 已经收费,目前使用的免费版本已长久不更新,且偶尔出现 Bug。
- Typora 适合关注于一个 Markdown 文件,不适合文件之间的链接与知识库管理。对于博客或笔记来说,互相链接将有助于加强内容联系,形成自己的知识体系
- 插件?没听说过也没用过
选择 Obsidian:
- 关注于知识库的整理,有双向链接的特色
- Obsidian 对个人用户免费(也有付费方案)并时常维护
- 有活跃的社区和第三方插件市场
- 半 WYSIWYG,写文档不至于预览困难
- 在与博客框架 Hexo 协同工作中具有潜力
- 在不影响 Markdown 核心语法的情况下也有很多提高编写效率插件
选择用 Obsidian 管理 Hexo,相当于使用了一个简易的、本地的后端管理你的静态博客。下文将介绍如何无缝把写作工具迁移到 Obsidian 中。
写作习惯继承及效率提升
快捷键——指尖习惯复刻
统一的快捷设置参考:
快捷键 | 功能 | 软件统一 | 记法 |
---|---|---|---|
Ctrl+Alt+1 |
设为小标题 1 | Word、飞书 | |
Ctrl+Alt+2 |
设为小标题 2 | ||
Ctrl+Alt+3 |
设为小标题 3 | ||
Ctrl+Alt+4 |
设为小标题 4 | ||
Ctrl+Alt+5 |
设为小标题 5 | ||
Ctrl+Alt+6 |
设为小标题 6 | ||
Ctrl+Shift+8 |
无序列表 | 飞书 | 无序列表开头为 * |
Ctrl+Shift+7 |
有序列表 | 在无序列表的旁边 | |
Ctrl+Shift+> |
引用块 | 引用块的开头是 > |
|
Ctrl+Shift+X |
删除线 | X 掉? | |
Ctrl+Alt+C |
插入代码块 | Code | |
Ctrl+Alt+S |
分割线 | Slash?Separate? | |
Ctrl+Shift+↑ |
上移当前行 | JetBrains | |
Ctrl+Shift+↓ |
下移当前行 |
其他博主个人自用快捷键设置:
Ctrl+Shift+-
,无序列表开头也可以是-
。因为接受这种设定后,我老是按中这个键。Ctrl+`
:行内代码。省略一个 Shift 更加好按Ctrl+Shift+$
:行内公式。Ctrl+Shift+!
:标注块。
Typora 中关于小标题设置的快捷键是反直觉的
Obsidian 将 Ctrl + num
的快捷键给了跳转, Ctrl + Alt + num
功能为设置小标题,这个习惯符合主流编辑器(Word、飞书)的设置。反观 Typora 的快捷键就不是这样。
文章模板——免写 Font-Matter 或免敲命令
Obsidian 新建文章时可以快速使用模板。
打开设置 ->模板,插入模板文件夹位置(巧合的是,Hexo 有专门放模板的地方,scaffolds
。不过这个需要自己创建,详情查看这篇文章 写作 | Hexo
一般 scaffolds
文件夹包含 draft
、page
、post
这三个 Markdown 文件。它们分别对应不同的模板。
比如 post
可以这样写:
1 | --- |
后文将提到,安装 hexo-auto-category
插件后 category
字段还可以免写:xu-song/hexo-auto-category: Generate categories automatically for each post in Hexo (github.com)
因此创建新文章的流程就是:
- 新建页面
- 输入标题
- 点击 Obsidian 左侧的模板按钮
- 选择相应的模板即可
当然,创建文章时可以使用 hexo 原生命令。但是由于模板更改可能还需手动修改部分内容。
图床——和 Typora 图片上传方法一致 易嵌入
配置好 PicGo 图床后 [1],安装 Obsidian 第三方插件:renmu123/obsidian-image-auto-upload-plugin: auto upload image with picgo (github.com),记得还要点一下启用插件。
依照说明进行配置 PicGo。然后试着上传图片就行。
Obsidian 第三方插件——用更少的时间写 Markdown
以下插件不会对 Markdown 核心语法造成影响、不会引入奇奇怪怪的语句,但它们可以提升你的写作速度,或以更少的时间排版出更好的版面。
使用此插件可以更方便绘制 Markdown 表格(准确来说属于 GFM):tgrosinger/advanced-tables-obsidian: Improved table navigation, formatting, and manipulation in Obsidian.md (github.com) 至少我觉得比 Typora 鼠标点来点去方便。 现在新版本 Obsidian 自带自己的表格工具了,这个插件的用处就不是特别大了。
中文文本规范化插件:
- 中英文之间迅速加空格,满足文字洁癖党:Natumsol/obsidian-pangu: 为 Obsidian 笔记加上「盘古之白」,排版强迫症者的福音。
- 【推荐】比「盘古」更强大的插件:platers/obsidian-linter: An Obsidian plugin that formats and styles your notes with a focus on configurability and extensibility. (github.com)
让列表支持鼠标拖动以及键盘顺畅调整:vslinko/obsidian-outliner: Work with your lists like in Workflowy or RoamResearch (github.com)
直接粘贴网址到选中文字:denolehov/obsidian-url-into-selection: Paste URLs into selected text “notion style” (github.com)
Hexo 与 Obsidian 的所见即所得
其实做到上面的内容后,使用原先 Markdown 语法写作就可以了。在基本的 Markdown 写作之上,我们可能还有更多的语法、样式、功能需求。如果能将 Obsidian 里看到的和 Hexo 博客网页中看到的基本达成一致,那么我们的写作方式可以进行统一,并可将其语法的运用纳入到我们长期的使用习惯中。
也正是因为追求这种统一,我才会 忌讳 使用所谓 Hexo 特有的 标签语法[2]。但实现统一的代价是会导致很多丰富功能的实现设置了障碍。本小节将针对这种一致性进行努力探索。
Hexo 对于 Obsidian Flavored Markdown 的渲染
如果想将 OFM 运用于 Hexo 中,提升文本丰富性,那么强烈推荐你阅读这篇文章:站内文章Hexo 博客适配 Obsidian 新语法
Mermaid 文本绘图
Obsidian 本身就支持 Mermaid 的渲染。你可以在插件市场寻找更多的工具辅助 Mermaid 图的绘制。
Hexo Butterfly 主题支持 Mermaid。详见官方文档:Butterfly 文檔(三) 主題配置 | Butterfly
其他
已弃用的做法:站内文章在 Obsidian 和 Hexo 两端使用 PlantUML
站内优质文章推荐
如果你决定采用 Obsidian 管理你的 Hexo 博客,那么你一定不要错过这篇文章:站内文章Hexo 博客适配 Obsidian 新语法
为了贯彻「不使用标签语法」的思想,对博客进行文章内容进行个性化时会出现诸多障碍。如果你想保持 Markdown 干净使用的同时采用更丰富的文章效果,详看这篇文章:站内文章用 Markdown 链接替换部分 Hexo 标签语法
本文参考
标签插件(Tag Plugins) | Hexo。搞笑的是,我发现 部分插件开发者 称其为「Ugly」的 😂 ↩︎