この記事は F# Advent Calendar 2015 の21日目の記事です。 20日目は @kos59125 さんの 「Streams を使ってシーケンス処理をがんばる」でした。
XMindからMarkdownに変換するWindowsツール
今日は だいぶネタもなくなってきたので 拙作のツールを紹介したいと思います。
ツールを作った動機
XMind というマインドマップツールを使って業務の設計のアイディア出しをしていたのですが、この内容をMarkdownに変換して社内に共有したいなーと思ったのが発端です。
XMinDoc(解説記事)という良さそうなツールがあったのですが、Mac/Linuxしか対応していないのと、pandocが必要なのがネックでした。
自分はWindowsで作業がしたかったのです。
あと、pandoc自体は良いツールで、既にインストールして使用していました。MarkdownをWordのdocxに変換できたりするのでSI系の業務でも使用価値があるツールだと思います。それでも、ただ単にMarkdownに変換するだけなのにpandocに依存はあまりしたくないなーという気持ちもありました。
だったら自分で作ればいいじゃない!ということで、非常に単純な機能しかないですが、Windows上で動作するXMind→Markdown変換ツールを自作してみました。
実行サンプル
サンプル用のこんなマインドマップを作ってみたので、これをMarkdownに変換してみます。
変換後のMarkdownは以下の通りです。トピック名を単にヘッダーまたはリスト要素に出力しているだけです。残念ながら画像その他の特殊要素にはまだ対応していません。(とりあえず当初の目的を達成するにはこれでも十分だったので)
# root topic
## main topic 1
### sub topic 1-1
#### newlinetopic
##### 5
###### 6
* 7
* 8
### sub topic 1-2
#### marker
#### relation to
## main topic 2
### サブトピック 2-1
#### relation from
### D言語
# next topic
## next main topic 1
### next sub topic
## next main topic 2
### hoge
今後の展望
とりあえず画像とか基本的な要素には対応できるようにしたいなーとは考えています。あとはCIできるようにするのと、テストパターンの追加(さすがに現状は少なすぎ)です。
ツールを作るのにかかった時間
だいたい2時間程度で実装できました。自分程度のF#力でも単純なツールならさくっと実装できるのがF#の強みですね。(テストケース追加をサボってなければもっと時間かかったでしょうが)