obsidian 发布博客

1. 背景

obsidian 官方有发布功能, 但是本着白嫖的 '优良美德', 我选择了 obsidian-digital-garden

优点

2. 快速上手

详细操作参考 官方文档 (因为可能会变化), 我简单说下主要步骤

  1. 申请 vercel 账号和 github 账号
    1. vercel 是免费的云平台, 这里用它的免费额度发布静态站点 (也就是博客)
    2. github 用来存储你的博客, 你在 obsidian 的配置更新, 发布都是直接操作到 github 中的博客仓库
  2. 根据官方文档, 通过一个博客模板仓库一键创建 vecel 项目和 github 仓库
  3. 在本地的 obsidian 中发布博客

3. 我的额外操作

官方文档已经写很明白的部分我是不喜欢再写一次, 所以上面的 快速开始 就简单略过。这一节,介绍的是文档上没提到的

3.1. vercel绑定自定义域名

obsidian 发布博客-1731769720519.webp

新增一个域名后,他会提示你到域名管理后台配置一个 CNAME 配置
obsidian 发布博客-1731769801644.webp

我的域名是用 cloudflare 管理的, 这里有一个坑点。
cloudflare 默认会出现无限重定向情况,就是我访问 blog.我的域名 时候他会又重定向 blog.我的域名
我最终的配置是

obsidian 发布博客-1731769934561.webp

obsidian 发布博客-1731769987862.webp
obsidian 发布博客-1731856495106.webp

3.2. 在首页列出所有博客

这个插件虽然提供了展示文件树的功能,但是我不喜欢,我的文件树很深,但是我会发布出来的博客比较少,所以这个文件树的体验会比较差。
我更喜欢在首页,列出所有博客,所以用了 dataview 语法

\`\`\`dataview 
TABLE WITHOUT ID file.link AS "文章",updated as 更新时间, created as 创建时间 FROM "" 
WHERE dg-publish = true AND !dg-home 
SORT created DESC
\`\`\`

这个语法会列出所有要发布的博客 (dg-publish=true), 除了首页 (!dg-home),按照创建时间排序。
updatedcreated 不是 dateview 内置的属性, 是我笔记内的 frontmatter 属性