
【Asciidoc】条件文 ー 「ifeval」の例題ですが・・・ ー
昨日の「【Asciidoc】条件文 ー たまにしか使わない・・・ ー」にて
「ifeval」は余り利用状況が思い浮かばないと話した。
それでも存在意義は在るはず・・・なので無理やり「例題」をひねり出してみた。
先日の「【Asciidoc】カスタム属性 ー 再利用:議事録雛形 ー」で作成した「議事録雛形」に追加する方向で考えます。
文章(議事録や報告書等)の重要度を設定してそれを表示することを考えます。
重要度は
S:「超極秘」(役員以上閲覧可)
A:「極秘」(部長以上閲覧可)
B:「部外秘」(部署限り閲覧可)
C:「社外秘」(社内限り閲覧可)
D:「公開」(一般公開可)
としましょう。
それでは単純なものを作成してみましょう。
== 重要なドキュメント
:重要度: S
ifeval::["{重要度}" == "S"]
:重要度表示: 超極秘
:重要度表示サブ: 役員以上閲覧可
endif::[]
ifeval::["{重要度}" == "A"]
:重要度表示: 極秘
:重要度表示サブ: 部長以上閲覧可
endif::[]
ifeval::["{重要度}" == "B"]
:重要度表示: 部外秘
:重要度表示サブ: 部内限り閲覧可
endif::[]
ifeval::["{重要度}" == "C"]
:重要度表示: 社外秘
:重要度表示サブ: 社内限り閲覧可
endif::[]
ifeval::["{重要度}" == "D"]
:重要度表示: 公開
:重要度表示サブ: 公開可
endif::[]
{重要度表示} +
{重要度表示サブ}
と行った感じでしょうか。
ヘッダーファイル「example-hederr-03-1.adoc」の中に組み込みます。
ifeval::["{重要度}" == "S"]
:重要度表示: 超極秘
:重要度表示サブ: 役員以上閲覧可
endif::[]
ifeval::["{重要度}" == "A"]
:重要度表示: 極秘
:重要度表示サブ: 部長以上閲覧可
endif::[]
ifeval::["{重要度}" == "B"]
:重要度表示: 部外秘
:重要度表示サブ: 部内限り閲覧可
endif::[]
ifeval::["{重要度}" == "C"]
:重要度表示: 社外秘
:重要度表示サブ: 社内限り閲覧可
endif::[]
ifeval::["{重要度}" == "D"]
:重要度表示: 公開
:重要度表示サブ: 公開可
endif::[]
ifdef::backend-pdf[]
[id=chain-{会議名},options=notitle]
=== {会議名}
//[cols="2,6,2",frame="none",grid="none"]
[cols="2,6,2"]
|====
^.^a| {重要度表示} +
{重要度表示サブ}
^a| [id=chain-{会議名}-discrete,discrete]
=== {会議名}
>.^| 文書番号: {文書番号} +
{編集日}
| 日時 2+| {開催日時}
| 場所 2+| {開催場所}
| 出席者 2+| {出席者}
|====
endif::backend-pdf[]
ifdef::backend-html5[]
//[cols="2,6,2",frame="none",grid="none"]
[cols="2,6,2"]
|====
^.^a| {重要度表示} +
{重要度表示サブ}
^a| [id=chain-{会議名}]
=== {会議名}
>.^| 文書番号: {文書番号} +
{編集日}
| 日時 2+| {開催日時}
| 場所 2+| {開催場所}
| 出席者 2+| {出席者}
|====
endif::backend-html5[]
本文の属性定義に
「:重要度:」を加えておきます。取り敢えず「B」に設定。
PDFにしてみると

と、まあ、上手く行っています。
無理やりひねり出した例題なので・・・本当に使える?・・・とは思ってしまいますね。
実はイメージで処理したほうが遥かに楽です。
やり方は
其々の判子イメージを用意して「s.svg」等の重要度と同じファイル名にしておきます。
文書側で呼ぶ時に
image::{重要度}.svg[]
とします。
この方が遥かにかんたんで応用も効きそうです。
「ifeval」の利用方法が有効な場合を考えていくと
・ 検索絡みでテキストを必要とする。
・ イメージで処理した場合でも表題や「ALT」設定を行いたい。
などの場合でしょうか・・・。
問題の難易度表示や食品カタログでの辛さ表示などは同じような考え方が利用できるかも・・・しかし、
「やはり、あまり利用することはないかな・・・」
取り敢えず今回はここまで。
…ではまた。
当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。