大貓共和國

Meow

將Wordpress轉移到Jekyll及Disqus

最近越來越不習慣使用Wordpress寫文章。我對於寫文章的方式有下列要求:

  • 不使用WYSIWYG編輯器。大多數的WYSIWYG編輯器都有產生不必要的HTML碼、貼code格式跑掉…之類的問題。
  • 可以不用手動撰寫HTML碼(markdown)。
  • 可以使用慣用的純文字編輯器(vim),撰寫文章如同撰寫程式源碼一樣。

Jekyll是一套Ruby靜態網站產生器,支援markdown, textile等語法。包括Github Pages在內,已有許多網站使用Jekyll。由於靜態網站沒有留言的功能,可以配合Disqus或Facebook實作留言。我認為這樣的撰文方式不一定適合一般使用者,但相當適合程式設計師使用。

使用Pretty Permalink

所謂pretty permalink是指網址是這種格式:

http://blog.miaout17.net/2011/05/08/convert-wordpress-to-jekyll-and-disqus/

而非

http://blog.miaout17.net/2011/05/08/convert-wordpress-to-jekyll-and-disqus.html
http://blog.miaout17.net/?p=2241

若Wordpress與Jekyll都使用pretty permalink,轉換時網址就可以直接對應,方便許多。Wordpress需要在後台設定,而Jekyll的_config.yml中加入:

permalink: pretty

即可。

順帶一提,我的permalink全部都是英文及橫線組成。若permalink有中文或其他字元,可能會產生問題。若不想改掉,請自行修改程式小心處理。

將Wordpress資料庫轉至Jekyll

我原本的blog系統是Wordpress。要將Wordpress搬家到Jekyll、Wordpress留言搬到Disqus,都有現成的工具。但這些工具可能還需要一些workaround。

首先,Jekyll內建的Wordpress Migrator有幾個問題:

  • yaml中的utf8字串會變成binary format
  • 沒有匯出wordpress中的category和tag資訊
  • 沒有匯出時間資訊,同一天的文章順序可能會錯誤

因此,我手動修改了Jekyll Wordpress Migrator的源碼,修改後的源碼位於: https://gist.github.com/961198 。這裡有許多可以客製化的地方。我決定不匯出Category,只匯出Tags。讀者若有需要,可以自行修改。

將Wordpress留言轉至Disqus

最後是將留言匯入Disqus。我研究後,認為最方便的方法是直接將Wordpress XML備份檔匯出。其本上Jekyll匯入Wordpress備份檔時是只認網址的。依前面所述,如果Wordpress及Jekyll都使用pretty permalink,兩邊的網址規則應該是一樣的。如果你更換了網域,只要用文字編輯器將XML檔中的網址取代即可。

此外要注意的是:Disqus在匯入時,會直接以HTTP存取你的網站,抓取標題等相關資訊。所以你必需先完成Wordpress轉至Jekyll的動作,並確保網站是可以存取的,最後才能匯入Disqus。

Jekyll就像一塊白布,幾乎什麼功能都沒有提供。使用者可以自行設計HTML及CSS模版,撰寫Tag Could等功能。本站就是一個成功轉換的範例。

Comments