WordPress を Markdown 書式で更新する (2): Weblogger Mode

WordPress を Markdown 書式で更新する (1)で Markdown 書式を HTML にできたので,それを WordPress (この blog) に投稿する手順を調べてみた.

Weblogger Mode をインストール & 設定

まずは,プログラムから投稿するために WordPress の XML-RPC インターフェースを有効にする.Wordpress なので設定メニューをクリックするだけで OK.これは org2blog を試したときにやってあったので,今回は省略.

Emacs から WordPress への投稿についてググってみたところ,Weblogger Modeを使えばいいらしいので,インストール & 設定してみる.

上記ページを参考に,weblogger.el をダウンロードして site-lisp ディレクトリに放り込む.

;; weblogger
(require 'weblogger)
(global-set-key (kbd "C-c b") 'weblogger-start-entry)

M-x weblogger-setup-weblog RET を実行すると,設定が必要な項目を順番に聞かれるので入力していく.

これで Weblogger Mode の設定は終了.

記事の投稿

M-x weblogger-start-entry RET で投稿エントリを作成開始.次のような感じで,記事のヘッダが入ったバッファが表示される.

Subject: blog 記事のタイトルを入力
Keywords: 記事のタグを入力? (試してない)
Date: 日付文字列
From: 投稿者
Newsgroup: 投稿する blog 名称
--text follows this line--

Subject:Keywords: 以外はデフォルト値が入っているので,だいたいは Subject: だけ入力している.どうも Date: フィールドでタイムゾーンがうまく扱われていないらしく,投稿後に確認すると9時間ずれている.ググってみると +0900 をつけたらうまくいったという記述も見かけたんだけど… とりあえず,投稿日付は編集したいことが多いので気にしないことにした.

本文は Markdown から生成した HTML を C-x i で読み込む.そのままだと HTML ヘッダも含まれてしまっているので, <body>〜</body> の中身だけ残して削除.このへんもちょっと elisp を書いたら対応できそうではあるけど,記事の HTML をいちおう確認して投稿したいので手動対応で.書くの面倒だし(ぉぃ).

いくつか記事を作って試してみて,下記のルールで書けばそのまま張り込めそうということがわかった.

  • 見出しは ### (h3) 以下のレベルを使い,必ずなにかのタグ [tag] をつける
  • コードブロックは <p>[コード]〜[/コード]</p> で囲む
    • あまりスマートじゃないけど,SyntaxHighlighter で使う [コード] は HTML タグじゃないからしょうがない…

ちょっと手作業が入るけど,ブラウザの入力窓で書くのと比べたら断然楽だし,手元に元ファイルが残るので,しばらくこの手でいくことに決めた.最近の数エントリは実際に上記の手順で更新してます.

WordPress を Markdown 書式で更新する (1)

いいかげん放置状態の日記もなんとかしないとなぁ… と思い立つ.

更新がどうしても滞るのは,書くのに手間がかかるから… いや,本文を書くのに時間がかかるのはしょうがないんだけど,それ以外の部分は簡単にしたい…^^;

なによりも筆が,いや,指が重くなるのは Web の Form から入力する部分.それであれば Emacs から更新できればいいよなーと.そう思って,以前,org2blog というものを試してみたことがあって,これはこれでちゃんと更新はできところまではやったんだけど,org-mode の書式にどうにも慣れられずに頓挫 orz.

それぞれに利点があるのは分かるんだけど,Wiki にしてもそんなにたくさんの書式は使い分けたくないよ…

そこで今回は,自作のシステムで使ったのでちょっとなじみがあり,github でも使われている Markdown 書式を使って更新することにした.

markdown-mode.el のインストール

まずは markdown-mode.el を使えるようにする.下記のページから markdown-mode.el をダウンロード.

Markdown 記法を解釈する外部コマンドとして呼び出すプログラムは,Markdown 記法と上位互換の MultiMarkdown を利用する.ほとんどのものは元の Markdown 記法で足りるけど,表などの拡張が入っているので,それも使えるかもしれないというもくろみ.こちらは MacPorts にあったのでそれを利用.

sudo port install multimarkdown

Emacs の設定ファイルに下記を記述.

(autoload 'markdown-mode "markdown-mode.el"
   "Major mode for editing Markdown files" t)
(setq auto-mode-alist
   (cons '("\\.md" . markdown-mode) auto-mode-alist))
(setq markdown-command "/opt/local/bin/multimarkdown")

拡張子 .md でファイルを開くと markdown-mode が起動する.

Markdown 記法でドキュメントを書いて C-c C-c m すると,別バッファに HTML にコンバートした結果が表示される.C-c C-c e すると,拡張子を .html にしたファイルをカレントディレクトリに出力する.