【多說(shuō)下線怎么辦】一步搭建自己的第三方評(píng)論系統(tǒng)

雖然也在意料之中堂污,但是收到多說(shuō)郵件還是覺(jué)得有些遺憾。對(duì)于靜態(tài)博客來(lái)說(shuō)讨衣,沒(méi)有評(píng)論模塊就有些尷尬了。

那么如何用其他工具代替多說(shuō)呢固蚤?大家第一時(shí)間想到的基本都是Disqus這種網(wǎng)站歹茶,但是被墻后,訪問(wèn)起來(lái)很困難燎孟,加載速度不好尸昧。

國(guó)內(nèi)替代品

在開(kāi)始搭建自己的評(píng)論系統(tǒng)之前,先了解一下國(guó)內(nèi)其他第三方評(píng)論系統(tǒng)爆侣,比較著名的就是這些:

但是它們?nèi)坎恢С諬TTPS幢妄,所以我決定自己搞個(gè)第三方評(píng)論系統(tǒng)。

多說(shuō)下線通知郵件

Isso

Isso是一個(gè)輕量級(jí)的類(lèi)似Disqus第三方評(píng)論系統(tǒng)乎赴,它允許匿名評(píng)論置吓、注冊(cè)評(píng)論衍锚、回復(fù)郵件通知以及自定義外觀等功能。它的接口設(shè)計(jì)和Disqus高度相似度宦,所以要集成這個(gè)評(píng)論系統(tǒng)只需要在Disqus接口上改幾個(gè)單詞告匠,非常簡(jiǎn)單。

Isso是基于Python寫(xiě)的開(kāi)源軟件划鸽,你可以隨意修改評(píng)論框外觀。

自定義外觀

1. 安裝

安裝嫂用?不丈冬,安裝什么的才不會(huì)讓你們做呢,我本來(lái)打算把整個(gè)Isso打包起來(lái)丟進(jìn)容器的往弓,但是在Docker Hub 上看到已經(jīng)有人做了一個(gè)鏡像蓄氧,而且做得相當(dāng)不錯(cuò),我沒(méi)什么好挑剔的缴淋,鏡像大小 17 MB泄朴。

我挺滿意的露氮,所以直接拿來(lái)用了。

首先Isso是使用Sqlite驅(qū)動(dòng)的局扶,所以我們使用 Docker 直接運(yùn)行即可叁扫。

安裝 Docker 和 Compose,不用廢話畴蒲。

新建一個(gè)文件夾名為config对室,在里面新建一個(gè)配置文件isso.conf:

[general]
dbpath = /db/comments.db
host = https://zuolan.me
[server]
listen = http://0.0.0.0:8080/

下面是一個(gè)Compose配置文件:

version: '2'
services:
  isso:
    image: wonderfall/isso
    environment:
      - GID=1000
      - UID=1000
    volumes:
      - ./config:/config
      - ./db:/db
    ports:
      - "8080:8080"

保存為docker-compose.yml然后執(zhí)行:

dokcer-compose up -d

搞定之后就可以通過(guò)8080端口的接口使用Isso評(píng)論系統(tǒng)了掩宜。

啟動(dòng)后目錄應(yīng)該是這樣的:

.
├── config
│   └── isso.conf
├── db
│   └── comments.db
└── docker-compose.yml

2 directories, 3 files

2. 配置Nginx

直接訪問(wèn)8080好尷尬,給它綁個(gè)網(wǎng)址吧辽旋。

server {
    listen       [::]:80;
    listen       [::]:443 ssl;
    server_name  example.com;
    root         /var/www/example.com;

    location /isso {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Script-Name /isso;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:8080;
    }
}

配置不用我說(shuō)了吧,上面配置中码耐,我們可以通過(guò)example.com/isso使用接口了糖儡。

3. 設(shè)置

Isso服務(wù)已經(jīng)運(yùn)行了,當(dāng)然直接訪問(wèn)8080端口是沒(méi)有什么界面的桦沉,只有一個(gè)API接口金闽。接下來(lái)我們要在靜態(tài)博客中集成這個(gè)評(píng)論系統(tǒng)代芜。

如果你使用的主題是純HTML,那么嵌入下面兩句即可:

<script data-isso="http://comments.example.tld/"
        src="http://comments.example.tld/js/embed.min.js"></script>

<section id="isso-thread"></section>

如果你是Jade或者Ejs等模板引擎钞速,那么復(fù)制一下Disqus的代碼嫡秕,替換為Isso即可,例如Jade格式驾凶。

