Use Disqus URL Mapper to Correct the Thread URLs

把 Blog 從 Octopress 轉換到 Nikola 之後,文章都轉換完成了,但是,原本每一篇文章底下的 DISQUS 討論串 (thread) 卻消失了,查看後發現,是因為 DISQUS 會參考每一篇文章原始的 URL 產生一個 thread,而文章的 URL 改變之後,DISQUS thread 參考的文章 URL 卻沒有跟的修改,導致這個問題。 DISQUS 的運作方法是 Blog 發佈一篇文章之後,有人用瀏覽器開啟這篇文章的時候,script 會把這篇文章的 URL 傳給 DISQUS ,DISQUS 則用這個 URL 檢查有沒有對應的 thread,如果沒有就產生一個新的,如果有則載入既有的 thread。

因此,當文章的 URL 改變了,DISQUS 就會把這篇文章視為新的,而替它產生一個新的 thread,因此發生瀏覽文章時,下方的 DISQUS 卻沒有載入原本的討論。

以我的 "Install Chinese Font to Pebble Time Steel" 這篇文章為例,文章在 Octopress 的 URL 是 http://iotchef.cc/blog/2015/09/22/install-chinese-font-to-pebble-time-steel/ ,當時這篇文章底下有幾則討論,而搬家到 Nikola 之後 URL 改成 http://iotchef.cc/posts/2015-09-22-install-chinese-font-to-pebble-time-steel.html ,從 DISQUS 的管理界面可以看到,這篇文章的討論依然存在,只是在 DISQUS 這一端所參考的文章 URL 是舊的。

DISQUS Moderate comments

DISQUS 的 Migration Tools 有提供 URL Mapper ,根據官方的說明,這個工具可以幫忙把 DISQUS 這一端參考到舊的 URL 轉換成新的。

For changes in the URL path (anything after .com), protocol (http:// vs. https://), domain, or other more complicated migrations. Example: http://example.com/old-path/old/post.html > http://example.com/new-path/new/post.html

DISQUS URL Mapper

點 Start URL mapper 之後,可以看到它的作法是,把你要轉換的 URL 先寫在 .cvs 檔案裡,再上傳至 DISQUS。 .cvs 格式為:

轉換前的 URL 逗號 空一隔 轉換後的 URL

範例:

http://example.com/old-path/old/posta.html, http://example.com/new-path/new/posta.html

你可以點擊 "you can download a CSV here" ,DISQUS 會發一封郵件給你,讓你下載目前所有的 DISQUS thread URLs (.cvs),下載之後用文字編輯器開啟檔案,把你要轉換的 URL 改好。

以我的 .cvs 檔案來說,內容為:

http://iotchef.cc/blog/2015/09/22/install-chinese-font-to-pebble-time-steel/, http://iotchef.cc/posts/2015-09-22-install-chinese-font-to-pebble-time-steel.html

改完之後,選擇檔案 (.cvs) 再按 "Next Step",把檔案上傳到 DISQUS 就完成了。這時候再去 Blog 瀏覽文章,原本的 DISQUS 討論就可以成功載入。

DISQUS Upload a URL mapping

Comments

Comments powered by Disqus