2014-07-04

bpe : org-mode で Blogger


Markdown で Blogger

Blogger は、残念ながら Markdown に対応してないんですよね。
Blogger で 無理やり Markdown を使うために、今までは Tips - MarkdownをHTMLにembedする : 404 Blog Not Found の方法を使ってました。
簡単に言うと、textarea 内に Markdown を書いて、js で HTML に変換するってだけです。

この方法のいいところは、Markdown -> HTML 変換なしで Markdown のまま post できることです。
自分で HTML に変換してから post だとそのワンステップ自体も、後で Markdown と HTML を同期するのも面倒ですから。

この方法の問題は、スマートフォン等のモバイルデバイスでうまく表示できないことです。
そりゃナシだろってくらい致命的な問題ですが、これまではそれを知ってて無視してました。
アリテイに言うと、スマートフォンからのアクセスを捨ててたわけです。
今ではたしかに大問題ですが、その昔はそれほどでもありませんでしたし。
ていうかもっと正直に言うと、すっかり忘れてたんです。
最近ひさしぶりに自分のブログを iPhone で見て、そういやそんな問題あったなと。

それで、そろそろなんとかしなきゃならないなということで、このエントリを書くにいたったわけです。

Blogger で Markdown を使うには、StackEdit というテもあります。
StackEdit は Web 上の Markdown エディタで、入力した Markdown を直接 (Blogger を含む) blog 等のサービスに post する機能があります。

ただ、残念ながら HTML タグが含まれているとうまく変換できなくなってしまう問題がありました。
HTML を埋め込めない Markdown って …。
それに、ブラウザ上のエディタなんて、かったるくって使ってられないですよね。

tumblr なら、 Markdown に対応してるんですよね。
tumblr も使ってる のでそっちに一本化してもよかったんですが、
放置してどうしようか迷ってるうちに、org-mode で Blogger に post するテを発見したので、そっちを採用することにしました。

考えてみたら、Markdown より org-mode のほうが more better ですよね。
Markdown なんて、表現力でいったら org-mode のサブセットに過ぎないし、org-mode は HTML エクスポートくらい普通にできるんだし。
なんでスッとそっちを思いつかなかったのか、不思議です。
とはいえ、Tips - MarkdownをHTMLにembedする : 404 Blog Not Foundを採用した当時は、まだ emacs 使ってなかったのでしょうがないんですが。

ただ、HTML エクスポートができるとはいえ、org-mode で快適に Blog を書くためにはもう一つ条件があります。
HTML への変換のステップをなくすことです。
幸い、変換 -> post を一気にやってくれる elisp を 作ってくれてる人 がいたので、そこは No 労力でクリアです。

org-mode で Blogger

org-mode から Blogger に post するには、bpe を使います。

もし、まだ googlecl をインストールしてなければ、gdata-python-client と一緒にインストールします。
で、いったん
$ google blogger list
でもして、認証を通しておきます。

ここでハマったのが、googlecl が PYTHONPATH に設定したパスを見てくれないことでした。
そのせいで、gdata を import してるとこで落ちてしまいます。
結局、googlecl の shebang のパスと僕の環境の python のパスが違ったという、なんでもないことが原因でした。
brew とかで適当に python をインストールしたまま放置してると、こんな簡単なことでつまずいてしまいますのでご注意を。

あとは emacs の設定ファイルに
(require 'bpe)
(require 'htmlize nil 'noerror) ; to fontify source code block on your blog.
(setq bpe:account "your mail address on google blogger")
(setq bpe:blog-name "your blog name")
(define-key org-mode-map (kbd "C-c C-p") 'bpe:post-article)
(define-key org-mode-map (kbd "C-c C-i") 'bpe:insert-template)
;; For Japanese, default is $LANG environment variable.
(setq bpe:lang "ja_JP.UTF-8")
と書けば準備 ok 。

org ファイルを作ったら、上の define-key にあるとおり C-c C-i すればヘッダのテンプレートを挿入してくれます。

こんなかんじ
#+TITLE:
#+OPTIONS: toc:nil \n:nil num:nil
#+TAGS:
#+AUTHOR:

タイトル、タグ、および作成者 (必要ならオプションも) を記入したら、あとは記事を書いて C-c C-p で post するだけですね。

しばらくはこのまま org-mode -> Blogger を使ってみて、もしイマイチだったら 他の elisp を試してみるか、org-mode から Tumblr に post するテもあるようなので Tumblr に引っ越すかも。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...