• Emacs と Perl を使って,XML-RPC 経由で Movable Type のエントリを編集するツールを配布しています.良かったら持っていってください.( 2004/10/24 update) mapae logo
  • Movable Type で footnote*1 を生成する plugin を配布しています.良かったら持っていってください.( 2004/03/04 update )
  • その他の配布物等

*1: 脚注.よ〜するに,こ〜ゆ〜やつです.

mapae tips :: ブラウザで表示しているエントリを mapae で開く

| コメント(0) | トラックバック(0)

過去のエントリをウェブブラウザで眺めているとき,少し手直ししたくなったことはありませんか? mapaeでは,過去のエントリを呼び出す手段として,次の二通りが用意されています.

  1. エントリ ID を指定して呼び出す.
  2. エントリリストから選択する.

実は,前者の方法を応用すれば,簡単にエントリを呼び出せるのです.

mapae では,エントリ ID を指定して呼び出す機能を,「mapae-get-post」という Emacs Lisp の関数で定義しています.そこで,kterm 等から以下のコマンドを実行してみます.

emacs -eval '(mapae-get-post エントリID)'

すると,Emacs が起動して,指定したエントリが表示されます.つまり,このコマンドをウェブブラウザから実行できれば,簡単に mapae でエントリが開けるようになるわけです.

ここで,Mozilla/FirebirdContextMenu 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 を使っている人であれば,そちらを使えばもっと幸せになれるでしょう.


*1: Piro 氏による
*2: body 要素の中であればどこでも構いません....入れ子関係が正しければですが.
*3: 当然,再構築の必要があります.
*4: つまり,JavaScript からエントリ ID が得られるのであれば,他の方法でも構いません

トラックバック(0)

トラックバックURL: http://d.nym.jp/mt/trackback/1681

コメントする

最近のコメント

アーカイブ

Author

nym <n...@nym.jp>
Powered by Movable Type 5.12