1 前言

没错,我又开始倒腾了。

之前用的Github Page + Jekyll现在觉得用处不大了,也没有多少写作热情了,于是把目标转向了Obsidian之类的知识图谱建设中。

一开始觉得只自己用没什么问题,后来写着写着发现这样没有办法满足我的分享欲,这可不行,于是开始想着怎么把Obsidian的文章分享出去。

我先了解了一下Digital Garden,事实上我觉得还是挺不错的,但它默认部署到Vercel上让我有点难受,毕竟国内访问还是不稳定。

于是我打算部署到国内的对象存储上,例如七牛云、阿里云、腾讯云、微信云之类的,这样速度会快很多。最终我将目光放到了阿里云上(因为我有备案,方便快捷),现在的新问题是,使用什么方法将作品部署到对象存储里。

2 方案

我选择Obsidian+Quartz+OSS的方式。通过阿里云来托管静态网站。

3 步骤

3.1 构建

3.1.1 安装依赖并clone quartz

参考Welcome to Quartz 4 (jzhao.xyz)安装NodeJsnpm工具。

https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create

根据提示可以选择创建空的仓库。

3.1.2 将content作为Obsidian vaults

打开Obsidian,将content目录设置为本地仓库。

3.1.3 个性化

个性化可以参考Configuration (jzhao.xyz)来实现网站的个性化,需要注意的是,如果你希望白名单发布而不是默认的黑名单发布的话,就需要留意一下Private Pages (jzhao.xyz)。具体表现为:

白名单文章需要标记:

3.1.4 构建

npx quartz build --serve

可以访问http://localhost:8080/预览效果。

此时目录下的public文件夹里就是静态网站了。可以参考Hosting (jzhao.xyz)

3.2 发布到阿里云

3.2.1 创建阿里云子用户

在已经登录阿里云控制台的情况下,在RAM 访问控制 (aliyun.com)创建一个子用户,不用给额外权限。

点击刚才创建的子用户,创建AccessKey

要记住其中的AccessKey IDAccessKey Secret,后续会用。

3.2.2 创建对象存储Bucket

OSS管理控制台 (aliyun.com)创建Bucket

需要额外注意:

  • Bucket名称:这里为自定义设置,要记下来,后续会用
  • 地域:选择有地域属性,地域自己选择就好,选择后下面的Endpoint会变。
  • 阻止公共访问:不要开通,否则无法选择下面读写权限
  • 读写权限:公共读,否则其他人无法匿名访问你的博客 点击完成创建

然后进入刚才创建的Bucket设置页面,在这个页面点击新增授权

勾选刚才创建的子账号,并设置完全控制。

接下来可根据需要设置静态页面:

设置防盗链:

设置域名:

然后我们在文件列表里将public目录的文件上传上去。

接下来就可以通过设置好的域名访问了。