Github page 是靜態頁面生成的,所以無法動態存取網頁,若想要有一個留言區塊,就必須使用外部插件。

本來也因為留言功能的問題,有點猶豫要不要在 Github page 寫文章,但現在解決了 :)

Github page 的好處有只要會用 git 指令,即使其他電腦沒有裝 ruby 等程式,也能透過 md 檔案的新增去發表文章、幫你弄個 https、免費等等。

廢話也不多說,馬上進入正題。

首先,當然是去 disqus 官網申請一個帳號啦。

創建細節就不多提了,直接講 Jekyll 的部分。

如果你是照著我流程去寫的話,你會在_includes找到dispus_comments.html檔案。

對,他預設就有幫你設想你可能會用到 Disqus 了。

所以你需要的就是在每一篇文章都需要用到的頁面增加留言功能。

留言功能及畫面由 Disqus 的 embed.js 提供,你只需要把這一段程式碼加到post.html即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{{ '{% if page.comments %' }}}
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'mio-blog'; // required: replace example with your forum shortname
// var disqus_developer = 1; // Comment out when the site is live
var disqus_identifier = "{{ '{{ page.url ' }}}}";

/* * * DON'T EDIT BELOW THIS LINE * * */
(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>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
{{ '{% endif %' }}}

將我的 mio-blog 替換成你建立的網站名稱就可以了。

還有一點是,注意這段程式碼如果要運行,有一個條件是if page.comments,所以需要在想要開啟留言功能的頁面加入comments: true,在文章的屬性裡。

如果你需要顯示文章評論數的功能,下方的參考資料也有教學可以自行去看。

小心地雷

如果你要使用 Disqus 的話,請注意一點,第一次跑 JS 檔案時,請務必在正式環境,不然該文章的連結地點會在http://127.0.0.1:4000/*

也因為這樣所以再使用範例程式時,請務必更改網站名稱,不然評論區會到我的網站去,麻煩了。

解法

發現網路上的解法都已經過時了,現在能直接編輯了,超棒。

首先進入管理後台,點選 Moderate Comments,左列選單中找到 TOOLS 後點選 Discussions,然後編輯你的 link 即可。

參考文章

Adding Disqus to your Jekyll

让人超烦躁的 Disqus