Hexo瞎折騰系列(8) - 添加評論系統
前言
Hexo的NexT主題本身就集成了一些評論系統,多說啊之類的已經關閉服務的略過不提,目前比較多人用的有暢言、來必力livere、Gitment、Gitalk、Disqus等。
我剛用的評論系統的時候,網易雲跟貼和多說已經gg了,暢言需要備案,Disqus需要FQ,Gitment和Gitalk類似,都需要GitHub賬號。經過搜集資料和考慮,我最終還是決定使用Gitment。只是在用了一段時間後,終於還是放棄了Gitment,轉而使用來必力livere。
Gitment的優缺點
最初我選擇使用Gitment的原因如下:
- Gitment是一個基於GitHub的issue來開發的評論插件,本身很有創意,對於我這種沒事看看GitHub的也很有吸引力。
- 使用Gitment進行評論需要有GitHub賬號,這無形中過濾掉了一些評論者,畢竟不是誰都有GitHub賬號的,也不是誰都能登陸上GitHub的。
- GitHub的評論數據存放在GitHub的issue裏,基本不用擔心數據丟失或者GitHub關閉服務,畢竟GitHub可是全球最大同性交友社區(滑稽)。
當我美滋滋地享受了Gitment一段時間後,開始發現一些問題:
- GitHub是個神奇的網站,有時候會登陸不上去,這導致我的個人站點加載頁面時無法把Gitment加載出來,這使得我的頁面長時間處於一片空白的狀態,用戶體驗極差,而且最後頁面加載出來了,Gitment評論模塊依然沒有加載出來。
- 我希望我的站點可以不分國界,所以我將站點分別部署到了Coding.net和GitHub上,這樣可以國內外都快速訪問到站點(這個需要域名才能實現)。由於國內有些地區在有些時段是無法訪問到GitHub的,這將導致我的頁面長時間假死。
- Gitment的使用太繁瑣,每一篇文章都必須先初始化一遍,才能使用評論系統,如果你有一百篇文章,你就需要手動初始化一百次!雖然後來有腳本一鍵初始化,但還是很麻煩。
- issue的濫用。因為Gitment是建立的issue之上的,當你的文章越來越多,你會發現你的站點倉庫裏的issue會越來越多,這就不太友好了。
綜上所述,我還是放棄了Gitment,轉投了來必力的懷抱。
Gitment使用流程
雖然現在沒有使用Gitment了,但這裏還是記錄下當初遇到的問題,方便回顧或者大家解決類似的困難。
安裝模塊
使用Gitment需要安裝模塊:
npm i --save gitment
申請應用ID與密鑰
因為Gitment需要GitHub的授權,所以需要先去New OAuth App申請一個密鑰,需要填寫的內容如下:
Application name:隨便寫
Homepage URL:這個也可以隨意寫,就寫你的博客地址就行
Application description:描述,也可以隨意寫
Authorization callback URL:這個必須寫你的博客地址
這裏只有最後一個callback必須寫準確,申請成功後你可以看到ClientID
和Client Secret
,這個會被使用到,另外註意不要把這個ID和密鑰告訴別人--
在主題配置文件中啟用
# Gitment
# Introduction: https://imsun.net/posts/gitment-introduction/
gitment:
enable: true
mint: true # RECOMMEND, A mint on Gitment, to support count, language and proxy_gateway
count: true # Show comments count in post meta area
lazy: false # Comments lazy loading with a button
cleanly: false # Hide 'Powered by ...' on footer, and more
language: # Force language, or auto switch by theme
github_user: {you github user id}
github_repo: 隨便寫一個你的公開的git倉庫就行,到時候評論會作為那個項目的issue
client_id: {剛才申請的ClientID}
client_secret: {剛才申請的Client Secret}
proxy_gateway: # Address of api proxy, See: https://github.com/aimingoo/intersect
redirect_protocol: # Protocol of redirect_uri with force_redirect_protocol when mint enabled
這裏的配置,只有github_user
,github_repo
,client_id
,client_secret
是必須填準確的,其他的可以不使用。
初始化Gitment
到這裏為止已經全部配置完畢,接下來只需要登陸你的個人站點,然後手動給每篇文章初始化Gitment就行了。初始化也很簡單,打開每篇文章,在下方的評論模塊那裏點一下初始化就行,以後就可以直接評論了。據說由一鍵初始化所有文章的腳本,我沒用過,不清楚。
Gitment踩坑記錄
這裏說一下當初折騰了我很久的一個地方,在主題配置文件裏有個github_user
,這個由於註釋寫的是Your Github ID
,我誤以為是要填寫的不是用戶昵稱,而是一串數字id。於是就去了GitHub的api裏查看了自己的id,然後填了一串數字進去,之後花費了我幾個小時的時間,始終有授權失敗的錯誤,最後終於發現,這個ID其實是要填的用戶昵稱...orz
GitHub的api地址:https://api.github.com/users/xxx
把這裏的xxx隨便改成某個用戶名,可以拿到對方的json數據,裏邊有各種用戶首頁上的數據信息。
更多Gitment踩坑相關的文章可以參考:Gitment評論功能接入踩坑教程
來必力livere的使用
來必力的使用就簡單多了,直接去官網註冊個賬號,拿到來必力City版安裝代碼裏的data-uid
,把這個uid填寫到主題配置文件裏的livere_uid
後就行,記得id要和前邊的冒號之間有一個空格,否則在啟用hexo服務的時候會解析出錯。
這樣我們的來必力就使用成功了,平時可以去來必力的後臺系統查看站點的評論數據等。
如果不會註冊安裝來必力的,可以看看這篇文章
參考鏈接
- Hexo 使用Gitment評論功能
- Gitalk:一個基於 Github Issue 和 Preact 開發的評論插件
- 添加網易雲跟帖(跟帖關閉,已失效,改為來必力)
Hexo瞎折騰系列(8) - 添加評論系統