過去のエントリをウェブブラウザで眺めているとき,少し手直ししたくなったことはありませんか? mapaeでは,過去のエントリを呼び出す手段として,次の二通りが用意されています.
- エントリ ID を指定して呼び出す.
- エントリリストから選択する.
実は,前者の方法を応用すれば,簡単にエントリを呼び出せるのです.
mapae では,エントリ ID を指定して呼び出す機能を,「mapae-get-post」という Emacs Lisp の関数で定義しています.そこで,kterm 等から以下のコマンドを実行してみます.
emacs -eval '(mapae-get-post エントリID)'
すると,Emacs が起動して,指定したエントリが表示されます.つまり,このコマンドをウェブブラウザから実行できれば,簡単に mapae でエントリが開けるようになるわけです.
ここで,Mozilla/Firebird と ContextMenu Extensions *1を使ってみます.他のウェブブラウザでも似たようなことが可能だとは思いますが,私は使っていないので分かりません.
まず,表示しているページからエントリ ID を抜き出せるようにするため,Movable Type の「Individual Entry Archive」テンプレートを編集します.次のようなコードを「</body>」の前辺り *2に入れておきます *3.
<form action="" id="feid">
<div>
<input type="hidden" id="eid"
value="<$MTEntryID$>" />
</div>
</form>
input 要素の type 属性が「hidden」なので画面には表示されませんが,これで JavaScriptから簡単にエントリ ID を得ることが出来るようになります *4.
次に,ContextMenu Extensions の設定画面で,「Custom Scripts」を開いてください.ここで,例えば以下のようなスクリプトを登録します.(「/usr/bin/emacs」は適当なパスに置き換えてください.)
if ( _window.document.forms['feid']
&& _window.document.forms['feid'].elements['eid'] ) {
_run('/usr/bin/emacs',
'-eval "(mapae-get-post '
+ _window.document.forms['feid'].elements['eid'].value
+ ')"');
}
登録できたら,実際に使ってみます.mapae で呼び出したいエントリを表示させてから,右クリックでコンテキストメニューを表示させます.メニューのどこかに,先ほど登録したスクリプトがあるはずなので,それを実行します.正しく設定できていれば,emacs が起動し,mapae でエントリの内容が表示されるはずです.
上の例では,emacs を起動しましたが,gnuserv を使っている人であれば,そちらを使えばもっと幸せになれるでしょう.

コメントする