統合執筆環境 org-mode (Emacs Advent Calendar 22日目)

この日記は、Emacs Advent Calendarの22日目です。
Emacs Advent Calendar jp: 2010 : ATND
昨日はhitode909さんでした。 zizo.elのご紹介です – hitode909のダイアリー
さて、org-modeについては、Emacs Advent Calendarでもid:handlenameさん、id:t_rakaishiさんが素晴しい記事を書かれています。
org-modeでTODO管理 – handlename::blog
org-modeとAnythingが交差するとき,物語は始まる – r_takaishiの日記
この期に及んで、さらにorg-modeのことを書くという暴挙に出たわけですが、もともと空気読むのは得意でもないので気にせず書くことにします。
Born to be org-mode !!
このところ、メモとり、アイデア出し、などなど諸々の書きものは全てorg-modeで書いています。org-modeで書くメリットとしては、様々なフォーマットでエクスポートできるというところがあります。
さらに、以前にも書いたorg-babelを使えば、いろいろなプログラミング言語をorg-mode上で実行できるようになります。
いろいろな言語をorg-modeで統合的に扱い、必要に応じて任意のフォーマットにエクスポート、てな感じでとても柔軟に使えることがorg-modeの魅力だと思います。
ただ、org-modeは、エクスポートするまではすでに十分すぎるほどの機能があるのですが、いざ公開しようとなると結構面倒です。 org-publishというものもあるのですが、いかんせん設定が面倒でいまだに試していません。
というわけで、今回はお手軽に公開する方法をいくつか紹介しながら、org-modeの便利機能にも触れていこうかなと思います。
org-modeでブログを書こう
お手軽に文書を公開するならば、やっぱりブログですよね。org-modeでは、ブログに投稿するのもすこぶるお手軽にできます。 ちなみにこの文章もorg-modeで書いています。
org-modeからブログに投稿するには、org2blog.elが便利です。READMEにはwordpress用と書いてますが、XML-RPCに対応したブログならどうにかしたら使えるんではないかと思います。
まずは、githubからorg2blog.el、metaweblog.elを落としてきます。
ちなみに、blogger/blogspotにはorg-googleclというのがあるようですね。
閑話休題、以下のように.emacsあたりに書いておきます。
なお、org2blog.elはorg2blog-blog-alistに追加することで、複数のブログに対応させることもできます。
(require 'org2blog) (setq org2blog-blog-alist '(("Blog-name" ;ブログの名前 :url "http://yourdomain/xmlrpc.php" ;; xmlrpc.phpのURLを書く :username "myname" :default-title "Hello" :default-categories ("default") :tags-as-categories nil)))
実際に使ってみます。まずはM-x org2blog-loginでログインして、M-x org2blog-new-entryでテンプレートを呼びだします。
この時点でorg2blogで定義されているマイナーモードが動いていて、次のようなキーバインドが使えます。
・ 下書きとして保存 C-c d
・ 公開 C-c p
編集している時のメジャーモードはorg-modeでorg2blog-modeはマイナーモードでしかありません。
つまり、ふつーのorg-modeとして使えるわけで、公開や下書きを保存しなくともローカルにファイルとして保存しておくこともできます。
僕の使い方としては、雑多なメモを.orgでdropboxに保存しておいて、まとまりそうなものはorg2blogでブログに公開、という使い方をしてます。
また、内容を確認したい時は、M-x org-export-as-html-and-open してブラウザで確認するのが便利です。下書きとして保存してプレビューなど、まどろっこしいことをせずにサクッと確認できます。
org2blogとorg-babelの連携
投稿して公開できるならどこぞのブログエディタとたいして変わりません。org-modeでブログを書けることのメリットはorg-modeの便利な機能と連携できるところにあります。
特にorg-babelとの連携はとても素晴らしいです。例えばフロー図を書きたい時は、ditaaがあります。
Graphvizでも書いてみましょう。
こういった作図はわざわざ、他のアプリで作った画像を貼りつけたり、他のバッファに移動する必要すらありません。全てorg-modeの中で完結してしまいます。
また、ブログにソースコードを貼りつける時も、シンタックスハイライトはorg-modeの機能でできますし、org-babelを使えばソースコードを貼りつけた時点ですぐ実行することもできます。
対応する言語もどんどん増えていってるようですね。
org-modeをまだ使ってない方もこれを期にorg-modeでブログを書いてみると良いんではないかと思います。
org-modeでドキュメントを書こう
さて、先ほど紹介したorg2blogのgithubを見てみた方、気づいたでしょうか。READMEがorg-modeで書かれていることを!!
githubはorg-modeの記法に一部対応しているのです。そう、githubに公開している作品のドキュメントを慣れ親しんだorg-modeで書くことができるのです。
githubだけではありません。gistでも当然org-modeが使えます。
というわけで、gistでどういうふうに書けるのか試してみました。画像の表示やbegin_srcタグなど対応できていないものもありますが、簡単なドキュメントならば十分なんではないでしょうか。
gistをもっと使いたくなってきましたね!!そんな方は拙作anything-gistなんていかがでしょうか。anything-gistはみんな大好きanythingのインターフェイスでgistを閲覧し、ローカルで変更した内容をサーバサイドにpushできる機能を付加したelispです。詳しくは以下の日記でどうぞ。
org-modeは止まらない
[tmkm-amazon]1906966087[/tmkm-amazon]
[tmkm-amazon]4774143278[/tmkm-amazon]
-
前の記事
今週の気になるアレDecember 16th 2010.12.16
-
次の記事
今週の気になるアレDecember 23rd 2010.12.23