惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Webroot Blog
Webroot Blog
AI
AI
P
Palo Alto Networks Blog
Attack and Defense Labs
Attack and Defense Labs
WordPress大学
WordPress大学
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Spread Privacy
Spread Privacy
T
Tor Project blog
罗磊的独立博客
小众软件
小众软件
S
Security Affairs
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
Apple Machine Learning Research
Apple Machine Learning Research
T
Threatpost
NISL@THU
NISL@THU
博客园_首页
PCI Perspectives
PCI Perspectives
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
博客园 - 叶小钗
D
Darknet – Hacking Tools, Hacker News & Cyber Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
腾讯CDC
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The Cloudflare Blog
A
About on SuperTechFans
爱范儿
爱范儿
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
TaoSecurity Blog
TaoSecurity Blog
宝玉的分享
宝玉的分享
G
GRAHAM CLULEY
雷峰网
雷峰网
F
Full Disclosure
I
Intezer
Cloudbric
Cloudbric
博客园 - 三生石上(FineUI控件)
U
Unit 42

瓠樽

部署 Artalk 評論系統 林路行 Jekyll 更改 RSS 模版文件以验证 follow 阅读器 利用脚本抓取 RSS 并用票据机打印 moe-counter-cf 安装手记 Soapbox-fe 安装手记 俳句练习其一 关于 RSS 协议的一些迷思 花火下的恋情
靜態博客的『阿喀琉斯之踵』
2025-01-22 · via 瓠樽

最近終於下定決心遷移博客的評論系統,實際操作過後我的建議是早換,別偷懶

問題

六年前部署博客的時候,為了穩定和偷懶,就選擇了 Disqus 和 Disqus PHP API 的組合,當時使用起來體驗很不錯,國內國外的訪問和留言都無縫銜接。但是後來事情很快開始起變化,一開始是別人在 Disqus 里的評論我開始接收不到郵件提醒了,通過 Disqus PHP API 評論的郵件提醒是正常的,因為是我單獨配置的。然後很多 Spam 開始陸陸續續通過 Disqus PHP API 進入評論列表,可能是 Disqus 對這塊沒有審核。

再說說這個 Disqus 的 Spam 算法,我在這次遷移中發現,有很多正常評論被扔在 Spam 里,這就更離譜了。我仔細看了一下被判定為 Spam 的評論,發現 Disqus 算法其實很偷懶(甚至不知道有沒有上算法),只要評論裡面帶超鏈接🔗就會被扔進 Spam 里,關鍵的是進了 Spam 也沒有提示,到後來更過分,連有新評論都不發郵件了。這裡得對過去留言沒有得到回覆的讀者說聲抱歉。

Disqus 雖然說支持數據導出,但是數據導出的時候並不帶email字段,這就相當於在遷移評論系統之後就跟留下評論的人失聯了,當然這也是出於用戶的隱私考量,沒什麼好詬病的,如果對訪客互動這塊比在意,建議還是盡早遷出,及時止損。缺失email字段還會導致另一個後果:大部分評論系統都是通過郵箱地址從 gavatar 來獲取用戶頭像,沒有郵箱地址,不僅和以往的訪客失聯,而且評論頁都是清一色的默認頭像,觀感上很不好。

Disqus 還有一些其它問題我沒發現,可以參照這裡

對於email字段缺失導致的這兩個問題,我現在的解決方案就是,回覆評論的同時也在 Disqus 上回覆一遍,順便附上更新評論系統的通知(希望不要被判定成 Spam ),有條件通過別的聯繫方式聯繫上的就挨個通知。至於頭像獲取,這篇具體的部署記錄有一個折衷方案可以供參考。總體的思路就是通過獲取用戶名相關字段,並提交給Multiavatar的API接口,為每個用戶生成獨特的頭像。同時還可以判斷用戶名來指定頭像,我給互換了友鏈的筆友們都設置了固定的頭像。

替代

對於靜態博客的原教旨主義者來說,評論系統這種簡直就是對“靜態”的反動。當然也有 Staticman 這種將評論系統的評論拆分成純文本的數據,提交到靜態博客的項目中,當用戶發起評論後會自動提交一個 commit,或者發起一個 Pull Request 將內容保存下來。但是這個項目目前只支持 Github 和 Gitlab 的登錄驗證,一來不符合國情,二來我也不願意過於依賴商業公司的項目。另外還有一點,Staticman 的郵件通知只支持 Mailgun 服務,這也是我不太能接受的點。說不定等到以後他能支持自建的 Git 倉庫和郵件接口我會再考慮一下。也許有可能通過兼容 Github 和 Mailgun 的接口的開源實現,但是並不太想去搞了,等到以後放棄 Github Page 再研究吧。最關鍵的一點是, Staticman 雖然號稱純靜態,但是依然需要在服務器上跑一個進程,這就和一般的評論系統沒什麼區別了。

其他的幾個項目大同小異可以參照這裡。我最後選擇了 Artalk ,沒有什麼特別的原因,純粹是我對於單一 Go 語言程序 + SQLite 這種易於維護的架構有好感而已,當然文檔詳盡也是原因之一。部署記錄放在另一篇文章里了。

總結

總之,還是再一次地要對過去留言沒有得到及時回覆的讀者道個歉,用心的留言卻沒有得到回覆這種事想想都覺得難受。這篇文章也算是評論系統遷移的一個公告,也希望曾經訪問過、留言過的讀者可以在这里留言聯繫我,更改一下郵箱地址。

reference