テキストファイルでTracのwikiを更新する。


Tracのwikiで長いドキュメントを書いていて辛くなってきたので、テキストファイルで更新するためのRakefileを書いた。wikiのソースをリポジトリにコミットできてうれしい。コミットフックでwiki更新時にチケットを更新できてうれしい。

インストール

* http://gist.github.com/458400

mechanizeとhighlineが必要。

$ sudo gem install mechanize
$ sudo gem install highline

Basic認証が前提。ホームディレクトリに ~/.tracrake ファイルを置くと毎回パスワードを入力せずに済む。中身はYAML

id: username
pass: password

Rakefileと同じディレクトリにある全ての*.txtファイルがwikiのソースファイルになる。テキストの先頭の行に、

更新するwikiページのURL 空白 wikiページの現バージョン番号

を書く。バージョン番号は「ページ履歴」で確認出来る。2行目以降がwikiのソース。

http://your.trac.page/wiki/abc 12
[[PageOutline]]
* title
** subtitle
- aaa
- bbb
- ccc

タスク

使えるタスクは3つ。

$ rake -T
rake trac:diff      # diff trac wiki articles and *.txt files.
rake trac:download  # download trac source and overwrite all *.txt files.
rake trac:update    # upload trac wiki articles from *.txt files.
  • trac:update …… wikiを更新。リモートのバージョンが新しい場合は、更新せずにdiffを表示。
  • trac:diff …… リモートとのdiffを表示。
  • trac:download …… 全ての*.txtファイルをリモートの内容で上書きする。最初にソースを取得する時などに。