MT のドキュメントを Emacs から引けるようにした
SLIME をインストールすると同時にインストールされる hyperspec-lookup
コマンドのように、MT のドキュメントを検索できると良いなと思ったので、hyperspec-lookup
を模倣して、パッケージにした。
mt-doc-lookup
https://github.com/taiju/mt-doc-lookup-el
インストールすると、M-x mt-doc-lookup-tags
で、コマンドで指定した MT タグのドキュメントをブラウザで閲覧できるようになる。
同様に、M-x mt-doc-lookup-config-directives
で環境変数、M-x mt-doc-lookup-modifiers
でグローバル・モディファイア、M-x mt-doc-lookup
で MT タグと環境変数とグローバル・モディファイアを横断的に検索し、閲覧できる。
リポジトリにも貼っている、利用時のスクリーンショットが下記。
スクリーンショットでは、ido
+ smex
+ ido-vertical-mode
がインストールされていて、有効にしている状態での操作内容なので、それらが入っていない場合は、初期状態の Emacs の補完機能と同様、微妙な使用感になる。helm
など、他の標準の補完機能を拡張するパッケージが入っているなら、その使用感で使えると思う。
mt-doc-lookup
の横断検索は、リストから検索するのに対し、mt-doc-lookup-tags
のように用途を絞る検索は、ハッシュから検索するので、多分、用途を絞った検索の方が速いと思う。
特に各コマンドを標準ではキーバインドはしていないので、お好みで。
標準では eww
でドキュメントを開くようにした。(mt-doc-lookup-browser-function
変数で変更可能)
ドキュメントを閲覧するには eww
で必要十分だし、コピペビリティも高くてオススメです。
検索の各候補は下記のワンライナーで出力したものを加工した。もしかしたら、足りてなかったりするかもしれない。
$ perl -Mojo -E 'say g($ARGV[0])->dom->find(q{a[rel="bookmark"]})->map(sub { sprintf q{("%s" "%s")}, $_->text, $_->{href} =~ s|^$ARGV[0]||er })->join("\n")' http://www.movabletype.jp/documentation/appendices/tags/
最初は Emacs lisp でがんばろうかと思ったものの、標準の道具では厳しそうだったので、やめた。
Mojolicious + Perl でのワンライナーだいぶ便利なので、代替なかなかない。
まとめ
これまでも、タグリファレンス等を eww
のブックマークから開いて閲覧していたので、ドキュメントへのアクセスのステップが短くなり、今後多少なり捗る気がする。
ただ、ドキュメントがリニューアルしたら、即ゴミになるのが辛い。可能な限り追従したいとは思っている。