Skip to content

CMS

运行本地 CMS 以简化内容管理

使用

通过脚手架创建项目时,会询问是否需要添加 CMS,选择 在初始化完成后直接运行 npm run cms 即可使用。

后续补充 CMS 功能,需要先运行 npm install @huyikai/local-cms -D 安装依赖,然后在 package.jsonscripts 中添加脚本命令 "cms": "node node_modules/@huyikai/local-cms/cms.js docs" 再运行 npm run cms 即可。

TIP

脚本命令中的 docs 为 CMS 的执行目录,需要与 VitePress 的执行目录一致,通常情况下这个目录会使用 docs ,可以自定义修改该目录,但是要注意需要同步修改脚本命令和 config.jsVitePress-Helper 的初始参数。

功能

  • UI 基于 Antdv。
  • 通过脚本运行。
  • 对目录和文件实现基础的增删改查功能。
  • Markdown 文件的编辑,实时预览保存。

计划

  • Markdown 编辑器使用体验优化。
  • 文件、目录移动以及拖拽移动。
  • 本地文件导入、批处理。
  • 链接内容导入。
  • 版本控制。
  • 静态资源(映像)管理。

关于 CMS

开发这个 本地CMS,是因为在使用过程中发现,即使有了导航栏和侧边栏的工具,但仍然存在一些维护成本,比如需要在开发工具中管理内容及目录,又要在 markdown 编辑器中编辑内容。想进一步简化这个过程的操作,更加专注于内容的创作和管理。

VitePress 是一个静态站点生成器,常见的使用方式是编辑内容然后将代码推送到代码仓库,通过代码仓库的 Pages 和工作流自动发布站点。也可以在服务器上直接放置构建后的代码文件或者通过容器部署。

CMS 系统有很多已经成熟的项目,之所以选择开发一个简单的本地 CMS ,而不是使用现有 CMS 系统的原因如下。

目前了解的大多数 CMS 系统需要服务器和数据库来搭配对内容管理和存储。 这种使用方式比较成熟,但对于当前的使用场景来说,体量过重了,增加额外的开发成本、使用成本。和 VitePress 的使用体验也有所割裂,通过 CMS 提供的接口获取内容对 SEO 也不够友好。 最主要的它们往往还需要额外付费订阅才能使用。

还有一种基于 Git 的 CMS 管理系统,相比较更适合,但也存在使用成本和体验的问题。当然这并不是这些 CMS 系统的问题,只是使用场景没有契合。

所以我认为在使用 VitePress 的场景下需要的是一个使用简单,没有太多概念和配置,甚至用起来像一个 markdown 编辑器的本地 CMS。

VitePress-Helper 中的 CMS 实际上是一个独立开发的库,让 VitePress 更加灵活的同时,也为了方便其他情况下使用,所以将 CMS 独立了出来。

Released under the MIT License.