Translate

Post Date:2019年8月26日 

Markdown(Typora)でガントチャート

Markdownで作成したガントチャート

Typora で Markdown シリーズの第4弾は、Mermaid を使ってのガントチャートの作成です。MarkdownエディタのTyopraは、mermaid でガントチャートを記述することができます。

Markdownで描くガントチャートには、

  • メリット
    • シンプルなガントチャート
    • 簡単にテキストベースでガントチャートが作成できる
    • テキストなので差分管理も簡単
  • デメリット
    • マイルストーンが設定できない
    • 順序を示す矢印が使用できない
    • 複雑なガントチャートには向かない

という特徴があります。


Typora でガントチャート

Typora でガントチャートを作成するために、```mermaid でEnterすると mermaid のコードが記述できるようになるので、最初の行に gantt と書きます。

mermaidの最初の行にganttと記述

タイトル行

title に続けてタイトルを記述します。

ガントチャートのタイトル

日付フォーマット

  • dateFormat
  • axisFormat

dateFormat で gantt の中で使用する日付のフォーマットを定義します。ネットで検索した多くの例は、dateFormat YYYY-MM-DD となっていますが、これは、2019-08-25 のように日付を記述するという意味です。

フォーマット 記述形式
YYYY 年4桁
YY 年2桁
MM 月2桁
DD 日2桁

上記以外の記号文字はそのまま表示されます。つまり、dateFormat MM/DD とすれば、月と日をスラッシュ区切りで記述するという意味になります。

下記の例は、dateFormat で年4桁で記述すると宣言した場合の記載方法です。

```mermaid
gantt
dateFormat YYYY
axisFormat %Y/%m
task1: 2019, 2020
task2: 2020, 2021
task3: 2021, 2022
```

日付の形式を指定する

次に axisFormat ですが、これは、軸の日付フォーマットになります。上記の例でもは、年4桁/月 となります。その他に下記のフォーマットが使えます。

フォーマット 記述形式
%Y yyyy: 年4桁
%y yy: 年2桁
%m mm: 月2桁(01-12)
%d dd: 日2桁(01-31)

上記表以外の記号文字は、そのまま表示されるので %m/%d とすれば、mm/dd の形式で表示されます。


タスクの期間の記述方法

各タスクの期間を記述する方法にはいくつかあります。

  • 開始日付と終了日付+1日で記載
    • e.g. 08/01,08/08
  • 開始日付と日数で記載
    • e.g. 08/01,7d
  • 開始日と週数で記載
    • e.g. 08/01,1w
  • 期間だけを記載(2つ目以降のタスク)
    • e.g. 7d or 1w

下記の例は、何れも1週間の期間となります。

```mermaid
gantt
title 1週間の表記方法
dateFormat MM/DD
axisFormat %m/%d
task1(08/01-08/08): 08/01,08/08
task2(08/08,7d)   : 08/08,7d
task3(1w)         : 1w
```
タスク期間の記入

後続タスクの記述方法

後続タスクは、after を使います。表示上は何ら変わらないので、すべてのタスクを開始日と終了日で記載するのであれば、afterを使う必要はありません。

下記の例では、task1の終了後にtask3が開始されます。

```mermaid
gantt
title 後続タスク
dateFormat MM/DD
axisFormat %m/%d
task1: 08/01,08/08
task2: 08/05,5d
task3: after task1,1w
```

また、タスク名が長い場合などには、エイリアス名を付けることも可能です。下記の例では、task1 を t1 と定義して、8行目で after t1 として利用しています。

```mermaid
gantt
title 後続タスク
dateFormat MM/DD
axisFormat %m/%d
task1: t1, 08/01,08/08
task2: t2, 08/05,5d
task3: t3, after t1,1w
```
後続タスクの記述

タスクのステータスとクリティカルタスク

各タスクは、完了、実行中 と クリティカルタスクを示すことができます。

記述方法 意味
done 完了タスク
active 実施中のタスク
crit クリティカルタスク
crit, done 完了したクリティカルタスク
crit, active 実施中のクリティカルタスク

```mermaid
gantt
title タスクステータスとクリティカルタスク
dateFormat MM/DD
axisFormat %m/%d
task1:       done,   08/08, 1w
task2: crit, done,   08/15, 1w
task3: crit, avtive, 08/22, 1w
task4:               08/29, 1w
task5: crit,         09/05, 1w
```
タスクのステータスとクリティカルタスク

セクション

タスクをセクション毎に分けることができます。下記は、”準備”、”実行”、”確認”と3セクションに分けている例です。

```mermaid
gantt
dateFormat  MM/DD
axisFormat  %m/%d
title ガントチャート

