Obsidian 结合 MkDocs¶
约 955 个字 13 行代码 预计阅读时间 3 分钟
背景¶
之前的个人博客搭建方案还是过于繁琐, 不方便发布。步骤一多人就懒
前段时间翻了翻 2024 Gems of the year winners - Obsidian,发现这款插件,配置好后只需在 Obsidian 中添加一个属性,然后点击即可发布。使用无负担,数据不丢失
话不多说,这就来看看部署流程
配置 GitHub 仓库¶
- 在 Mkdocs 的指导下,使用提供的mkdocs模板 创建自己的仓库
- 然后按照这个仓库的说明添加
GH_TOKEN并进行后续操作。这里我用的是细粒度权限 token - 然后填写信息运行
Generate website- 不出意外应该会失败,出现此错误👉
The URL isn't valid。不过不用担心,不用管
- 不出意外应该会失败,出现此错误👉
- 配置
Pages
下面配置可选
域名¶
如果有自己域名,并在 GitHub Pages 中填写了,那记得在 docs 目录下添加 CNAME,不然部署时会将仓库里设置的 Custom domain 清空。
添加后 MkDocs 执行部署时会将此文件添加到根目录
字体¶
- 将
mkdocs.yml中的font注释掉 - 使用霞鹜文楷屏幕阅读版 网络字体仓库 ,在
mkdocs.yml中新增
- 在
_static/css目录下新建font.css,并填写
评论¶
按照文档操作👉 Adding a comment system - Material for MkDocs
注释掉 overrides\partials\comments.html 中的 if page.meta.comments&endif 即可为所有文章开启评论,从而无需在文章中添加 comments 属性
字数统计及阅读时间插件¶
按照文档在 mkdocs.yml 中添加插件
Obsidian-enveloppe 插件使用 uv 管理依赖配置,把前面创建的仓库克隆下来,执行命令更新下配置文件:
本地化¶
有些比较隐蔽的提一下:
overrides\partials\source-file.html中将作者Auteur修改为Authormkdocs.yml中修改git-revision-date-localized的locale为zh
其他¶
详细阅读官方文档 ,按需修改 mkdocs.yml 进行个性化设置
Obsidian 安装插件¶
前面的操作完成后,在 Obsidian 中安装插件。然后按照 Github Configuration 进行配置
token可以和前面生成的共用一个- 目录设置,个人使用的是属性
Property key,对应categories。另外目录确保以docs开头,不然 MkDocs 不会生成对应文章。同理,后面的图片目录也要以docs开头 - 开启
File Menu,这样可以在编辑模式下可右键上传,也可在文件菜单中选择上传。- 对应
Upload single current active note命令,只会上传当前文件及其链接的分享文件(即符合share: true的文件)
- 对应
下面配置可选
修改 PR 标题¶
修改 PR 标题,打开此插件目录,这里是 obsidian-mkdocs-publisher,在 main.js 中搜索 app.vault.getName。
删除 ${this.app.vault.getName().replaceAll(" ","-").replaceAll(".","-")}- 即可将 PR 标题中的 Obsidian 仓库名去掉,只保留日期
中文目录链接¶
对于中文标题必须进行修改后才能正确跳转链接
mkdocs.yml中添加slugify,指定处理逻辑
- Obsidian 中将
Sluglify anchor in markdown links设置为Convert all to ……(strict 模式)
不过由于 obsidian-enveloppe 使用的 slugify 包与 pymdown 不同,细节上还是有差别,比如 / 的处理,导致不是完美匹配
Enveloppe 需要移除特殊字符
成果¶
已知不足¶
- 双链、悬浮预览,具体可以对比 obsidian-digital-garden示例站点
- 悬浮预览使用的是 Tippy.js。效果不好,不能点击,而且必须是完整链接才能预览,所以基本没用
- 部分样式/插件不支持
小 tips¶
categories如果添加多个,会在目录中形成嵌套关系。如果使用/也会形成嵌套
| 元数据字段 | 类型 | 说明 |
|---|---|---|
| Share | 复选框 | 勾选代表分享上传至网络 |
| Comments | 复选框 | 勾选代表此篇文章开启评论 |
| Status | 文本 | 文章状态,MkDocs 支持的 new、deprecated、自定义 |
创建日期 : 2025年3月17日
Author : chushen