用 Disqus 給點意見

雖然我個人不太喜歡留言。不過身為一個部落格,沒有留言好像說不過去。

要做留言的話,第一個要考慮的問題,是如何實做反濫用機制──沒有人想看到自己的部落格,都是與 Line 妹妹喝茶吧?

正當我這麼想的時候,有人告訴我:

你可以用 Disqus 實做留言。

於是我查了一下 Disqus 怎麼用。還蠻簡單的,套個 HTML 與 JavaScript 的腳本就成。

但你看一下,上面的註解,有個有趣的東西……

/**
*  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
*  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/

嗯,按照官方文件所說,這段小腳本可以避免意見重複發送。我似乎應該做這個東西吧? 我運氣也不錯,很快就看到 Jason Lung 的文章:

var disqus_config = function ()
{
    this.page.url = "<%= url_for([@post, {only_path: false}]) %>"
    this.page.identifier = "<%= @post.id %>";
};

複製貼上,下一秒就完成囉。抄簡單der

……才怪。

we were unable to load disqus. if you are a moderator please see our troubleshooting guide

按照 troubleshooting guide 的說法,有以下幾個可以探測的點:

  1. 信任網域問題
  2. 載入網站是否一樣
  3. 域名有沒有變更

我很確定我的網站沒有這些問題,所以我沒深究。

  1. 逾時:Disqus 表示「網站部落格拜託你們,先幫我撐個十秒左右就好
  2. HTTP 狀態碼:這個可以透過開發工具檢測。200 代表成功載入、304 代表已經有了。

那就是 JavaScript 的問題了吧?

  1. s.src 的網址正確與否:把裡面的網址貼到瀏覽器,如果找得到就成功了──前提是沒找錯人。
  2. 非 ASCII 字符:似乎是針對那些會用特殊符號如 ñ å š 之類的網站。我用的是數字所以沒差。
  3. JavaScript 變數:問題就在這裡,接下來就會談到。
    1. this.page.title 不能超過兩百字。不過我沒寫就是了。
    2. this.page.url 不能有空白。
    3. this.page.url 必須是絕對網址。相對網址會出問題。

所以要把上面那段程式碼修正為:

var disqus_config = function () 
{   // https://iismmx-rails-blog.herokuapp.com 是我的網站 URL。複製貼上的話,應該把 URL 變成自己的網站。
    this.page.url = "https://iismmx-rails-blog.herokuapp.com<%= url_for([@post, {only_path: false}]) %>";
    this.page.identifier = "<%= @post.id %>";
};

這樣就行了。一個留言後台終於完成了。

等一下……我甚至連留言的資料庫都不用寫了嘛…………!!