Github 博客內容管理解決方案 - 「netlifycms」
本人博客原文地址.
在使用 Github 作為博客很長一段時間在發愁,主要是有以下幾個痛點:
- 每次寫文章都要打開編輯器,感覺自己不是在寫文章而是在寫代碼
- 寫完只是想打個草稿,都要用
git提交以下更改,更像寫代碼了 - 不能隨時隨地的編輯,有時候我想用 ipad 修改點什么都不可以
由于以上幾個痛點,每次寫 Blog 感覺自己都需要費很大的力氣,還不如自己寫個筆記就過去了,
但是有些好的東西總是要分享出來才會有價值啊,于是我開始尋找 Github Blog 的 CMS 解決方案,
先來一張效果圖,

netlifycms 與 jekyll-admin 的對比
剛開始我找到的是 jekyll-admin 這款 jekyll 的 CMS,因為本人用的是 jekyll,但是發現這款 jeklly 還需要一臺服務器,也就是他編輯的只是服務器上的檔案,
當初選擇使用 Github 作為 Blog 就是想在沒有個人服務器的情況下 Blog 依然能作業,雖然目前是利用 CI 部署在自己的服務器上方便國內的搜索引擎爬蟲進行爬取,目的是優化 SEO,提高國內的訪問速度,但是還是想要一個不需要自己部署后端的 CMS,
于是我就找到了 netlifycms,經過配置完后我大概了解了他的作業原理,
首先你的 CMS admin 頁面是跟你博客一起部署在 Github 上面的,admin 的權限則是通過 Github OAuth 來控制的,在你修改了頁面之后,會通過 js 提交給 netlify,netlify 會通過 Github OAuth 獲取的權限來在你修改了文章之后幫你做 git commit 的操作,大概的原理圖如下,

廢話不多說,我們跟著官方檔案開始吧,
為你的博客添加 netlifycms
由于本人用的是 jeklly 博客,文章中的演示部分均為 jeklly,當然 netlifycms 不只支持 jeklly,還支持很多其他型別的 Blog,如果是其他型別的 Blog 可以參考官方檔案的 Guides,不過應該都是大同小異的,不過建議對比本片文章來配置,如何創建 Oauth 應用可以參考本文,因為官方檔案沒有講的太詳細,
當然開始之前你需要有一個已經部署好的博客,沒有部署好的可以參考 jeklly 的部署指引檔案,
增加 admin/index.html 檔案
創建一個 admin/index.html 在你的倉庫根目錄下,這個檔案內容看起來像這樣,注意官方檔案中并沒有添加 netlify-identity-widget.js 這個 js ,這個是用來校驗你的身份的,需要加上,
<!-- admin/index.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src=https://www.cnblogs.com/elfgzp/p/"https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
Content Manager
<body>
<script src="https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js"></script>
