Netlify提供静态网站的托管能力,Netlify CMS为这些静态网站提供管理内容的能力,可以让用户在线编辑源文件。

先扯个闲篇

经过几十年的发展,Web前端的能力越来越强,今天已经可以在浏览器里支持如图片和视频编辑等任务了。前端变强后,对后端的需求就渐渐减少了。现在很多Web应用没有后端,或只使用Javascript访问一两个后端服务。也就是说越来越多的网站变成静态网站。

最近看到一个新闻,随着WebAssembly的标准化,三十年前用C++编写的AutoCAD程序竟然可以编译成WebAssembly,然后在浏览器中运行。不知道这是C++程序员的福音,还是前端程序员的福音。

Netlify CMS是什么

简单的说,Netlify CMS给静态网站增加了一个控制台界面。如果在本站的网站后面加上/Admin/,可以看到一个登录界面。这个登陆界面来自于Netlify CMS的登录管理系统,也就是Netlify CMS Identity。进入控制台之后,可以看到一个类似文件管理器的界面,可以编辑Markdown源文件。具体可以访问https://www.netlifycms.org/,首页有个视频。

也可以访问https://cms-demo.netlify.com/查看具体demo,无需密码就可以登录。

Netlify CMS支持Git工作流。也就是说网站的源文件是存储在一个Git仓库。 在Netlify CMS的Admin界面添加了文件之后,会被自动提交到Git仓库,然后触发CI(自动集成)流程,Netlify会自动帮你部署更新后的版本。

从流程的角度,如果没有Netlify CMS,那么工作流是

  1. 本地编辑Markdown源文件,并提交到本地Git仓库。
  2. 从本地Git仓库推送到服务器Git仓库。
  3. 服务器Git仓库通知Netlify来构建新的版本。
  4. Netlify发布新构建的版本。

如果使用Netlify CMS,上面的第1和第2步就被下面的步骤替代:

  1. 登录Admin控制台编辑文件。
  2. 保存文件后Netlify CMS自动帮你提交到服务器Git仓库。

为了完成上述步骤,你的服务器Git仓库必须能够支持Netlify CMS。目前:

  • GitHub完全支持
  • Gitlab最近也支持了,部分功能还不可用(比如Editorial Workflow
  • Bitbucket的支持也即将到来

其他

如何在已有的网站配置Netlify CMS,可以参考[Add Netlify CMS to Your Site](https://www.netlifycms.org/docs/add-to-your-site/)。试了一下,虽然配置成功,但是稍微还是显得有点繁琐,希望以后能够更简单化吧。

参考

  • 提供CMS功能的后端服务列表:https://headlesscms.org/
  • Netlify CMS网站自身的配置:https://github.com/netlify/netlify-cms/blob/master/website/site/static/admin/config.yml

(完)