我喜欢“Git 支持的 CMS”这个术语。这个术语适用于一种新兴的 CMS 样式,它看起来和行为方式与任何其他 CMS 都非常相似,但有一个令人着迷的转折:它实际上不为您存储任何数据。这些 CMS 连接到一个 Git 仓库,其中数据存储在平面文件中(例如 Markdown)。您需要告诉 CMS 这些文件在哪里以及它们的结构。然后,当您使用 CMS 创建、编辑和删除内容时,这些更改会作为提交(或拉取/合并请求)对该仓库进行。太酷了。
例如,CloudCannon 可以专门为托管的 Jekyll 网站执行此操作。
但在 Indie Web / JAMstack 精神中,有一些玩家像 Forestry 和我使用最多的一个:Netlify CMS。
让我用一系列带有标题的截图来说明这一点。




index.html
加载一个 SPA 界面,它实际上可以做所有事情。还有一个配置文件,用来告诉它有关您的内容的信息。
好的,好的,好的。这个“开放式创作”是什么东西呢?
在我写这篇文章的时候,它是一个 测试版功能。
主要的一点是:我可以为我的网站使用 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 帐户),我不必担心太多垃圾邮件或令人讨厌的行为。
哇,这对迄今为止我一直在构思但无法通过 Netlify 或静态网站执行的许多想法来说是一个改变游戏规则的东西。喜欢它!