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的部署文件還沒有,後面再加吧,有沒有人用還說不好,畢竟選擇太多,容易看花眼。