隨著無名關閉、Google blogger 越來越慢等等原因,我心中就一直想要替自己的部落格搬家,同時看到 Jenny 使用 Pelican 的心得,就引起我的興趣,也想要將部落格搬到 GitHub Pages,不過拖了很久一直沒有開始動工,直到最近終於開始部落格的搬家作業。

這篇文章是用來記錄一下搬家的相關資訊。

安裝

為了安裝方便我將 Pelican 安裝在工作機上面,參照 Pelican 3.3.0 官方文件 ,並搭配 Python2.7,很順利的就完成所有安裝步驟。

真正的問題是當我要匯入 Blogger 的文章才開始...

文章

首先,我把 Blogger 的文章匯出成 ATOM/RSS 的格式,並且在工作機上面安裝 feedparser ,就可以利用 Pelican-import 的內建指令來做轉出文章的動作。

pelican-import --feed <your-blogger-documents>.xml -o output

再來,當我使用 Pelican 執行文章轉出後,得到的不是文章,而是 exception:

/bin/sh: pandoc: command not found
Please, check your Pandoc installation.

上網搜尋關鍵字,發現是因為我的文章中有包含中文內容,如果要轉換就必須要安裝 Pandoc ,然後如果要安裝 Pandoc 的話必須要有 Haskell Platform ,但我的工作機的作業系統是 RHEL6,其內建不包含 Haskell Platform

所以我要先安裝 Haskell Platform ,然後使用內建的指令 cabal 來安裝 Pandoc ,最後才能將所有文章轉成 reStructuredText 格式。

Pandoc 會使用其內建的語法來做轉換 Pandoc 語法中文翻譯

當文章終於順利轉完後,接著我發現圖片資訊會有殘缺或錯誤的現象,例如圖片失去超連結,或著是圖片重複出現,因此文章轉完後就要開始漫長的編修...

這邊補上 reStructuredText 插入圖片和超連結的方法:

in inline images:

.. image:: pageflip-200.png
:target: pageapplet/index.html

With a reference, like:

Click on my |ImageLink|_

.. |ImageLink| image:: /images/link.png
.. _ImageLink: http://link.url/

樣式

Pelican 的樣式都放在 pelican-themes ,我們可以直接挑選喜歡的樣式來用,也可以將自己設計的樣式加入 pelican-themes ,分享給 Pelican 的使用者,因為我希望可以挑一個簡單可擴充的樣式,在逛完 pelican-themes 之後,還是決定以 Jenny 設計的 pelican-fresh 為基礎,在根據自己的需求稍作調整。

套件

Pelican 的套件都在 pelican-plugins ,一樣可以直接挑選喜歡的套件來用。

直接放上現在有使用的 plugin:

PLUGINS = [
    'gravatar',
    'related_posts',
    'pelican_youtube',
    'pelican_vimeo',
]