QuillCMS是一个基于Nodejs、Nuxtjs、MongoDB构建的内容管理系统,结构清晰,便于拓展,极其适合前端工程师进行二次开发。
二话不说,先看源码/演示站
GitHub: https://github.com/ximolang/QuillCMS
演示站:跨界猿
为什么要写个CMS
搜索Nodejs CMS
可以看到很多用Node写的内容管理系统,大名鼎鼎的KeystoneJS是其中一个,但是在我想要去利用它搭建一个站点尝试二次开发的时候却发现并不是那么容易理解,至少在我刚接触的时候是这样。国内还有DoraCMS、NoderCMS之类的系统,DoraCMS我也曾有过尝试,但是到了2.0的版本后变化比较大,要理清楚系统各部分的关系是比较困难的。
想来想去,还不如自己写一个简单的、不需要过多配置、一句命令就能跑起来的CMS。
技术选型
CMS的核心也就是后台的内容管理,同时具有前台展示、SEO需求等功能。考虑到选用Node做为后端的前端工程师偏多,所以干脆选用Nodejs+Nuxtjs+MongoDB进行构建。Nuxtjs支持服务端渲染,上手也很简单,是基于vue的服务端渲染程序的不二选择。后端框架选用了Express,很多人可能会说为啥不选Koa2,当时选的时候还是有所考虑,虽然我更喜欢Koa但还是选择了Express,如果现在开始再写一个CMS(或者其他项目),我绝对选Koa2,或者直接Egg.js。
功能设计
后台管理
- 用户管理
- 文章管理
- 分类管理
- 标签管理
- 友链管理
- 广告管理
- 系统配置(配置文件修改)
- 上传图片至七牛云(可选)
前台展示
- 风格简洁,响应式
- 首页、文章列表、文章详情、用户中心
- 文章的分享、点赞、收藏、评论功能
- 用户中心修改资料、关注用户
- 文章发布功能(暂未提供修改功能)
系统特点
整体功能偏简,并没有进行过多的通用性设计,这对于使用者来说有好有坏,通用功能比较基础,其他的需要自己开发。
前台展示风格也需要自己自定义,毕竟网站基本不会一个样。虽然需要自定义,但我相信了解Nuxtjs进行二次开发是及其简单的事情,因为每个页面是独立的,每个页面引用的组件也对应放在目录中。
总结
写这个CMS的过程让我第一次在一个月的时间里坚持Github全绿,我对前后端了解也通透了许多。CMS的部署文档还没有,后面再加吧,有没有人用还说不好,毕竟选择太多,容易看花眼。