Atom Publishing Protocol (Atom-PP) という規格がある。これは Blog 記事のポスト (投稿) に関する約束事を決める規格。少し前には Atom-API と呼ばれていた。Blog サービスは数あるけど、同じ仕組みで皆さん記事を書けるようにしましょうね、ということ。Atom PP クライアント (Atom PP を使って blog に記事を投稿するためのソフト) を作る側のメリットは、一つの規格についてコードを書くだけで複数の Blog サービスに対応できること。つまり、Atom PP クライアントのユーザーは、(もし持ってるなら) 複数の Blog を一つの操作感で編集できる。
2005 年 7 月現在、Atom PP は未完成。それでも、ベータ仕様ながら Atom PP をサポートしている Blog は...
emacs-atom-api
さて、
GNU Emacs 用の Atom PP クライアントを Erik Hetzner 氏が公開してる。名前は
emacs-atom-api
。Pure EmacsLisp なソフトで、Blog の投稿・編集・削除をサポートしている。日本語や proxy も OK。というか、
clmemo@aka の記事は 2005-05-07 からずっと emacs-atom-api で書いてる。対応してる blog サービスは
Google 社の
Blogger だけ。
Six Apart 社の
Movable Type にも近く対応する、と思う。
emacs-atom-api は 2005-05-03 に初めてウェブに姿を現したソフトで、まだ新しい。正確には、公式リリースされてない。それに Atom PP 規格が未完成ということもあって、パッケージ名・関数名を含めて、これから変わる所も多いはず。バグを見つけたら、是非 Hetzner 氏に報告を。英語が苦手な人は、
ぼく宛にメールを送ってくれてもいいです。
インストール手順
emacs-atom-api は、
GNU Emacs 21.4 と 22(CVS) で動作確認されてる。また、
emacs-atom-api は EmacsLisp だけで動くけど、次のパッケージが必要。
url パッケージのインストール
url パッケージは、HTTP や FTP でファイルを転送するための EmacsLisp。確か、
Emacs/w3 の一部として開発が進められていたはず。Emacs にはバージョン 21 で取り込まれ、公式ツールの一つになった。
ただし、
emacs-atom-api は開発版の url パッケージでないと動かないかもしれない。Hetzner 氏が Emacs21 のために
emacs-atom-api 用にチューンした url パッケージを公開しているので、もし失敗するようらこちらを使う。
url.tar.gz を展開して、load-path の通った所に置けばいい。
Emacs22 (CVS) を使ってる人は、上のパッケージはインストールする必要はない。
nxml パッケージのインストール
nxml パッケージは、投稿する記事が valid (XML 的に正しい) かどうかをチェックするのに使われてる。本来は、XHTML などの XML テキストの入力支援ツール。
nxml の最新版は次のサイトに置いてある
ダウンロード後、make をかけてシンボリック・リンクをはる。
$ tar xzvf ~/download/nxml-mode-*.tar.gz
$ cd nxml-mode-*
$ make
# ln ../nxml-mode-* /usr/local/share/emacs/nxml
最後に .emacs に設定を追加。
;;
;; nXML mode
;;
(load "rng-auto")
(when (boundp 'magic-mode-alist)
(setq magic-mode-alist
(cons '("<\\?xml " . nxml-mode) magic-mode-alist))
)
emacs-atom-api のインストール
最新の
emacs-atom-api は以下の場所にある。
展開して、load-path の通ってる所にコピーするだけ。.emacs には次のコードを追加する。
(autoload 'atom-api:entry/edit "atom-api" "Prompts for an entry to edit, opens in new buffer." t)
(autoload 'atom-api:entry/new "atom-api" "Create a new entry." t)
(autoload 'atom-api:entry/delete "atom-api" "Prompts for an entry to delete." t)
Blogger に投稿してみよう
投稿用の原稿を書くには
M-x atom-api:entry/new。
投稿するには
M-x atom-api:entry/publish。
う〜ん、手抜きな説明だ。スクリーン・ショットもどうぞ。
Proxy 対策と Basic 認証
Atom PP は Basic 認証を使う。せっかくなので、こちらの設定もしてしまおう。要るのはユーザー名とパスワードを一続きにした文字列。ユーザー名 foo、パスワード bar の場合、次の操作 (のどれか) で認証文字列が手に入る。
% echo -n 'foo:bar' | base64 -e
% echo -n 'foo:bar' | openssl enc -e -base64
% echo -n 'foo:bar' | nkf -MB
% echo -n 'foo:bar' | perl -MMIME::Base64 -ne 'print encode_base64($_)'
得られた認証文字列が "BASICFOOBAR12345"、そして Proxy が "foo.bar.proxy"、Port が 8080 とする。
(setq url-http-real-basic-auth-storage
'(("foo.bar.proxy:8080"
("Blogger" . "BASICFOOBAR12345"))))
(setq url-proxy-services
'(("http" . "foo.bar.proxy:8080")
("https" . "foo.bar.proxy:8080")))
ref