« [Zaurus] Linux Zaurus向けPerl5.8.7パッケージ(幾霜版) | Main | [Mac OS X] Mac OS X用2画面ファイラーXfind »

2007.03.22

[Emacs] Emacsでココログ(Emacsでブログ) mapae環境を作る (Mac OS X / Windows XP)

長年特に疑問を持たずにココログのWebインターフェイスを使って更新してきましたが、どうもココログのWebインターフェイスを使ってエントリするのはもっさい感じで、実際重くて嫌な感じです。

Yet Anotherな手段を開拓した人が居るに違いありません。

そのような確信の元に「emacs ココログ」でググって出てきたEmacs用のMovable Type:: Emacs フロントエンドである「mapae」を使ってみました。

要するにEmacsからココログの読み書きをしようというわけです。

正直な話、2ちゃんねるブラウザよろしく、出来あいのブログサービスというものをWebブラウザ以外のアプリケーションを使って更新できるということを知りませんでした。
XML-RPCというプロトコルがあり、ココログもまたそれに対応しているのですね。

案外簡単にできたので、二次情報としてレポートしておこうと思います。

使ってみた感じ、とても快適で気に入りました。
Emacsからシームレスにココログへエントリできるので、とっても楽。

また一つEmacs上のマストなアプリケーションが増えました。

あまりにも快適なので、Windows XPマシン、Mac OS Xマシン両方にインストールしてしまいました。

Windows XPでのインストール作業

Windows XPへのインストールは簡単です。

Meadow3をインストールします。
今はNetinstallが整備されているのでインストーラ一発で簡単です。
僕は「d:\Meadow」にインストールしました。

ActivePerlをインストールします。僕は「c:\Perl」にインストールしました。インストーラで簡単にインストールできます。

mapaeのサイトに行ってmapaeをダウンロードしてきます。現在の最新版は「Ver.0.11 20051017」です。

解凍して出てくるmapae.plとmapae.phは、僕は「d:\Meadow\bin\」に置きました。
mapae.elは、適当なload-pathが通ったディレクトリに置きます。僕は「d:\Meadow\site-lisp\」に置きました。

.emacs.elに以下を追加します。パスは上記の僕の環境にならったものになっています。

(require 'mapae)

(setq mapae-perl-command "c:/Perl/bin/perl")
(setq mapae-command "d:/Meadow/bin/mapae.pl")
(global-set-key "\C-cwn" 'mapae-new-post)
(global-set-key "\C-cwr" 'mapae-get-recent-post)
(global-set-key "\C-cwg" 'mapae-get-post)
(global-set-key "\C-cwl" 'mapae-get-recent-titles)

mapae.phを書き換えます。詳細はオフィシャルサイトを参照してください。
最低限書き換える必要があるのは以下の4行だけです。簡単です。
ココログのベーシックなのでこのような設定になってます。

$RPCSERVER = 'http://app.cocolog-nifty.com/t/api';
$BLOGID = 99999;
$USERNAME = 'ログイン時に入力しているユーザーネーム';
$PASSWORD = 'ログイン時に入力しているパスワード';

BLOGIDは、ココログの管理画面のcgiの引数に付いている「https://app.cocolog-nifty.com/t/app/weblog/manage?blog_id=99999」の9999の部分の数字です。

cmd.exeを起動して、

perl d:\meadow\bin\mapae.pl getRecentPost

を実行して最新のエントリが表示されたらOKです。

インストールは以上です。

Mac OS X (Panther / Tiger)でのインストール作業

Mac OS Xへのインストールはちょい面倒です。

Xcodeをインストールしておくのが大前提です。

XcodeはApple Developer Connectionからダウンロードできますが、無料の会員登録が必要です。
古くてよければMac OS XのインストールCDに入ってますが。

Expatをインストールします。
tarballをもらってきて、適当なディレクトリで解凍、make installします。

$ tar xvzf expat-2.0.0.tar.gz
$ cd expat-2.0.0
$ ./configure; make
$ sudo make install

CPANでLWP、MIME::Parser、XMLRPC::Liteをインストールします。
途中でいろいろ聞かれますが、全部Enterで済みました。

$ sudo perl -MCPAN -e shell
$ cpan> install LWP
$ cpan> install MIME::Parser
$ cpan> install XMLRPC::Lite
$ bye

CarbonEmacsをインストールします。
銭谷さんによりパッケージが整備されているので/Applicationsにコピーするだけです。銭谷さんってNASAの人なんですね。スゴイ。

Pantherの場合は、Saikiさんのサイトからパッケージがダウンロードできます。

mapae.pl、mapae.phは、パスを通した~/binに置きました。
mapae.elは、以下のように.emacs.elに追記し、load-pathを通した~/elispに置きました。

(setq load-path (append '("~/elisp") load-path))

Pantherの場合はPerlのパスは「/usr/local/bin/perl」なので、mapae.plのシェバング行を書き変えます。
Tigerの場合は「/usr/bin/perl」なのでそのままでOKでした。

mapae.phの書き換え内容、.emacs.elへの追記内容はパスこそ違えどWindows XPの解説と同じです。

ターミナルで以下を実行して最新のエントリが表示されたらOKです。

mapae.pl getRecentPost

インストールは以上です。

mapaeの使い方

C-cwlで最新のエントリ15本のサブジェクトを取得します。
M-x mapae-modeみたいなものは必要無く、いきなりC-cwlします。

取得したサブジェクトのうち、編集したいエントリ名の行にカーソルを合わせてfでエントリの編集ができます。
dired-modeみたいな感じですね。

C-cwsで編集結果の保存です。ただし、公開内容は更新されません。

つまり、C-cwsで保存すると、mapaeで編集した内容と、公開内容の間に不一致が生じます。
Webインターフェイスから見てもmapaeで編集した内容になっていますが、公開内容は古いままという状態になるわけです。
ココログのWebインターフェイスを使っていては起こりえない状態なのでとまどうかもしれません。

C-u C-cwsで編集結果を保存しつつ、公開内容も更新します。

新規エントリの登録はC-cwnです。
項目を埋めてC-cwsで編集結果の保存(下書き相当)、C-u C-cwsで編集結果を保存しつつ、公開内容も更新です。

これ以外の機能についてはマニュアルを参考にしてください。

あとがき

これをZaurusで使いたいがためにPerl5.8.7のZaurus用のパッケージを作ったのですが、ZaurusではCPANするのが大変です。
もしZaurusで動かせたら教えてください。

2007.5.9追記

聖アンドレアスの失敗さんでも、エントリ「mapaeというのがあるらしい」でmapaeについての言及が。ココログフリーはapiのurlが違うとのこと。

|

« [Zaurus] Linux Zaurus向けPerl5.8.7パッケージ(幾霜版) | Main | [Mac OS X] Mac OS X用2画面ファイラーXfind »