Obsidian实现免费第三方发布的安逸方案

306 阅读6分钟

#发布 #数字花园 #obsidian

引言

能读到这篇文章说明你对Obsidian有一定了解了,双链笔记的特性已经不用赘述。该文档介绍了如何通过GitHub私有库和Cloudflare的Pages服务资源实现完美的一键发布的方法。

能力要求

  1. 该方案需要懂一点点GitHub的操作
  2. 本文假定如果用户需要自定义域名,那么用户应具有添加域名解析CNAME的能力,相关知识不再赘述

使用插件

数字花园 Digital Garden

第三方服务

github.com/

cloudflare.com/

参考文章

Obsidian 简明发布方式

obsidian 目前最完美的免费发布方案 - 渐进式教程

参考方案和对比

功能点和限制数字花园(digitalgarden)方案jekyll方案1官方收费发布方案hugo方案(quartz)logseq方案
反向链接面板支持支持支持支持支持
正向链接预览支持支持支持支持支持
支持搜索支持不支持,但通过google间接实现支持支持,但中文不兼容支持
链接稳定性支持只要文件名不改,链接就稳定受文件夹和文件名同时影响只要文件名不改,链接就稳定只要文件名不改,链接就稳定
文件夹层级显示支持支持
首屏加载速度中等,5秒内,下载资源<4M极快,2s内,下载资源<1M中等,5秒内,下载资源<5M极快,2s内,下载资源<1M超慢,10秒,下载资源<30M
图谱显示支持支持全局图谱,但1K+笔记就很卡完美支持支持局部图谱,中文支持不友好支持,稍卡
横向卷动布局不支持不支持支持不支持不支持
暗色模式支持支持不支持支持支持
移动端支持支持支持支持支持支持
markdown扩展语法支持只支持基本md语法和[[语法只支持基本md语法和[[语法支持obsidian的callout和别名语法只支持基本md语法只支持基本md语法和[[语法
其他限制免费必须要有YAML区收费必须要有YAML区;不支持[[wikilink格式,需妥协

实施方法

安装插件

插件市场安装

在插件市场搜索 digital garden 安装

手动安装

如果没有科学上网可以在Github上下载zip包到本地解压 把digitalgarden文件夹放入你的库文件夹下的.obsidian/plugins路径下 比如我的库名是 test ,那么插件文件夹路径就是test/.obsidian/plugins/digitalgarden 正常情况下digitalgarden下有

  • main.js
  • manifest-beta.json
  • manifest.json
  • styles.css 等你配置好了以后会有data.json文件夹保存你的配置 这些都不用手动干涉

克隆库

  1. 首先fork仓库 github.com/oleeskild/d…
  2. 然后设置仓库为private

CloudFlare 构建配置

  1. 进入控制台 选择左侧目录 Workers 和 Pages
  2. 选择 创建应用程序
  3. tab中选择Pages
  4. 点击连接到git
  5. 授权github权限
  6. 点击 从您的帐户部署站点
  7. 选择github 账户 并选择之前fork的仓库 digitalgarden
  8. 点击开始设置
  9. 预设类型留空 构建命令 npm run build 构建输出目录 dist
  10. 点击开始

域名绑定

  1. 返回CloudFlare控制台,Workers 和 Pages面板的Workers模块中 点击你创建的 Pages
  2. tab中选择自定义域
  3. 设定 填入你想好的域名 下一步
  4. 选择我的 DNS 提供商
  5. 开始CNAME设置,这里会莫名其妙出错
    1. 不管他返回控制台
    2. 再来到这里的域名设置会看到新增的一条是停用状态
    3. 点击展开 获取目标值 xxx.pages.dev
  6. 去你的dns服务商 把该域名增加cname
  7. 返回第5部位置 点击检查dns记录 需要稍微等待一下 等待成功后下一步

插件配置

  1. 点击github.com/settings/to… 新建一个令牌
  2. 复制 令牌填充到GIthub token这栏
  3. Github repo name 那一栏填你 克隆的库名
  4. Github Username 填你的Github用户名称
  5. 下面的Base URL填你的域名 包含子域名 不带协议
  6. Slugify Note URL 置空 否则中文路径出错
  7. Features这里配置页面出现的内容
  8. Appearance这里控制站点的名称 主题样式 语言 图标等
  9. 关闭后自动保存

尝试发布

  1. 写一个新文档
  2. 添加文档属性 可以通过快捷键⌘(ctrl)+p唤出快捷栏,输入tag,选中 Digital Garden: Add publish flag,然后文章头部出现文档属性
  3. ⌘(ctrl)+p 然后输入publish single Note 回车即可看到提示栏信息发布状态
  4. 返回CloudFlare控制台,Workers 和 Pages面板的Workers模块中 点击你创建的 Pages 查看构建状态等待完成 如果有错误 查看报错信息
  5. 去自己的域名看看发布效果
  6. 左侧的工具栏有个按钮 可控制批量更新发布

其他

  1. 网站样式、风格和标题等在插件的配置里有详细说明,可以参考插件文档
  2. GitHub账户务必做好隐私保护,将库设为 private 并限制好CloudFlare授权的库,最好不要选择全部授权。
  3. 图床使用GitHub和Cloudflare,无需繁琐的额外配置,相当于白嫖了。
  4. 注意标记添加文档属性 dg-home 为 ==首页==,可以通过快捷键⌘(ctrl)+p唤出快捷栏,输入tag,选中 Digital Garden: Add publish flag,然后文章头部出现文档属性,添加 dg-home,选则属性类型为复选框,然后选中即可设置当前页为首页。注意不要重复设置首页,发布构建会报错。
  5. 为什么不选择教程中的方法呢?因为 VercelNetlify 在大陆地区的访问都有点麻烦,而且速度慢。Vercel即使CNAME指向中国也是访问很慢,而Netlify则可能莫名其妙封禁用户。因此,我探索了CloudFlare方案。
  6. 每次发布构建GitHub都发邮件好烦怎么办?将GitHub的库 watch 改为 ignore 即可忽略邮件。但是这样你也会错过发布失败的提示,考虑到发布半分钟后你可能回去页面刷新预览,也不是不能接受。

总结

  1. Cloudflare免费资源有上限,但一般情况下个人很难用完。这个资源和workers是共享的,注意有workers大量需求的用户,观察资源的余量
  2. 最后,我个人强烈赞同新手看下obsidian社区软通达大佬对新手的 建议 ,那就是不要做那些花里胡哨的东西,笔记的本质是记录和总结。
  3. 作者主页
    1. 类星体
    2. 掘金
    3. 语雀
    4. 什么值得买
    5. bilibili
  4. 如有转载请注明原文出处
  5. 下期预告 无痛多端同步备份