AUTUMN 𓅹

使用 Sanity 作为博客内容管理系统

NaN views

Image

不久前就关注到 sanity.io 这个 headless CMS,最近恰巧看到 tinloof 的技术栈后下定决心准备将博客从之前的 MDX 迁移过去。

之前的大部分文章都存放在博客源代码的一个文章目录下,都是以 md 格式编写。此外,我因为会插入一些 Tweets,所以自定义了一些组件。平常编写文章的时候会写入诸如 <Tweet id="xxx"> 的东西。为了在编写的时候能够查看到大致的文章效果,我通常会开个 dev 本地访问 localhost:3000 去预览一下。发布的话还得不停的手动把代码推送上去,流程还是比较长的。

那么假设我换用了 Sanity 后,我的发布流程就会简单许多,只需要到它的 studio,去按照已定义过的 schema(例如一个文章拥有发布时间,Tags,标题内容等)在线编辑相关内容然后点击发布就可以了,这时候代码相关的东西是不需要变更的,因为文章已经存储到 Sanity 上了。它还具备自动保存、定时发布、预览和团队协作等一些高级特性。对于我来说比较重要的是所见即所得和快速修改文章并发布出去。

技术上 Sanity 应该用了 schemaless 的 JSON 数据库,同时附带了一个类似 GraphQL 的 JSON 查询语言 GROQ。这一切都是为了让用户获得高度自定义能力。

最后

目前看,Sanity 给到的免费额度还比较高。其中文件存储甚至给到了 100 GB,虽然我为了白名单最后还是用了 Cloudflare R2,但是对于一般不喜欢折腾的用户来说是非常舒服的。唯一在我看来比较麻烦的可能就是它是一个纯云服务,不支持自建,且存储的 JSON 格式,可能会在未来备份文章或者迁移的时遇到比较大的麻烦。