為Hugo增設Cusdis留言區

首先,新的一年,祝各位新年快樂。然後,如同大家所見,這個網站現在有留言區了。雖然我在剛建立網站的時候就已經想要建個留言區,但是還是一直拖到2026才動手。

我本來是打算用Disqus建留言區的,但是我後來查了一下才發現Disqus原來一早已經被廣告公司收購了,還會在別人的留言區打廣告。utterances看起來不錯,但是不是所有人都有Github賬戶,而且我不想令自己的Github淪為留言區。上網查了一下後,我發現了這個名為Cusdis的東西,聽說是Disqus的替代品,評價也相當不錯,於是我便決定用Cusdis建留言區。

Cusdis的優點很明顯:輕便、開源、私隱優先。免費用戶每個月可以批核100條留言,正常來說應該夠用了。

要在Hugo網站上增設Cusdis也不難:登入Cusdis後,Cusdis會提供一段嵌入程式碼。

程式碼內有幾個地方需要做一些修改:PAGE_ID、PAGE_URL和PAGE_TITLE都只是佔位符,不能直接用。它們分別代表着頁面ID、頁面網站和頁面標題,所以我們要填一些代碼,使它們的數值跟隨頁面改變。最簡單的方法是用Hugo內置的函數:

data-page-id="{{ .Slug }}"
data-page-url="{{ .Permalink }}"
data-page-title="{{ .Title }}"

不過我個人的做法是在每篇文章的front matter都新增一個名為pageId的參數。

修改後把程式碼放入 layouts/_partials/comments.html ,然後再在 layouts/single.html 引用就完成了。

加Cusdis很簡單,不過要讓Cusdis好看就麻煩多了。Cusdis用的是iframe,要修改它內部的CSS相當困難。不過,我們還是可以有限度地修改外部的CSS,好讓它的顏色可以跟隨着網站主題改變。

我首先把cusdis.es.js下載下來,直接把它放在源代碼內好讓我修改。然後,我把Cusdis和網站主題代碼改了一下,讓Cusdis在載入iframe後,或是訪客改變網站主題時自動同步,以避免出現「白底黑字」。

我順便也把iframe的邊界改成圓角,看起來好像比方角好。

日後有時間的話,我再考慮一下自己設立資料庫放留言吧。

留言