為Next主題添加多說評論系統(tǒng)

奔跑吧

前言

幾個月前,在好奇心的鼓動下,利用Github PagesHexo以及Next主題搭建一個屬于自己的個人主站,由于時間傖俗,搭建成功后就沒有好好完善一下,可以參照文章徒手教你建自己的博客,文章里有搭建免費(fèi)博客的詳細(xì)步驟。

這周末沒有加班,靜下心寫了篇文章,發(fā)布成功后,卻又遇到Github Pages更新的原因?qū)е虏┛偷捻撁娉霈F(xiàn)空白,又順手寫了一篇解決頁面空白問題的博客,文章為關(guān)于hexo主題next博客加載空白頁的處理,文章記錄了出現(xiàn)問題原因和解決的多種方式。

解決完問題,本以為沒有什么優(yōu)化的了,此刻,看到別人的博客都可以評論和分享,后來考慮了一下,評論的功能對于反饋博客中問題很有幫助,于是乎,決定搞一下。

在添加評論的過程中,主要遇到下面的三個問題:

  • 1、如何選取合適評論系統(tǒng);
  • 2、添加評論系統(tǒng)后,如何根據(jù)文章對評論進(jìn)行區(qū)分;
  • 3、如何解決評論后的郵件提醒。

后續(xù)的內(nèi)容將圍繞上述三個問題進(jìn)行展開。

選取合適評論系統(tǒng)

disqus多說兩種評論系統(tǒng)。

  • disqus加載速度較慢,并且用戶必須先注冊disqus用戶才能評論,流程很繁瑣,最重要的是需要翻墻,這可是致命一擊啊。

  • 多說可以很好避開上述的缺點(diǎn),加載速度快、利用社交賬號登錄就能評論、還帶有郵件提醒功能,對比一下,簡直天壤之別,果斷選擇多說。

安裝多說

進(jìn)入多說網(wǎng)站,點(diǎn)擊我要安裝,具體設(shè)置如下圖:

多說設(shè)置圖

點(diǎn)擊創(chuàng)建,選擇通用,就會顯示一段嵌入評論的通用js代碼,如下圖:

通用代碼圖

替換主題中指定的文件

  • 首先,說一下我使用的是Next主題,需要修改代碼文件是_config.ymlduoshuo_shroname,如下:
duoshuo_shortname: 填寫上述步驟注冊的shroname
  • 還需要修改目錄themes/next/layout/_partials/comments.swig下的comments.swig。

  • 若你是landscape主題,需要修改themes\landscape\layout\_partial\article.ejs目錄下的article.ejs文件

  • 找到原文件中的被替換代碼:

    <div class="ds-thread" data-thread-key="{{ page.path }}"
          data-title="{{ page.title }}" data-url="{{ page.permalink }}">
      </div>
  • 替換的代碼如下:
 <section id="comments">
<!-- 多說評論框 start -->
<div id="ds-thread" class="ds-thread" data-thread-key="{{ page.path }}" data-title="{{ page.title }}" data-url="{{ page.permalink }}" }}"></div>
<!-- 多說評論框 end -->
<!-- 多說公共JS代碼 start (一個網(wǎng)頁只需插入一次) -->
<script type="text/javascript">
var duoshuoQuery = {short_name:"shortTime"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0] 
 || document.getElementsByTagName('body')[0]).appendChild(ds);
 })();
 </script>
<!-- 多說公共JS代碼 end -->
</section>
  • 需要注意的是:data-thread-keydata-title、data-url這三個變量一定要嚴(yán)格按照上述代碼格式書寫,否則會導(dǎo)致某一篇文章評論會顯示在所有的文章里,造成數(shù)據(jù)的不準(zhǔn)確。

  • 這三個變量的具體含義在上述中已闡明(data-thread-key=請將此處替換成你站點(diǎn)的ID data-title=請?zhí)鎿Q成文章的標(biāo)題 data-url=請?zhí)鎿Q成文章的網(wǎng)址).

  • 上述的步驟都順利完成后,多說評論系統(tǒng)基本功能就部署好了,可以發(fā)布博客體驗(yàn)一下。

添加評論郵件提醒

  • 多說自帶的郵件提醒功能是不支持主動評論提醒的,比如說在某一篇博客中,有人主動評論留言的話,多說此時是不會郵件提醒的。

  • 多說所謂的郵件提醒是以別人回復(fù)別人的評論為前提的,即你不是回復(fù)他人的評論博主就收不到你評論回復(fù)的提醒。

  • 從這一點(diǎn)上看,多說這一功能有失人性化的設(shè)計,故自己動手解決這個郵件提醒不完整的問題。

  • 從分析多說提供的API入手,同步用戶到多說評論框調(diào)用代碼參數(shù)說明,得知可以使用data-author-key變量設(shè)置主動郵件提醒。

  • 我們需要做的是,自定義同步一個用戶到多說服務(wù)器,并將該用戶設(shè)置成作者身份,進(jìn)而取得該用戶在站點(diǎn)的ID,將該ID賦值給data-author-key加在多說的評論框里即可。

  • 開始動手....

  • 在桌面或其他目錄下,新建一個文件夾,命名為js或者其他,進(jìn)入該文件夾,利用終端執(zhí)行下面的命令:

