読者です 読者をやめる 読者になる 読者になる

意識の高いLISPマシン

藤原惟/すかいゆき(@sky_y)の技術用ブログ

XMindのHTMLファイルをorg-modeで編集したい

XMindとorg-modeの出会い

僕はマインドマップツールのXmindを使っていて、

  • 考えをまとめるツール
  • 何か文章やレポートなどを書く時の下書きツール

として愛用しています。
余談ですが、Pro版を買うと(Windows環境のみですが)WordやPowerPointに直接はき出せて便利です。
ブレスト(ブレインストーミング)・マインドマップ作成ソフトウェア XMind [エックスマインド]


一方で、Emacsのorg-modeにも手を染めようとして色々格闘しています。
アウトラインエディタの一種として使えますが、色々すごい機能があって何がなんやら状態です。
こちらは、本格的な文章を書くときに使おうとしています。
OrgMode - Emacs上のアウトライナー


快適な執筆環境を作るために、この二者をうまく組み合わせたくなりました。つまり、

  1. XMindで下書きする
  2. org-modeで文を執筆する

という手順を踏みたいのです。


障害となるのが、XMindで作ったマインドマップをorg-modeに変換するときです。
通常は手打ちでやる必要があるのですが、自動化したいので以下の手順を考えました。

  1. XMindで考えをまとめる
  2. XMindマインドマップをHTMLにエクスポートする
  3. HTMLをorg文書に変換する ←今回の主題
  4. org-modeで文を執筆する

xmind_html_to_org

HTML->orgの変換ツールがないか検索してみましたが、どうやら無いようなので自分で作りました。
xmind_html_to_org.rbという、簡単なrubyスクリプトです。

sky-y/xmind_html_to_org · GitHub

動作環境
  • ruby (1.9で動作確認)
  • Hpricot: ruby用HTMLパーサ。

Hpricotは以下のようにインストールします:

gem install hpricot
使い方
ruby xmind_html_to_org.rb filename.html
やること
  • h1, h2, h3タグで囲まれたテキストを抜き出す
  • それぞれ頭に *, **, *** (見出し記号)を付けて吐き出す

XMindが吐き出すHTMLしか相手をしないので、かなり単純です。

1. XMindでマインドマップを作る

これを例にします。
てすと - sky_y0079 - XMind: Professional & Powerful Mind Mapping Software


2. HTMLファイルにエクスポートする

File->Export... で HTML を選択します。
オプション類はお好みで(後の動作にはたぶん影響しない)。
ここではファイル名は test.html とします。


3. xmind_html_to_org.rbで HTML -> Orgファイル に変換する

ruby xmind_html_to_org.rb test.html


4. test.orgが出力されるので、Emacs org-modeで開く

たぶん、こんな感じのテキストになっているはずです。

* てすと


** Hoge

*** ほげ
*** ほげほげ

** Fuga

*** ふが
*** ふがふが

** Homu

*** ほむ
*** ほむほむ
余談

なお、今回初めてgithubを使ってみました。
git自体は使った事があったので、割とスムーズに導入できました。