ファイルを開いたら、org2blogのマイナーモードを起動する


この日記はorg2blogを使って書いています。

punchagan/org2blog

何しろ、org-modeのフォーマットで書けますし、コードとかもhtmlizeによってハイライトしてくれて、とても便利です。

普段の使い方としては、一つの記事に一つのorgファイルが対応するようにしていて、時間が空いた時などにツラツラと書くようにしてます。Orgファイルを開くだけで良いので、サーバに待たされることもありません。書きあがるまでOrgファイルとして管理しておき、書きあがり次第、記事をアップ。ブログが普及する前の前世代的な運用ですが、こっちの方がサーバやネットワークの反応にイライラすることもなく性に合っている気がします。

ただ、ちょっと不満だったのがorg2blogがorg-mode上のマイナーモードとして動作することです。書きかけのOrgファイルを開いて記事を完成させ、さあアップロード!という段になり、org2blog/wp-modeが有効になっておらず、腰折られたことが度々ありました。

org2blog用に作ったorgファイルは自動的にorg2blog/wp-modeを有効にしておきたいものです。

独自の拡張子をつけて、auto-mode-alistでマイナーモードを起動

すでに、同じようなことを考えている方がいました。

org2blog(Emacsのブログエディタ) | 日暮途遠(Linux)

こちらの方はorg2blog用に拡張子を設定して auto-mode-alistorg2blog/wp-mode を有効にしています。

org2blog用のorgファイルが一目でわかるし、良い方法ですね。

Local Variables の eval 行でマイナーモードを起動

もう一つの方法は、Local Variables でファイルローカルな変数を定義するというものです。 Emacsでは、ファイルごとにローカルな変数を持つことができます。詳しくはinfoをどうぞ。

(Info-goto-node "(emacs) Specifying File Variables")

org2blogでは、Orgファイルのテンプレートを定義する変数 org2blog/wp-buffer-template があるので、そのeval行でマイナーモードを起動させます。

(setq org2blog/wp-buffer-template
      "#+DATE: %s
#+OPTIONS: toc:nil num:nil todo:nil pri:nil tags:nil ^:nil TeX:nil
#+CATEGORY: %s
#+TAGS:
#+DESCRIPTION:
#+TITLE: %s
\n
\n
# Local Variables:
# eval: (org2blog/wp-mode)
# End:\n")

Local Variablesは他にもいろいろと応用がききます。yasnippetのスニペットとして登録しておくといろいろと便利かもしれません。