WiLiKi:EmacsClient
Emacsから直接WiLiKiを閲覧・編集してしまおう、という企画。 WiLiKi側にもそれをサポートするプロトコルを入れる。
開発中のelispコード (wiliki.el) はWiLiKiのCVSリポジトリにある。
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/wiliki/WiLiKi/emacs/
2002/03/31 01:59:06 PST 現在、M-x wiliki-fetch でページのフェッチができて、 ページ内のWikiName上で C-cC-o とするとWikiNameの参照する ページへ飛べる。xemacs-21.1 with muleで動作確認。
問題点
- 日本語WikiNameが動かない。Emacs内での文字コードの扱いがよく分からん。
- WiLiKiからのリプライを得る時の文字コードをどうするか。 ヘッダを読むまでどの文字コードで受けて良いのかわからない。 今はリプライを一括して読んでいるのでうまくない。
- 存在しないWikiNameを読みに行った時の動作をどうするか。
- InterWikiNameになっているWikiNameを読みに行った時の動作をどうするか。
- レンダリングをどうすべきか。閲覧時にはWebライクに表示すべきだろうか。 個人的にはWiLiKiのフォーマットそのままで良いようにも思うが、 それだとマクロを展開すべきかどうか気になる。
- 編集時に更新の衝突があった場合の表示をどうするか。
改造しました。
http://homepage.mac.com/skimu/wiliki.el
2002/09/15 12:00 CST 現在、日本語WikiName対応。InterWikiNameに一部対応。 p n で WikiName 間の移動などができます。Emacs/w3 の関数を使わない様にしたので GNU Emacs でもこのファイルだけで動きます。
問題点
- Proxy に対応していない(私が HTTP を全然知らないため)
- レンダリング、マクロ展開に関してはShiroさん版と同じ問題がある。
不動作報告、ご意見などは以下に追加して下さい。
- Shiro: おお、すごい。実はemacs lisp書くのに疲れて放置しておりました。 ヒストリを取っておいて、infoみたいに'l'で戻ってゆけたりするといいかな、 と思いました。(2002/09/15 19:00:21 PDT)
さらに改造しました。-- kame (2004/02/27 09:52:55 PST)
http://www001.upp.so-net.ne.jp/kame/EmacsWiliki.html
M-x wiliki で開始します。編集とコミットを強引に実装してみました。 ページの履歴を 'l' 'p' 'n' で行き来できます。 InterWikiName にも対応しました。
編集が衝突した場合は、最新のコンテンツを取得して、 その内容と比較しながら衝突を解決できるようにしました (ediff)。
レンダリングはまだ放置しています。 ある程度、マクロなどを展開したテキストが渡ってきた方が、 client 側のレンダリングは楽だと思います。要検討ですね。 とりあえず emacs-w3m から編集できるようにしています。
WikiName の補完 (ページの一覧)、"最近の更新" の取得などの実装を考えると、 protocol の変更/追加が必要で、ちょっと大変そうです。
- Shiro (2004/03/01 22:02:08 PST): ども。私はこっちの方まで手が回らないのですが、 使い易いようにすすめてもらえると嬉しいです。 プロトコルの変更についても柔軟に対応していきたいと思っています (どうせなら他の用途にも使えるような形がいいので、独自プロトコルではなく 既存の何かに載せるかもしれませんが)。
- kame (2004/03/19 07:53:32 PST): 「一覧」と「最近の更新」が取得・表示できるようになりました。 また、wikiname の補完もできるようになりました。 WiLiKi 本体は変更せず、現状のプロトコル (html) で強引に実装しています。 イジワルな名前のページがあると厳しいかも知れません。
- kame (2004/03/24 08:14:20 PST): ページ検索 (c=s) ができるようになりました。 ad hoc な実装で汚ないコードなので、ちょっと整理した方がいいのですが。
- kame (2004/06/03 09:40:20 PDT):
色がつくようになりました (Font-Lock mode のサポート)。
~/.emacs に以下を追加してお試しください。
(add-hook 'wiliki-mode-hook 'turn-on-font-lock) (add-hook 'wiliki-edit-mode-hook 'turn-on-font-lock) ;; または、 (global-font-lock-mode 1)
未定義のマクロは赤色で表示したり、WikiName は強調して表示したり などしていますので、編集が随分と楽になると思います。 実際、私自身もこれで入力ミスが激減しました。
今後、もう少し face を追加するかもです。- kame (2004/06/04 07:48:36 PDT):
スクリーンショットはこれ↓です。
http://www001.upp.so-net.ne.jp/kame/image/emacs-wiliki.png
- kame (2004/06/04 07:48:36 PDT):
スクリーンショットはこれ↓です。
- kame (2006/07/29 09:55:05 PDT): すっかり更新をサボっていましたが、 ページの charset を自動設定するようにしました。 いつの間にか utf-8 な WiLiKi サイトが増えているんですね。 charset が合わなくて文字化けするような場合は、 M-x universal-coding-system-argument で明示的に coding system を指定してから、 M-x wiliki-refetch などすればいけると思います。
emacs-w3mを改修してもらえると個人的にうれしかったりします。--toki?
http://www.namazu.org/~tsuchiya/emacs-w3m/
- 最初はそれも考えたのですが、せっかくEmacsを使っているのに 表示画面と編集画面を行き来しなくちゃならないのも何だなあと思いまして… でもクライアントは汎用的な方がいいし、ちょっとやってみますかね。--Shiro (2002/05/21 13:18:36 PDT)