簡易suggest機能を追加するプラグインを作ってみた
あんまりsuggestしてないけど( ´ω`)
最近はtracを自分用まとめサイトとして使ったりしてるわけなんだけど、wikiページに日本語名を使っていると、wiki:ページ名 と入力しないとリンクが張られない。結構めんどくさい。
じゃあ英語名にすればいいかというとそういうわけでもなく、ページ名を覚えてないとリンクが張れない。なので wiki: とか入力するとwikiページをsuggestしたりするプラグインを作ってみた。PythonとJavaScriptの勉強を兼ねてたはずなんだけど、ほとんどの機能はJavaScriptで実現していてPythonはあまり使ってない。
ここからどうぞ → ダウンロード(Avast 4.7 Home ウィルスデータベース0619-2 でチェック済み)
何もないのもあれなので、ライセンスは trac と同じで縛りの少ない修正BSDライセンスにしておく。
今のところ WinXP + firefox 1.5 でしか動かない。IE6は動作しなかった。ほかの環境は不明だけど、少なくともIE6には対応する予定。
インストール方法
- ダウンロードしたzipを解凍。
- ezSuggest-0.1-py2.3.egg を $TracEnv$/plugins にコピー。
- $TracEnv$/htdocs/js に prototype-1.4.0.js と ezsuggest.js をコピー。
- $TracEnv$/templates に site_header.cs をコピー。修正しているなら記述内容を追加してもかまわない。
- apahce を再起動
使い方
Wiki 編集画面内の TextArea 内で使う。
- wiki: と入力すると wiki ページ一覧が表示される。ただし trac のデフォルトページは除く。
- milestone: と入力すると milestone 一覧が表示される。
候補一覧が表示されているとき、
- 文字を入力すると一覧を絞り込む。
- 矢印上下キーで選択候補を上下する。
- TABキーまたはEnterキーで選択候補をカーソル位置に挿入する。
基本はこんな感じ。
ついでに Ctrl + space を押すと trac の wiki 記法とかよく使うマクロが表示されるようにしてみた。FootNoteマクロ以外は trac 0.9.5なら標準で用意されているはず。カーソルを囲むやつは、文字を選択してる状態で実行すると選択文字列を囲んだ状態で入力される。
- wiki
- カーソル位置に wiki と入力
- milestone
- カーソル位置に milestone と入力
- bold
- ボールド。カーソルを ''' で囲む
- bolditalic
- ボールドイタリック。カーソルを ''''' で囲む
- del
- 取り消し線。カーソルを ~~ で囲む
- footnote
- FootNote記述マクロ。カーソルを [[FootNote( と )]] で囲む
- footnoteReference
- FootNote表示マクロ。カーソル位置に [[FootNote]] と入力
- image
- Imageマクロ。カーソルを [[Image( と )]] で囲む
- italic
- イタリック。カーソルを '' で囲む
- monospace
- モノスペース。カーソルを {{{ と }}} で囲む
- newline
- 改行。カーソル位置に [[BR]] と入力
- outline1
- 見出し第1レベル。カーソルを = で囲む
- outline2
- 見出し第2レベル。カーソルを == で囲む
- outline3
- 見出し第3レベル。カーソルを === で囲む
- pageoutline
- アウトラインマクロ。カーソル位置に [[PageOutline]] と入力
- sub
- 上付き文字。カーソルを ^ で囲む
- sup
- 下付き文字。カーソルを ,, で囲む
- timestamp
- Timestampマクロ。カーソル位置に [[Timestamp]] と入力
- underline
- アンダーライン。カーソルを __ で囲む
これは ezsuggest.js の __wikiFormat で指定しているので自分で追加可能。
既知の問題とかTODOのようなもの
不具合
- 候補一覧に長い文字列があると suggest の表示がおかしくなる → suggest を可変にすればいいけど面倒。
- チケット編集可能だと、チケットの詳細で suggest の表示がおかしくなる → どうしよう。
- 画面の下のほうで suggest を表示すると下のほうが見えない → 全部表示できないときは描画位置を変えればいいけど面倒。
TODO
- IE対応。 → suggest の表示位置とか描画がおかしいのを直す。
できたらいいなというもの
- source パスの補完
- 添付ファイル名の補完
- egg をコピーするだけで動くようにする
やる気のしないもの、というか多分やらない