[Feature] 轉換 Wiki 的 Backend 為 Gollum
之前這裡的 Wiki 是用 DB 寫的。用了以下其實不是很習慣。
雖然 Wiki 支援了 Markdown 寫法,但是在頁面之間超連結的時候其實不上手。一邊習慣用的 Wiki 連結語法應該是 [[ XXX ]] 才對。這邊的卻要自己手寫頁面內連結。
再來是如果將來想要實作 Version Control 的話,對開發者也很苦手。
剛好想到了之前有在玩一套 Wiki http://github.com/github/gollum
Gollum 是 Github 自己開發的小玩具,是一套可以將 Git 當作 Wiki 的神器。基本上在裡面的頁面通通是自成一個檔案。可以是 .md,可以是 asciidoc。
而 Gollum 除了整套存取檔案的 API 外,還自帶一個簡易的 Web GUI 介面。
這是我的 Wiki 截圖
http://cl.ly/102H1D0Y3n2T0q1c3i0E
我在自己機器上是用 Pow 把 Gollum mount 起來。
Gollum 的發表頁面雖然對一般人夠用了,但是對我來說不夠好。因此當初也自己用 Rails + Gollum API 幹了一套介面。當時讀 API 讀的很熟....
於是這次換 Wiki 就拿來用...。
主要是有幾個想法:
1. Gollum 支援整套 Wiki 應有的實作,不需再重造輪子
2. File Based
3. 版本控制使用 Git,之後可以跑 crontab 把 Wiki 內容也同步到 Github 去。
4. 支援 GFM,而且可輸出 raw_data 與 formatted_data。將來可以用 Redcarpet 自己實作 Renderer 作程式碼高亮。
希望大家喜歡,下一個會 implement 的 feature 應該會是像是 Github 的 Textarea Write / Preview
-----
* Model 實作 : http://github.com/rubytaiwan/ruby-taiwan/blob/production/app/models/wiki.rb
* Controller 實作:http://github.com/rubytaiwan/ruby-taiwan/blob/production/app/controllers/gikis_controller.rb
* 編寫權限用 CanCan 去管:http://github.com/rubytaiwan/ruby-taiwan/blob/production/app/models/ability.rb
好屌喔