basyura's blog

あしたになったらほんきだす。

a unite.vim plugin for hiki

hiki 用の unite.vim plugin
https://github.com/basyura/unite-hiki

Hiki は Ruby で書かれた高機能・高速 Wiki クローンです。

Hiki

rails3 の勉強を始める → hiki に tips をまとめる → ブラウザから編集するのがめんどくさくなる → vim でできないかな? → vimscript を書き始める → 更新できたー → unite.vim の plugin にしてみる
道を外れっぱなしのまま進んで最低限の機能を追加できたかな。

必要なもの

webapi.vim は curl のパラメータを変えて使いたかったので、http.vim をオレオレ修正したものを同梱。

設定

let g:unite_hiki_user     = 'user'
let g:unite_hiki_password = 'password'
let g:unite_hiki_server   = 'http://xxx.xxx.xxx/hiki'

パスワードを定義しない場合は入力を求めて、スクリプト変数に保持しておくのもありだなと今思いついたけど保留。

起動


:Unite hiki

unite.vim のいつもの画面。ページ一覧をパースして表示。選択すると該当ページの内容を取得。

編集

自分好みに syntax を定義。ページリンクを Enter すると該当ページの編集へ。url を Enter すると該当ページをブラウザで表示する。
編集後は :w で編集内容を post。衝突判定は微妙だけど一応実装。

新規ページの作成

該当ページがない場合は new page で作成。


REST な API に比べるとめんどくさいことがいろいろ。HTML をパースしないといけないのが一番めんどい。あとは curl で post した際に HTTP STATUS 100 で返ってくることがあって、それを同制御していいか分からないので HTTP1.0 でなげてみたりとか。
redmine、wiki、hiki と unite.vim plugin をやってみて、どれも書くことはだいたい同じなのは分かった。unite.vim がかなり吸収しているから 0 から作るよりだいぶ少なくて済むんだけど、フレームワークっぽくさらに減らすことができないかなぁと妄想中。