読者です 読者をやめる 読者になる 読者になる

あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

MT のドキュメントを Emacs から引けるようにした

MovableType 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 タグと環境変数とグローバル・モディファイアを横断的に検索し、閲覧できる。

リポジトリにも貼っている、利用時のスクリーンショットが下記。

f:id:jdg:20150517231524g:plain

スクリーンショットでは、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 のブックマークから開いて閲覧していたので、ドキュメントへのアクセスのステップが短くなり、今後多少なり捗る気がする。

ただ、ドキュメントがリニューアルしたら、即ゴミになるのが辛い。可能な限り追従したいとは思っている。