Day25 - Astro Series: Connect CMS

Astro 系列文第二十五日:基础指令与设置

一个漂亮的渐层背景上面有一句标题:「串接 CMS」

前言

在 Astro 中串接 CMS 是一件非常容易的事情,可以到官方文件🔗查看各种 CMS 的传接方式。

什么是 CMS? Headless CMS?

内容管理系统 (Content Management System)是一种用于编写和管理网站内容的工具,可以让帮助撰写内容与管理网站资产,不同的 CMS 厂商有各式各样的特色像是:排程发布、编辑器、合作编辑、资产管理……等特色。

传统 CMS 会从内容管理到资料呈现一套包办,像是 Wordpress🔗 ,但 Astro 只在乎如何呈现内容,因此可以自由地抓取不同来源的资料,于是可以搭配「无头 CMS」,无头 CMS(Headless CMS) 实际上就是「只在乎资料的 CMS」,专注在编辑内容的功能并透过 API 来检索网页内容,让开发者有极高的自由度选择技术与呈现方式。

这样的模式大幅的分割了前端与内容管理,自由度是其最大的卖点,通常建设好一个无头 CMS 之后可以一边专注的产出内容与资料规范,一边前端则专注于索取资料与呈现内容。

无头 CMS 的差异? Git Based? API Driven?

无头 CMS 实作还可以再分为 Git Based 与 API Driven 两种类型,差别在于它们如何「管理储存内容」。 Git Based 将内容储存在类似 Git 这样的版控系统当中,结构简单直白,而 API Driven 则是架设专门的伺服器透过 API 动态的检索和呈现内容,架构更复杂且需要实际的伺服器待命运作。

我的经验

如果你的网站为轻量级且很少更新的静态页面,使用 Git Based 的 CMS 或完全不使用 CMS 是不错的选择,但如果你的网站横跨多个平台或有动态的需求则可以考虑 API Driven 类型的 CMS。

  • Front Matter CMS🔗 - 如果只是要一个简单快捷的 CMS 介面在 VSCode 当中是个不错的选择,完全支援 Astro。
  • Decap CMS🔗 - 最成熟的开源免费 Git Based CMS 方案,功能该有都有。前身为 Netlify CMS。
  • Strapi🔗 - 最成熟的开源且可自架的 API Driven CMS 方案也有提供线上伺服器服务。

推荐选择开源可自己架设的 CMS,原因是因为通常到最后都会有供应商绑定(Vendor Lock-in)的问题,但自架通常也会耗费大量的时间,因此依照当下需求评估即可。

总结

本章节了解了 CMS 与 无头 CMS 的差别,这类管理内容的工具并非必备,你仍然可以透过编写 Markdown 或原始码来编辑网页内容。添加 CMS 对于非开发人员管理网站至关重要,同时也能增进

参考资料