Netlify CMS 开放式创作

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 价值 $200 的免费积分!

我喜欢“Git 支持的 CMS”这个术语。这个术语适用于一种新兴的 CMS 样式,它看起来和行为方式与任何其他 CMS 都非常相似,但有一个令人着迷的转折:它实际上不为您存储任何数据。这些 CMS 连接到一个 Git 仓库,其中数据存储在平面文件中(例如 Markdown)。您需要告诉 CMS 这些文件在哪里以及它们的结构。然后,当您使用 CMS 创建、编辑和删除内容时,这些更改会作为提交(或拉取/合并请求)对该仓库进行。太酷了。

例如,CloudCannon 可以专门为托管的 Jekyll 网站执行此操作。

但在 Indie Web / JAMstack 精神中,有一些玩家像 Forestry 和我使用最多的一个:Netlify CMS。

让我用一系列带有标题的截图来说明这一点。

我们要讨论的网站是我们的 Serverless 网站。它恰好是 Gatsby,但重要的是内容来自 Git 仓库 中的 Markdown 文件。
这是一个仓库中的 Markdown 文件示例(带有 Frontmatter)。我喜欢 Markdown,但我更喜欢在 GUI CMS 中处理内容。我之所以选择这种方式,是因为数据位于仓库中,这意味着我可以接受基于内容的拉取请求。
我确实收到了基于内容的拉取请求。这就是魔力所在。这正是我想要的。
Netlify CMS 基本上是两个文件。一个 index.html 加载一个 SPA 界面,它实际上可以做所有事情。还有一个配置文件,用来告诉它有关您的内容的信息。
有了 Netlify CMS,我拥有了我的 GUI CMS 幸福空间。这里面的任何更改都会在仓库中作为提交出现。

好的,好的,好的。这个“开放式创作”是什么东西呢?

在我写这篇文章的时候,它是一个 测试版功能

主要的一点是:我可以为我的网站使用 Netlify CMS。我的团队也可以使用它,因为我可以专门邀请他们加入仓库。但您,互联网上的随机用户,不行。如果您给我写信,告诉我您想成为网站的志愿者内容管理员,那么也许,好吧,我会邀请您加入仓库。(如果您使用的是 GitHub 后端,您是仓库的成员将允许您登录 Netlify CMS,因为现在 Open Authoring 只能与 GitHub 后端连接。)

但这很糟糕,因为随机的互联网用户无法通过 Netlify CMS 提交内容的拉取请求。这比手动分叉仓库等等要容易得多 - 虽然说真的,在 GitHub 上查看 Markdown 文件时单击小铅笔图标并对其进行编辑可以自动打开拉取请求(但它不能帮助您添加新内容或上传图像或任何其他操作)。

这就是开放式创作的用武之地。在我的 Netlify CMS 配置中,我基本上可以一行配置代码打开它。他们解释得很清楚

您可以使用 Netlify CMS 从 GitHub 用户那里接受贡献,而无需授予他们访问您的仓库的权限。当他们在 CMS 中进行更改时,CMS 会在幕后为他们分叉您的仓库,所有更改都将应用于分叉。当贡献者准备好提交他们的更改时,他们可以在 CMS 中将他们的草稿设置为准备审查。这将触发到您仓库的拉取请求,您可以使用 GitHub UI 合并它。

重点是我的。

想看看这其中的真正妙处吗?现在我们可以在所有内容上添加“编辑此内容”按钮,如果您单击它,您将直接进入 Netlify CMS 进行编辑。它适用于我、我的团队成员以及您,来自互联网的随机用户。

这正是我一直想要的。它将网站变成了一个维基!但存在足够的公共问责制(他们必须使用真实的 GitHub 帐户),我不必担心太多垃圾邮件或令人讨厌的行为。