hexo博客添加gitalk評論系統


  經過了一天的折騰,我終於為自己的博客添加上了評論系統。坦率的講,為什么網上那么多方案我還要自己寫一篇博客,那就是因為他們說的都有bug,所以我要自己總結一下。

  我選用的是gitalk評論系統,原因是因為它可以直接在github上管理評論,不需要在別的平台注冊,特別方便。下面我來詳細說一下hexo博客是如何添加gitalk評論的。

  先看一下效果:

image

一、配置github

  首先進入github,點擊右上角頭像【Settings】->【Developer settings】->【OAuth Apps】->【New OAuth App】進行基本配置(一定要細心,看清截圖中的紅字)。

image

  上面的填寫成功之后進入,我們需要的是生成的Client ID Client Secret

image

二、博客配置

  上面的確認無誤后,我們進行配置博客,引入gitalk。

  首先進入主題的配置文件_config.yml(注意是主題的配置文件,不是博客根目錄下的配置文件),添加gitalk配置(一定要仔細,缺一不可)。

gitalk:
  enable: true 開啟gitalk評論,不需要配置
  owner: github用戶名
  admin: github用戶名
  repo: 博客的倉庫名稱(注意不是地址)
  ClientID: 上面生成的Client ID
  ClientSecret: 上面生成的Client Secret
  labels: 'gitalk' github issue 對應的issue標簽(新建一個)
  distractionFreeMode: true  無干擾模式,不需要更改

   下面是我的配置:

image

   上面配置完畢后,進入主題目錄->【layout】->【_partial】->【post】目錄,在當前目錄下新建一個gitalk.ejs文件,寫入如下代碼:

<link rel="stylesheet" href="https://unpkg.com/gitalk@latest/dist/gitalk.css">
<script src="https://unpkg.com/gitalk@latest/dist/gitalk.min.js"></script>
<script src="https://priesttomb.github.io/js/md5.min.js"></script>
<script type="text/javascript">
    new Gitalk({
        clientID: '手動馬賽克',
        clientSecret: '手動馬賽克',
        repo: 'qisi007.github.io',
        owner: 'qisi007',
        admin: 'qisi007',
        id: md5(location.pathname),
        distractionFreeMode: true
    }).render('gitalk-container')
</script>

   里邊的配置我就我說了,和上面的一摸一樣,然后進入上一級的目錄,路徑是
主題目錄->【layout】->【_partial】下的article.ejs文件最后面加入下邊的代碼:

<% if (theme.gitalk.enable){ %>
	<div id="gitalk-container"></div>
	<%- include post/gitalk.ejs %>
<% } %>

  好了,到此為止,所有的配置就完成了。

  執行命令hexo d -g打包發布,過幾分鍾應該能看到效果了,應該能看到效果了。

  評論管理頁面在倉庫的issue里邊。

image

三、問題

  大部分問題都是因為Homepage URLAuthorization callback URL這兩個地址錯誤引起的,比如服務器錯誤,或者是點擊登錄跳轉到博客主頁等等。

  還有個問題是進入博客詳情頁后,評論插件上面顯示Error: Validation Failed, 這是因為文章名稱經URL編碼后添加到issues的label里,但是label的長度上限是50個字符,所以文章名有些長的都會生成label失敗,也就沒辦法評論了。

  所以上面我們用到了md5,文章名經URL編碼后轉MD5,然后再生成label,這樣就不會超過長度了。

image

四、寫在最后

   我的博客主題用的是freemind,這是一個復古風格的主題,這個主題本身不帶評論插件的,本人進行了二次封裝,修改了一些樣式和bug,並上傳到了自己的github中,歡迎star。 傳送門

個人博客主頁:傳送門

開源項目(react-admin-plus):傳送門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM