LoginSignup
641
629

More than 5 years have passed since last update.

Markdown風テキストでダイアグラムが描けるWebツール

Last updated at Posted at 2016-04-18

MarkDownDiagram

Markdown風のテキストで、ER図やブロックダイアグラムのようなチャートを描けるツールです。

こちらにインスパイアされて、もうちょっと汎用的にダイアグラムを描けるツールを作りました。

もう保守されない画面遷移図は嫌なので、UI Flow図を簡単にマークダウンぽく書くエディタ作った

特徴としては

  • Webブラウザのみでローカルで動作
  • 配置はマウスでドラッグして編集できる
  • CSSで色や装飾を制御可能

といったあたりです。

CgOdrJ7UMAAF44Y.png

githubからclone/ダウンロードして使えます。
オンラインで試すのはこちらでどうぞ。

ローカルでブラウザのみで動作します。index.htmlをブラウザで開いてください。

Chrome推奨ですが、Safari,Firefoxでも動作します。タッチIFは未対応。

機能

  • テキストでブロックを記述し、ブロック間を線で繋ぐ描画
  • ブロックをマウスでドラッグして位置を調整
  • ドラッグした位置はテキストに反映される
  • ブロックは複数行のtableとdivの2種類の要素
  • ラインはSVGのpathで描画
  • ブロックやラインは、cssで装飾できる
  • テキストのファイルへのロードセーブ機能
  • 印刷機能 (現状A4横サイズ固定)

スタイルについて

プリセットcss(css/mdg.css)にいくつか装飾用のスタイルを定義してあります。文字・背景の色、文字サイズ、paddingサイズやボックスの横幅等をクラスで指定できます。詳しくは、mdg.cssを参照してください。

ロード/セーブについて

編集領域のテキストは、ブラウザのlocalStorageに自動保存されます。
LOAD/SAVEは、テキストをそのままファイルから読み込み、ダウンロードします。拡張子は便宜上.mdgとなっていますが、プレーンテキストなのでなんでも構いません。

印刷について

ブラウザの印刷機能で、ワークスペース全体がA4横に収まるようになっています。画像への切り出し等はPDFに落としてからできます。

書式

ブロックの定義

[name] (class) <position>

nameはブロックのIDとして/[a-z0-9-_]+/。classはcssのためのクラス名。positionは自動的に設定される。

ブロックの区切り線

---

複数行に区切られているとtable要素になる。

他ブロックへのリンク

==>[name]

これ自体区切り線としても働く。ブロックの途中にある場合は、その行から線が始まる。

リンクの属性を設定

u<=(class)=>d[name]

classはリンクのSVG pathに適用されるクラス名。デフォルトのリンクはベジェ曲線だが、"S"を指定すると直線になる。
"<",">"は線の矢印を表す。両端に無くてもよい。
"u","d"の部分は、線の接続位置を表す。左が自ブロック、右が相手ブロックの指定。
"u"はブロックの上部中央、"d"は下部中央。"l"はブロックの左で、"r"は右になる。
相手のブロックの"l","r"の場合は、"l2","r1"のように接続先の行を指定することができる。

ブロックのタイトル

table要素で有効

#title

画像ブロック

[name] (image) 
![title](file "caption")

プリセットのクラスとして"image"をブロックのクラスに適用すると、枠なし、背景透明に設定できる。

コメント

// comment

カスタマイズ

css/custom.css にカスタムのスタイルを追加して使用できます。

画像はどこにあっても大丈夫ですが、imgの下に入れるとよいでしょう。

更新履歴

  • 4/25 プリセットcssを整理して追加しました
641
629
1

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
641
629