section 準備
終了タスク: done, 07/07, 4w

section 実行
アクティブタスク: active, t1, 08/04, 28d
後続タスク: after t1, 09/29

section 確認
クリティカル: crit, 09/01, 09/15
最終タスク: 09/15, 2w
```
セクション

Typora で Markdown シリーズ

Typora での Markdown の記述方法については、下記のシリーズで紹介しています。





Post Date:2019年8月24日 

食べる玄米甘酒で菌活生活のすゝめ

食べる玄米甘酒

甘酒は栄養価の高いところから飲む点滴といわれていますが、玄米を混ぜて甘酒を作るようになってから、次第に玄米の量が増えていき、”飲む” から ”食べる” になってきました。

玄米を使い始めたのは、甘酒の嵩(かさ)を増すために使うお米は、白米より、玄米の方が健康によいかと思ったからですが、口に残る触感とすっきりとした甘さが心地よく、次第に甘酒が、食べる甘酒と変化していきました。

バナナとあわせたり、豆乳カスピ海ヨーグルトに載せて朝食として食べていますが、食べる玄米甘酒なら、玄米が好きではないという人も美味しいといって食べてくれるに違いありません。

材料   
✔ 玄米 2合
✔ みやここうじ 一袋(200g)
✔ お湯 60° 適量

玄米を炊く

圧力釜で炊くより、土鍋で炊いたご飯の方が好きです。土鍋でご飯を炊くときの水の量や加熱時間は、土鍋によって異なりますが、長谷園の ”かまどさん” であれば、玄米1合あたり300mlが目安です。玄米 2合であれば水 600mlになります。

玄米は、半日間、水に浸してから炊くとありますが、甘酒に入れるのであれば、炊き上がった玄米を更に8時間発酵させるので、直ぐに炊いて問題ありません。中火で30分、その後、火を止めて30分蒸らします。

玄米の炊き方
✔ 玄米 2合
✔ 水 600ml
✔ 塩 少々
✔ 中火で30分
✔ 火を止めて30分蒸らす

塩は、ナトリウムが玄米のカリウムと中和して苦みを和らげるとありますので、炊き始める前に少し入れます。

炊き方はいたってシンプルで、中火で30分です。30分火にかけて水気が残っていたとしても気にしなくて大丈夫です。逆に30分未満でも、鍋蓋の穴から蒸気が出なくなったら火を止めましょう。おこげが出来てしまうと甘酒には向きません。

長谷園かまどさんで炊いた玄米

甘酒は、麴菌が生成してくれた酵素(アミラーゼ)がお米のデンプンをブトウ糖に分解して甘くなり、酵素(プロテアーゼ)がタンパク質をアミノ酸に分解して旨味となります。

この酵素が70℃以上で破壊されてしまうので、少し冷ましてから発酵器の容器に玄米を移します。

玄米を発酵器の容器に入れる

米こうじ

最近は近所のスーパーで購入できる ”みやここうじ” を使っています。

”みやここうじ” は、パッケージに ”手造り板こうじ” と記載されている通り、こうじが板状になっていますので、開封する前に袋の中で手で砕いてよく解します。

そして、”みやここうじ” を発酵器の容器に投入します。

みやここうじを発酵器の容器に入れる

水(ぬるま湯)を上まで浸る程度いれます。そして、玄米ご飯と ”みやここうじ” をよく混ぜます。

玄米とみやここうじを混ぜる

発酵器で食べる玄米甘酒をつくる

Kuvings(クビンス)ヨーグルト&チーズメーカは、

  • 温度設定 20℃~65℃
  • タイマー 1~99時間

と、発酵温度と時間を設定できるので、ヨーグルト、チーズ、甘酒、酵素ジュースと幅広く発酵食品が作れる発酵器です。予め幾つかの温度と時間が設定されていて、”麹 チーズ” を選択すると 60℃ で 6時間 です。

しかし、白米より玄米の方が発酵に時間がかかるのと玄米が2合と量が多いので、

  • 発酵温度 60℃
  • 発酵時間 10時間

で、食べる玄米甘酒を作っています。発酵時間を延ばした方が甘くなりますので自分にあった甘さの発酵時間を見つけてください。

クビンス ヨーグルト&チーズメーカー 温度設定

クビンス ヨーグルト&チーズメーカー 時間設定

完成した食べる玄米甘酒です。

食べる玄米甘酒の完成

玄米を炊くのに最適な土鍋

以前は、ご飯を炊くのにイシガキ産業の土鍋を使っていました。コストパフォーマンスが高く、レンジでも使えるという優れものでしたが、ご飯の焦げつきが取れなくなってきたので、新しい土鍋に買い換えました。

折角なら日本のお米を日本古来の技術で食そうと、日本産の土鍋を探し、長谷園の ”かまどさん” にしました。値段はそれなりにしますが、高い電気炊飯器と比較をすれば安価ですし、美味しいご飯が食べられます。

長谷園かまどさん ご飯土鍋

かまどさんには、一合炊き、二合炊き、三合炊きの三種類ありますのでライフスタイルに合わしてサイズを選択できます。

Post Date:2019年8月17日 

Markdown(Typora)でシーケンス図を描く!

手書き風シーケンス図

TyporaでMarkdownを始めよう! | 象と散歩 でTyporaでのMarkdownの書き方、そして、TyporaでMarkdown第2弾として、Markdown(Typora)でフローチャートを描く | 象と散歩 で、flowchart.js を使ったフロチャートの書き方を紹介しましたが、今回は、第3弾、Markdown でのシーケンス図の書き方です。

Typora では、js-sequence-diagramsmermaid を使ってシーケンス図が描けます。


文法サポートでダイアグラムをチェック

フローチャートを描くときにも説明しましたが、最初にTyporaのメニューバーの "ファイル(F) → 設定" で文法サポートのダイアグラムをチェックをします。

Typora文法サポート

これで、Markdownとしてシーケンス図が記述できるようになります。


Markdownでシーケンス図を描く(js-sequence-diragrams)

初めに js-sequence-diagrams を使ってシーケンス図を描写する方法です。Markdownでは、```sequence から ``` の間に記述しますが、Typoraでは、

```seguence