npm install --save-dev request
  • 需要等上幾分鐘,此時你可以進(jìn)行下一步了。

  • 利用sublime或其他工具新建一個myuser.js文件,將下面的代碼復(fù)制進(jìn)文件夾,并修改相應(yīng)的data數(shù)據(jù)

var http = require('request');

var data = {
  'short_name'         : '',     // 你的short_name,后臺管理那里可以看到
  'secret'             : '',     // 密鑰,后臺管理那里可以看到
  'users[0][user_key]' : '1',    // 用戶在站點(diǎn)的ID,就是后面需要設(shè)置的 data-author-key值,可以隨意設(shè)置,這里默認(rèn)為1吧
  'users[0][name]'     : '',     // 顯示的名字
  'users[0][email]'    : '',     // 提醒的郵箱
  'users[0][role]'     : 'author'// 用戶的類型,設(shè)置為作者
};

http.post({url:'http://api.duoshuo.com/users/import.json', form: data}, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log('Post data to Duoshuo success');
  }
  else{
    console.log('Post data to Duoshuo fail');
  }
});
  • 將上面代碼中的數(shù)據(jù)按照自己的多說賬戶設(shè)置好之后,執(zhí)行以下命令完成數(shù)據(jù)同步到多說服務(wù)器:
node myuser.js
  • 若輸出為Post data to Duoshuo fail那就重新檢查以下data數(shù)據(jù)是否修改正確;

  • 若輸出為Post data to Duoshuo success,那么就登錄到多說后臺,在用戶那里看到新添加的用戶,如下所示;

后臺管理
  • 若后臺顯示的角色不是作者,可以手動改成作者。

  • 去目錄themes/next/layout/_partials/comments.swig,修改文件comments.swig中的那段代碼(見上面描述)為:

    <section id="comments">
    <!-- 多說評論框 start -->
    <div id="ds-thread" class="ds-thread" data-thread-key="{{ page.path }}" data-title="{{ page.title }}" data-url="{{ page.permalink }}" data-author-key="{{ theme.duoshuo_info.data_author_key }}"></div>
    <!-- 多說評論框 end -->
    <!-- 多說公共JS代碼 start (一個網(wǎng)頁只需插入一次) -->
    <script type="text/javascript">
    var duoshuoQuery = {short_name:"shortTime"};
    

    (function() {
    var ds = document.createElement('script');
    ds.type = 'text/javascript';ds.async = true;
    ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
    ds.charset = 'UTF-8';
    (document.getElementsByTagName('head')[0]
    || document.getElementsByTagName('body')[0]).appendChild(ds);
    })();
    </script>

    </section>

  • 上述代碼與之前的比較,可以看出其實(shí)就是增加了一個變量:

data-author-key="{{ theme.duoshuo_info.data_author_key }}"
  • 這里設(shè)置好之后,修改主題下的_config.yml文件,增加一行配置,如下:
duoshuo_info:
  data_author_key: 1 #此處填寫上面js腳本中的data變量中的users[0][user_key]的值,因?yàn)樯厦鏋?,這里我就填寫為1了
  • 到這里基本的工作就完成了,重新發(fā)布博客,就可以使用主動評論郵件提醒了。
  • 參照我的博客
  • PS一句,這種郵件提醒不是實(shí)時提醒,而是每天一封匯總郵件。如果你中途查看了這個評論的話,也是不會郵件提醒的。

以上內(nèi)容是筆者在創(chuàng)建個人博客過程中一些做法,大家如有其它意見歡迎評論。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內(nèi)容

  • 點(diǎn)擊訪問原文您還可以加入全棧技術(shù)交流群(QQ群號:254842154) Ghost作為一個純粹的博客平臺,暫時還沒...
    hellojammyPlus閱讀 975評論 2 3
  • 前言 因?yàn)镹ext主題最新版也結(jié)合了多說了一些插件,只需要在主題配置文件里設(shè)置參數(shù)就可以看到效果,但我發(fā)現(xiàn)樣式還不...
    cduyzh閱讀 1,399評論 2 0
  • 文/潘棟民 效果 你們可以直接拉到博文的最后,體驗(yàn)一下評論。 有一點(diǎn)我不滿意的就是登陸賬號不方便。不是真愛的網(wǎng)友都...
    allen151閱讀 2,822評論 14 1
  • 前面已經(jīng)搭建好了個人博客,接下來就是裝飾一下自己的網(wǎng)站,畢竟是屬于自己的地盤,還是想讓它精美一些,一方面自己能看著...
    Darren_1閱讀 326評論 0 1
  • 菜單標(biāo)簽頁添加彩色標(biāo)簽 我的小站Nickxie's Blog[https://happy2h.top/],首先看看...
    fx2h閱讀 997評論 0 0