下面是Disqus的Jade模板:

if theme.disqus
    a#comments
    #disqus_thread
    script.
        var disqus_shortname = '#{theme.disqus}';
        var disqus_identifier = '#{page.path}';
        var disqus_title = '#{page.title}';
        var disqus_url = '#{config.url}/#{page.path}';
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    script(id='dsq-count-scr' src='//#{theme.disqus}.disqus.com/count.js' async)

現(xiàn)在改寫(xiě)為Isso評(píng)論系統(tǒng)(類(lèi)似):

if theme.isso
    a#comments
    .isso-thread
    script.
        var isso-path = {short_name:"#{theme.isso}"};
        (function() {
            var isso = document.createElement('script');
            isso.type = 'text/javascript';ds.async = true;
            isso.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//example.com/isso/js/embed.js';
            ds.charset = 'UTF-8';
            (document.getElementsByTagName('head')[0] 
             || document.getElementsByTagName('body')[0]).appendChild(ds);
        })();

4. 評(píng)論計(jì)數(shù)

如何在首頁(yè)中顯示文章計(jì)數(shù)调违?
加入下面一句到頁(yè)面中:

<a href="/my-uri.html#isso-thread">Comments</a>

最后

如果你不滿意這個(gè)Isso泻轰,還可以使用其他開(kāi)源評(píng)論系統(tǒng)。

我只負(fù)責(zé)丟鏈接:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亩鬼,一起剝皮案震驚了整個(gè)濱河市阿蝶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玷过,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粤蝎,死亡現(xiàn)場(chǎng)離奇詭異袋马,居然都是意外死亡燎悍,警方通過(guò)查閱死者的電腦和手機(jī)姐叁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锣披,“玉大人雹仿,你說(shuō)我怎么就攤上這事‰柿桑” “怎么了票顾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵帆调,是天一觀的道長(zhǎng)番刊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)芹务,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任熔吗,我火速辦了婚禮佳晶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘中跌。我一直安慰自己,他們只是感情好一喘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布凸克。 她就那樣靜靜地躺著灼伤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪撞鹉。 梳的紋絲不亂的頭發(fā)上颖侄,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天览祖,我揣著相機(jī)與錄音孝鹊,去河邊找鬼。 笑死展蒂,一個(gè)胖子當(dāng)著我的面吹牛又活,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锰悼,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼柳骄,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了箕般?” 一聲冷哼從身側(cè)響起耐薯,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丝里,沒(méi)想到半個(gè)月后曲初,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體杯聚,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡臼婆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了幌绍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片目锭。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡评汰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痢虹,到底是詐尸還是另有隱情被去,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布奖唯,位于F島的核電站惨缆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏丰捷。R本人自食惡果不足惜坯墨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望病往。 院中可真熱鬧捣染,春花似錦、人聲如沸停巷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)畔勤。三九已至蕾各,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庆揪,已是汗流浹背式曲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缸榛,地道東北人吝羞。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像内颗,于是被迫代替她去往敵國(guó)和親脆贵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理起暮,服務(wù)發(fā)現(xiàn),斷路器会烙,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 情深緣淺 枯木逢春發(fā)新芽负懦,幾時(shí)風(fēng)來(lái)葉落盡。 情深緣淺徒留傷柏腻,怨天尤地?zé)o奈何纸厉。
    高山玫瑰閱讀 411評(píng)論 0 3
  • 美麗的邂逅, 在紛飛的雨季降臨五嫂, 劃破年華的愛(ài)戀颗品, 在陌生的世界里肯尺, 演繹相守一生的憧憬。 相攜的雙手躯枢, 套上命運(yùn)...
    不思量小孩閱讀 283評(píng)論 2 4
  • 2月份是一個(gè)轉(zhuǎn)折月则吟,學(xué)生開(kāi)始上學(xué),北上廣深漂族開(kāi)始繼續(xù)漂起來(lái)锄蹂,就連主流媒體最近都有好幾篇評(píng)論是關(guān)于漂或留氓仲、大城市或...
    Anny閱讀 589評(píng)論 2 4
  • 毫不意外的敬扛,外出的機(jī)會(huì)又是拜停電所賜。聽(tīng)說(shuō)過(guò)很多關(guān)于動(dòng)物城的好評(píng)朝抖,看過(guò)很多次樹(shù)懶閃電的梗啥箭,帶著大約有一公斤的好感買(mǎi)...
    會(huì)飛的牛先生閱讀 353評(píng)論 0 0