と書いてEnterすると、シーケンスダイアグラムが開きます。

sequenceダイアグラム

ここにコマンドを記載していきます。


js-sequence-diagrams のコマンド一覧

js-sequence-diagrams は、基本的にメッセージしかサポートしていませんので、複合フラグメントなど複雑なシーケンス図は記載できません。

下記がコマンド一覧になります。

コマンド
説明
Title: hogehoge タイトルをhogehogeにする
A->B: message text AからBへの矢印線
A-->B: message text AからBへの破線矢印
A->>B: message text AからBへのオープン矢印線
A-->>B: message text AからBへの破線オープン矢印
participant hoge (as A) ライフライン名 hoge(を A とする)
Note right/left of A: hoge Aの右or左にhogeと記載
Note over A: hoge Aの上にhogeと記載
Note over A,B: hoge AとBの上にhogeと記載

ライフライン名は、コマンドを書いた順番になるので最初に participant で定義するとわかりやすいです。またエイリアス名を付けられるので、コマンドの中ではシンプルにA,B,Cなどが使えます。

では、さっそく シーケンス図を描いてみましょう。

``` sequence
Title: サンプルシーケンス図(js-sequence-diagrams)
participant 処理1 as A
participant 処理2 as B
participant 処理3 as C
A->B: 同期メッセージ
B-->A: 応答メッセージ
B->>C: 非同期メッセージ
C-->A: 応答メッセージ
B->B: 閉じる
```

Markdownで描くシーケンス図 (js-sequence-diagrams編)

