19e786a2a74377ff6e052d87fd8d1fa8

[Feature] 轉換 Wiki 的 Backend 為 Gollum

2011-12-03 00:00:55 +0800xdite公告 節點 中發起
最後由 evenwu2011-12-03 00:41:00 +0800回應 , 727次閱讀

之前這裡的 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

截至 2011-12-03 00:41:00 +0800,共收到 1 條回應
F8ca23da626499de4b476d7ccaf2950b
evenwu 1樓, 於2011-12-03 00:40:59 +0800回應

好屌喔

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