EmacsからWordPressを更新する
EmacsはWordPressへ記事を投稿することができます。org2blogというパッケージを使えば、原稿をorg-modeで書いてWordPressへ一発で投稿することができるのです。
ただし万能というわけではありません。いくつかの制限があるのでそれも含めて org2blog を簡単に紹介します。
org2blogで出来ること
記事を新規作成する
記事の原稿はorg-modeのテキストファイルです。当然、orgの書式を覚える必要があります。
org2blog/wp-modeというマイナーモードを起動しておくと、記事を投稿するコマンドなどが利用可能になります。
orgファイルの先頭には次のようにorg2blog/wp-modeの設定情報を書くため、特殊なorgファイルになっています。
# -*- mode: org; mode: org2blog/wp; -*- #+CATEGORY: メダカ #+TAGS: 失敗談 #+PERMALINK: medaka-mistake #+TITLE: メダカの失敗談
org-mode独自のローカル変数(environment keyword)が用意されています。
この記事ではこの形式に沿ったorgファイルのことを o2bファイル
と表記することにします。
記事を更新する
上の新規作成で使った o2bファイル
を一度投稿するとPostIDが記録されるので、再度投稿することで何度でも変更できます。
画像を添付する
org-insert-linkというコマンドから画像ファイルへのリンクを作成することができます。この時、ブログの画面上では
- インライン表示(画像がそのまま貼りつく)
- リンク表示
の二通りから選らべます。コマンド実行時、Descptionに何も入力しないとそのまま貼り付きます。
この機能の便利なのは、記事の投稿といっしょに画像ファイルも自動でアップロードしてくれるため、手間がかかりません。
インライン表示の場合、Emacs上もインラインで表示させることができるので、写真を確認しながら原稿を書くことも可能です。大きい写真だとそのままのサイズで表示されてしまうので、非表示にしないと厳しいです。 (org-toggle-inline-images
を実行します)
リンクを貼ると o2bファイル
には次のような一文が挿入されます
[[file:~/Blog/medaka.jpg]]
記事の投稿が完了すると、 o2bファイル
の末尾に次のような一文が自動で追記されます。
# medaka.jpg http://hoge.com/wp-content/uploads/2015/09/wpid-medaka.jpg
この一文があると、再度投稿しても画像は再アップロードされません。必要があれば、この一文を削除して再投稿することでアップを強制的に実行できます。(ファイル名は重複しないようにリネームされます)
カテゴリーとタグを設定する
WordPressのカテゴリーとタグにも対応しています。 o2bファイル
の設定に使いたいカテゴリーとタグを記載しておけばOKです。
パーマリンクを設定する
WordPressの記事のURLを指定することも o2bファイル
で指定することができます。次のように #+PERMALINK:
にパス名を設定します。
#+PERMALINK: medaka-mistake
org2blogで出きないこと
org2blogは基本的には満足していますが、すでに運用しているWordPressサーバーがあったとしても既存の原稿をさわることはできないのが残念なところです。
org2blogで投稿していない記事を編集すること
org2blogは、ローカルの o2bファイル
から投稿することが前提になっています。 WordPress上の記事の投稿画面から作成したものについては、Emacsから編集することはできません。
記事の一覧
記事の編集と同様に、サーバーのWordPressから記事の一覧を取得することはできません。
僕の場合
記事を後から変更したい場合は、WordPressの管理画面から行なうか、原稿である o2bファイル
を用意しておくしかありません。
僕の場合は、Emacsでテキストをできるだけ書きたいので、 o2bファイル
を残しています。複数のパソコンに分散するのは管理が面倒なのですべてDropboxで管理しています。今のところ快適に運用できています。
ただこの運用にこだわるあまり、Webブラウザさえ使えれば、iPhoneからでも編集ができる利便性を少し損なっている気はします。(WordPressを直接変更した場合、後から o2bファイル
も変更して同期させている等)
org2blogのインストール
基本はパッケージ管理機能でインストールできます。
事前にMELPA(http://melpa.org/packages/)を登録しておいてください。詳細は次の記事を参照 → Emacsのパッケージ管理を使う
準備ができたら、~M-x install-package~ を実行して、 org2blog
を指定すればOKです。
次に M-x customize-option
で org2blog/wp-blog-alist
をカスタマイズしてください。
org2blogを使う
記事のエントリーを用意するには M-x org2blog/wp-new-entry
を実行してください。
記事が書けたら投稿です。
まずは、ドラフト(プレビュー)として投稿するには M-x org2blog/wp-post-buffer
を実行します。 それでOKなら M-x org2blog/wp-post-buffer-and-publish
を実行すれば、正式に公開されます。
上記のコマンドでは1つの o2bファイル
を1つの記事として投稿しています。たぶんこれが一般的なのかな。
orgモードのアウトラインヘッダ毎にひとつの記事として書くこともできます。 この場合、該当のヘッダで、 org2blog/wp-post-subtree
を実行しますが、公開できるコマンドはなぜか用意されていません。
以上、おおまかですが、 org2blog
の説明でした。