#发布 #数字花园 #obsidian
引言
能读到这篇文章说明你对Obsidian有一定了解了,双链笔记的特性已经不用赘述。该文档介绍了如何通过GitHub私有库和Cloudflare的Pages服务资源实现完美的一键发布的方法。
能力要求
- 该方案需要懂一点点GitHub的操作
- 本文假定如果用户需要自定义域名,那么用户应具有添加域名解析CNAME的能力,相关知识不再赘述
使用插件
数字花园 Digital Garden
第三方服务
参考文章
参考方案和对比
功能点和限制 | 数字花园(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文件夹保存你的配置 这些都不用手动干涉
克隆库
- 首先fork仓库 github.com/oleeskild/d…
- 然后设置仓库为private
CloudFlare 构建配置
- 进入控制台 选择左侧目录 Workers 和 Pages
- 选择 创建应用程序
- tab中选择Pages
- 点击连接到git
- 授权github权限
- 点击 从您的帐户部署站点
- 选择github 账户 并选择之前fork的仓库 digitalgarden
- 点击开始设置
- 预设类型留空 构建命令 npm run build 构建输出目录 dist
- 点击开始
域名绑定
- 返回CloudFlare控制台,Workers 和 Pages面板的Workers模块中 点击你创建的 Pages
- tab中选择自定义域
- 设定 填入你想好的域名 下一步
- 选择我的 DNS 提供商
- 开始CNAME设置,这里会莫名其妙出错
- 不管他返回控制台
- 再来到这里的域名设置会看到新增的一条是停用状态
- 点击展开 获取目标值 xxx.pages.dev
- 去你的dns服务商 把该域名增加cname
- 返回第5部位置 点击检查dns记录 需要稍微等待一下 等待成功后下一步
插件配置
- 点击github.com/settings/to… 新建一个令牌
- 复制 令牌填充到GIthub token这栏
- Github repo name 那一栏填你 克隆的库名
- Github Username 填你的Github用户名称
- 下面的Base URL填你的域名 包含子域名 不带协议
- Slugify Note URL 置空 否则中文路径出错
- Features这里配置页面出现的内容
- Appearance这里控制站点的名称 主题样式 语言 图标等
- 关闭后自动保存
尝试发布
- 写一个新文档
- 添加文档属性 可以通过快捷键⌘(ctrl)+p唤出快捷栏,输入tag,选中 Digital Garden: Add publish flag,然后文章头部出现文档属性
- ⌘(ctrl)+p 然后输入publish single Note 回车即可看到提示栏信息发布状态
- 返回CloudFlare控制台,Workers 和 Pages面板的Workers模块中 点击你创建的 Pages 查看构建状态等待完成 如果有错误 查看报错信息
- 去自己的域名看看发布效果
- 左侧的工具栏有个按钮 可控制批量更新发布
其他
- 网站样式、风格和标题等在插件的配置里有详细说明,可以参考插件文档。
- GitHub账户务必做好隐私保护,将库设为 private 并限制好CloudFlare授权的库,最好不要选择全部授权。
- 图床使用GitHub和Cloudflare,无需繁琐的额外配置,相当于白嫖了。
- 注意标记添加文档属性 dg-home 为 ==首页==,可以通过快捷键⌘(ctrl)+p唤出快捷栏,输入tag,选中 Digital Garden: Add publish flag,然后文章头部出现文档属性,添加 dg-home,选则属性类型为复选框,然后选中即可设置当前页为首页。注意不要重复设置首页,发布构建会报错。
- 为什么不选择教程中的方法呢?因为 Vercel 和 Netlify 在大陆地区的访问都有点麻烦,而且速度慢。Vercel即使CNAME指向中国也是访问很慢,而Netlify则可能莫名其妙封禁用户。因此,我探索了CloudFlare方案。
- 每次发布构建GitHub都发邮件好烦怎么办?将GitHub的库 watch 改为 ignore 即可忽略邮件。但是这样你也会错过发布失败的提示,考虑到发布半分钟后你可能回去页面刷新预览,也不是不能接受。