messykitchenなブログ

ただひたすらに散らかった台所や人生やその他を晒す。

脱W〇rd, 脱E×cel, 脱@st@h = Markdown, PlantUML, etc. : #6

ifdef/endif で表示を制御してみる

次のような、記述が長いコンポーネントが存在したとします。

'!define SHOW_LONGTEXT
'!define SHOW_STORY

rectangle myaccident [
  私の身の周りのできごと
!ifdef SHOW_LONGTEXT
  話せば長くなりますが、
  この数年間のできごとを
  伝えなければなりません。
!endif
]

rectangle story [
  始まりは、あの年のことでした。
!ifdef SHOW_LONGTEXT && SHOW_STORY
  奴らの携帯電話のメールがおかしい。
  奴らのパソコンのメールがおかしい。
  奴らの休日の行動がどうもおかしい。
  はい、やつらの(自主規制)、確定。
!endif
]

myaccident --> story

そのままの描画だと、大きな rectangle になってしまいそうですが、 実際には次のようなコンパクトな図になります。

これは先頭2行の !define と、文中の !ifdef !endif により、有効な範囲が制御されているためです。

コメント ' をひとつ、外してみます。

!define SHOW_LONGTEXT
'!define SHOW_STORY
...

するとこんな感じ。

もうひとつ、コメント ' を外します。

!define SHOW_LONGTEXT
!define SHOW_STORY
...

全ての文章が現れました。

!ifdef には、複数の条件を組み合わせることができます。&& ||

また、!ifndef というキーワードもあるようです。

上手に組み合わせて、描画範囲を適切に制御したいな、と。