下記は、ノートの記載方法ですが、participant でA, Bの順番を定義しておかないと 、最初にBの右側にノートを描くコマンドがあるので、順番が逆転してしまいます。ノートの中を改行するときには、\n を使います。

``` sequence
participant A
participant B
Note right of B: Bの右側に\nノート
Note over A: Aの上にノート
Note left of A: Aの左側に\nノート
Note over A,B: AとBの上にノート
```

Markdownで描くシーケンス図 Notes(js-sequence-diagrams)


Markdownでシーケンス図を描く(js-sequence-diragrams)

js-sequence-diagrams で描いたシーケンス図を memaid で書くと下記のようになります。 ```mermaid で Enter して、エディタを開きます。

先頭行に sequenceDiagram と書くと mermaidシーケンス図が書けます。

mermaid には、非同期メッセージを表すオープン矢印線はありませんが、ライフライン上でイベントの実行範囲を + と - を使って表記できます。

下記の例では、処理2(B)の +Bから-Aまで(処理2が同期メッセージを受けてから処理1に応答メッセージを返すまで)と 処理3(C)の +C から -A まで(処理3が同期メッセージを受けてから処理1に応答メッセージを返すまで)がインベント実行中となります。

``` mermaid
sequenceDiagram
Title: シーケンス図(mermaid)
participant A as 処理1
participant B as 処理2
participant C as 処理3
A->>+B: 同期メッセージ
B-->>-A: 応答メッセージ
B->>+C: 同期メッセージ
C-->>-A: 応答メッセージ
B->>B: 閉じる 
```

Markdownで描くシーケンス図(mermaid編)


sequenceDiagram(mermaid) のコマンド一覧

下記が mermaid でシーケンス図を書くときのコマンド一覧になります。js-sequence-diagramsと大体同じですが、先に記したように mermaid ではオープン矢印はありません。その代わりに 矢印なしの線と破線、があります。participant の使い方も少し異なります。

またアクターの前に + と - 記号を付けることによって、A->>+B から B-->>-A のように 同一ライフライン上の + から - までがイベント実行中の表記となります。

コマンド
説明
Title: hogehoge タイトルをhogehogeにする
A->B: message text AからBへの線(矢印なし)
A-->B: message text AからBへの破線(矢印なし)
A->>B: message text AからBへの矢印線
A-->>B: message text AからBへの破線矢印
A-xB: message text AからBへの矢印 and x(async)
A--xB: message text AからBへの破線矢印 and x(async)
participant A as hoge ライフライン名 hoge を A とする
Note right/left of A: hoge Aの右or左にhogeと記載
Note over A: hoge Aの上にhogeと記載
Note over A,B: hoge AとBの上にhogeと記載

ノートの書き方は、js-sequence-diagrams と同じですが、改行が使えません。

``` mermaid
sequenceDiagram
participant A
participant B
Note right of B: Bの右側に\nノート
Note over A: Aの上にノート
Note left of A: Aの左側に\nノート
Note over A,B: AとBの上にノート
```

Markdownで描くシーケンス図 Notes(mermaid編)


mermaid ではLoop処理が描ける

mermaid では、下記のように記載することでLoop処理も描けます。

loop Loop text
... statements ...
end

``` mermaid
sequenceDiagram
participant A
participant B
Note right of B: Bの右側にノート
Note over A: Aの上にノート
Note left of A: Aの左側にノート
Note over A,B: AとBの上にノート
```

Markdownで描くシーケンス図 Loop処理 (mermaid編)


最後に

Markdown で描くシーケンス図では、複雑なシーケンス図を描くのには少々難ありですが、簡単なシーケンス図を描くのであれば十分な表現力です。

メイン画像に使ったシーケンス図は、WebSequenceDiagramsで作成したものです。コマンドの記載方法は、js-sequence-diagrams とほぼ同じですが、イベントやループなども使えます。また、スタイルを選択して手書き風などにもできます。

URLを指定して、若しくは画像としてExportして、Markdownのドキュメントの中で使うこともできます。


Typora で Markdown シリーズ

Typora での Markdown の記述方法については、下記のシリーズで紹介しています。





象と散歩:人気の投稿(過去7日間)