Post from Emacs

Emacs からブログ記事投稿

私は Mac OS X (10.6, Snow Leopard) 上で Emacs (Carbon Emacs パッケージ) を使用している。現在 Mac OS X 上で Emacs を使用するにはいくつかの選択肢があり、そのことについてもいくつか書いてみたいことがあるが、それはしばらく置いておいて、ともかくもまずは WordPress.com のブログを書くに当たって、Emacs 上からブログのエントリーを投稿したい。調べてみると、以下のような便利な Emacs-lisp が公開されているようだ。

1. Weblogger.el

インストール

http://www.emacswiki.org/emacs/WebloggerMode

から weblogger.el と xml-rpc.el をダウンロードしてパスの通ったところにコピーしてバイトコンパイルする(M-x byte-compile-file)。

使用

説明は上記の EmacsWiki に書いてあるが、簡単に触れると、設定ファイル(~/.emacs.d/init.el)に

(load-file "weblogger.el")

としてはじめに、

M-x weblogger-setup-weblog

とするといくつか聞かれるままに各種設定。Wordpress の場合、

http://BLOG-URL/xmlrpc.php

とする。新しい記事は、

M-x weblogger-start-entry

とするとテンプレートが挿入される。他のキーバインディングは以下の通り。

 
post-and-publish current buffer C-x C-s
save as draft and bury the buffer C-c C-c
load the next entry C-c C-n
load the previous entry C-c C-p
delete the current entry C-c C-k
synchronise with the weblog server M-g

問題点

現状ではタグやカテゴリーが使えない(タグはパッチを当てると可能らしい)。Emacs の Org-mode を使用しているならば、次の Org2blog.el を使用したほうが便利かもしれない。

2. Org2blog.el

インストール

$ git clone http://github.com/punchagan/org2blog.git

以下を設定ファイルに追加

(setq load-path (cons "~/.emacs.d/org2blog/" load-path)) ; 適宜変更
(require 'org2blog-autoloads)
(setq org2blog/wp-blog-alist
   '(("wordpress"
      :url "http://username.wordpress.com/xmlrpc.php"
      :username "username"
      :default-title "Hello World"
      :default-categories ("org2blog" "emacs")
      :tags-as-categories nil)))

;; (setq org2blog/wp-use-tags-as-categories t) ; カテゴリーのみ使用

使い方

ログインは、

M-x org2blog/wp-login

新しい記事は、

M-x org2blog/wp-new-entry

公開は、

 
post buffer as draft C-c d M-x org2blog/wp-post-buffer
publish buffer C-c p C-u M-x org2blog/wp-post-buffer
post buffer as page draft C-c D M-x org2blog/wp-post-buffer-as-page
publish buffer as page C-c P C-u M-x org2blog/wp-post-buffer-as-page

消去は、

M-x org2blog/wp-delete-entry

M-x  org2blog/wp-delete-page

画像を入れたい場合も、Org-mode の流儀で、

[[file:///path.to.jpeg]]

[[file:///path.to.jpeg][this is an image link]]

とする。

詳しくは同梱の README.org を参照。

Org2blog のテスト

実際に Emacs から org2blog.el を利用していくつかテストしてみる。

太字、斜体、下線、等幅:

Org mode のルールで書ける。

We do not see things as they are. We see things as we are” (bold)

We do not see things as they are. We see things as we are” (italic)

We do not see things as they are. We see things as we are” (ulined)

We do not see things as they are. We see things as we are” (fixed)

(例は Talmud より)

 
記述 表示
*bold* bold
/italic/ italic
_ulined_ ulined
=fixed= fixed

画像のテスト1:

https://skalldan.files.wordpress.com/2011/06/wpid-apple_logo.png

Ditaa のテスト

https://skalldan.files.wordpress.com/2011/06/wpid-ditaa_example_e239bfe271c853e0f95aeb8ba270d8a29e528df5.png

動画 (YouTube) の埋め込みテスト

(Planete Sauvage, フランスアニメ)

post/page editor からは単純に YouTube のアドレスをコピーするか、

youtube=http://www.youtube.com/embed/T2zTFqoBmPY&w=425&h=349

等で縦横サイズを指定することが可能だが、Org-Mode からは HTML を直接記述する( #+HTML: )しかないのだろうか?

参照: WordPress.com Support (英語)

多言語環境:

UTF-8 で保存してそのままポストできる。

Esperanto Saluton (Eĥoŝanĝo ĉiuĵaŭde)
Georgian (ქართველი) გამარჯობა
Greek (ελληνικά) Γειά σας
Hebrew (עברית) שלום
Italian (italiano) Ciao, Buon giorno
Russian (русский) Здравствуйте!
Japanese (日本語) こんにちは, コンニチハ
Chinese (中文,普通话,汉语) 你好
Korean (한글) 안녕하세요, 안녕하십니까

などなど。

まとめ

使用感は Org2blog.el の方がよい。Emacs Org-mode はまだ使用をはじめて間もないが、最近はメモなどは全部 Org-mode で書くようになったので、他の文章を書く時との統一性もある。しばらくはこちらを使用してみることにする。

【追記】

Emacs 23.3 では問題ないが、Carbon Emacs パッケージ (Emacs 22.3) では画像アップロード時にエラーが出ていた。org2blog と同時に配布されている metaweblog.el の get-image-properties (385 行目以降) の中、

(kill-buffer)

とあるのが問題のようだ。引数がないとエラーが出るのは当然といえば当然なのだが、それでは今度はなぜ Emacs23 でエラーが出ず実行できたのかが疑問である。Google で「emacs23 kill buffer」で検索してみるとそのものずばりの記事が見つかった。

Emacs で anything-config.el の anything-c-etags-select などが動かない件

どうやら Emacs 23 では

(kill-buffer &optional BUFFER-OR-NAME)

と定義されているので引数がなくてもエラーがないようである。ということで、リンク先の記事で書いてくださっているように、

--- metaweblog.el.org   2011-06-12 03:32:43.000000000 +0900
+++ metaweblog.el   2011-06-12 03:32:53.000000000 +0900
@@ -392,7 +392,7 @@
      (setq name (file-name-nondirectory file))
      (setq image-base64 (base64-encode-string (buffer-string)))
      (setq type (symbol-name (image-type file)))
-      (kill-buffer)
+      (kill-buffer (current-buffer))
      (setq fff-image `(("name" . ,name)
                ("bits" . ,image-base64)
                ("type" . ,(concat "image/" type)))))))

とすることで解決。

関連記事

Footnotes:

1 現状では私の環境での銭谷版 Carbon Emacs パッケージ でエラーが出てサーバーへの画像のアップロードが出来ない(get-image-properties: Wrong number of arguments: kill-buffer, 0)。少し保留しておく (上に書いたようにその後解決した)。Emacs 23 (Emacs Mac Port) では問題なく画像をライブラリーに保存して公開できた。また、キャプションや属性を指定してもライブラリーに保存されないようである(org2blog の README.org 参照: Captions and attributes as defined in org-mode will be preserved, but at present these attributes are not saved with the image to the library itself. [Information about uploaded files are added as a comment to the post itself, to prevent repeated uploads, but this isn’t as stable as I would like it.])。しかし Org-Mode 関連は開発が盛んなのですぐに対応されそうではある:-)

Advertisements

3 thoughts on “Post from Emacs

  1. Pingback: Post from Emacs (2) | Amrta

  2. Pingback: Emacsから投稿するテスト « 懶人日記

  3. Pingback: org2blog を使った記事投稿の設定 | 肱岡佑磨のブログ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s