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 は...
- Six Apart 社の TypePad
- Six Apart 社の Movable Type
- Google 社の Blogger
- Livedoor 社の Livedoor Blog
- So-Net の So-net blog
- Mac OS X Server の Blojsom
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 パッケージ
- nxml パッケージ
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")))
No comments:
Post a Comment