LoginSignup
3
2

More than 5 years have passed since last update.

XMindからMarkdownに変換するWindowsツールをF#で実装した話

Posted at

この記事は 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変換ツールを自作してみました。

ツールのソースコードはGithubにあります。

実行サンプル

サンプル用のこんなマインドマップを作ってみたので、これを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#の強みですね。(テストケース追加をサボってなければもっと時間かかったでしょうが)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2