Zim to Pelican

zim to pelican

Zim 是一個相當不錯的 Desktop Wiki, 即使目前為止,也沒有看到比他還要好的方案,我個人還是相當的喜歡。

但是,我看到 Pelican 的架構之後,被吸引了,他不是一個正常人會喜歡的模式,但是,對 RD 而言,卻相當引人注意。

首先就是 markdown 的語法很好學阿,一目了然,尤其是Markdown文件寫的很清楚!接下來大部份人都喜歡的靜態網頁,效率真的很高!維持一個部落格系統不需要動態語言、不需要資料庫,已經相當不錯了!但是,往往到這個階段,一般人就會進而遠之了吧。

我再說說我最喜歡的一些特色:

  • make file 管理方式,一開始比較常用 make devserver, 因為比較簡單,也馬上看到成果,可是太吃力了,我建議直接跑手動 make output,把server 開成daemon
  • make output ,透過 pelican 將 Markdown 語法轉換成靜態網頁
  • python -m pelican.server 把 output 當作 127.0.0.1:8000 的首頁
  • 當在 local 修改、測試好之後可以用 make rsync_upload 上傳到server
  • 全部可以用 git 管理
  • 一切都是純文字與編譯器的感覺 好像再寫 C 阿

最後,到底是怎麼把 zim 的 dokuwuki 語法轉換到 pelican ? 我有找到些資料像是 zim2pandoc, 這類的,但是因為結構的關係,我直接把 zim 的資料 export 為靜態 HTML,再用 pandoc 轉換為 markdown, 例如:pandoc -f html -t markdown+hard_line_breaks ....,接下來就是撰寫 script 去補足 pelican 的 header,我自己是這樣作:

  • Title: 可以用日期或是第1行產生
  • Date: 如果是zim calendar, 通常就會有日期資訊
  • Tags: 可以根據文章 keyword
  • Category: calendar or zim tree list
  • Slug: 這邊完全就是隨性
  • Author: your name...
  • Summary: 我的作法是取前90個字元

到此為止,應該覺得生命浪費了不少,轉換本來就是這樣的吧^^,又花了時間看了怎麼製作 theme 包含 CSS, Template,不是太難,還可以接受,我必須說 Pelican 的文件寫的真是充足!

下一步,我打算把 partclone 上的 trac 換成 github wiki + pelican 共管,可以 hosting 再不同地方,又可以集中撰寫,離線編輯,用 git 管理,套用不同的 theme 發佈到不同的地方!只差,partclone 的網頁的轉換了... 看來,又要浪費不少時間再上面了....

Comments