AsciiDocで条件で表示したい内容を変える方法
5157 ワード
やりたいこと
- ある条件に基づき、情報の出し分けをしたい
- 以前にAsciiDocのファイルを結合して表示するで投稿したような感じで、例えば都道府県について纏めたが、情報量を変化させることをしたい。
やったこと
- 出し分けできるようにするには、パッと思いつくこととしてIF文みたいなものが使えないか?になる。
- そこで、検索キーワードして"Asciidoc IF"で調べたところ
-
Conditionalsのサイトがヒットした
- ほかのサイトを見たが、コードを表現するための書き方の中にある各言語のIF文だった
- 上記のことから、Conditionalsのサイトを読んでみた
-
ifdef
であればやりたいことができそうだったので、トライしてみた
-
ifdef
の後に任意の属性を定義して、endif::[]
で記載した間にコンテンツを記載するということだったので、書いてみた。
- 表に行を追加して、条件を満たした場合に、人口の情報に関する表示ができるようにする
:imagesdir: ./images
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifdef::MAPDETAIL[]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
-
-
属性を定義したが、この属性はどこからくるのかを考えると、定義されていないことに気づき、2行目に:MAPDETAIL:
と定義してみた。
:imagesdir: ./images
:MAPDETAIL:
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifdef::MAPDETAIL[]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
追加で試したこと1
-
ifdef
は複数の属性を指定することができることがわかった、パターンが異なる場合に指定することでコントロールできることがわかった
- 書き方としては、以下のような形で記載すれば、切り替えて使うことができました
:imagesdir: ./images
:MAPDETAIL1:
:MAPDETAIL2:
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifdef::MAPDETAIL1,MAPDETAIL2[]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
追加で試したこと2
-
ifeval
を使うことで、属性の持つ値を演算子を使って評価して、表示をコントロールすることができることも分かった。
- 記載の仕方も、
ifdef
とあまり書き方は変わらなかった。
- 扱う値が文字列か数値かで表現が変わるので注意が必要だった
数値を条件にした場合
:imagesdir: ./images
:MAPVAL: 4
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifeval::[{MAPVAL} >3 ]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
- 以前にAsciiDocのファイルを結合して表示するで投稿したような感じで、例えば都道府県について纏めたが、情報量を変化させることをしたい。
- 出し分けできるようにするには、パッと思いつくこととしてIF文みたいなものが使えないか?になる。
- そこで、検索キーワードして"Asciidoc IF"で調べたところ
- Conditionalsのサイトがヒットした
- ほかのサイトを見たが、コードを表現するための書き方の中にある各言語のIF文だった
- 上記のことから、Conditionalsのサイトを読んでみた
- そこで、検索キーワードして"Asciidoc IF"で調べたところ
-
ifdef
であればやりたいことができそうだったので、トライしてみた-
ifdef
の後に任意の属性を定義して、endif::[]
で記載した間にコンテンツを記載するということだったので、書いてみた。- 表に行を追加して、条件を満たした場合に、人口の情報に関する表示ができるようにする
-
:imagesdir: ./images
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifdef::MAPDETAIL[]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
-
属性を定義したが、この属性はどこからくるのかを考えると、定義されていないことに気づき、2行目に
:MAPDETAIL:
と定義してみた。
:imagesdir: ./images
:MAPDETAIL:
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifdef::MAPDETAIL[]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
追加で試したこと1
-
ifdef
は複数の属性を指定することができることがわかった、パターンが異なる場合に指定することでコントロールできることがわかった- 書き方としては、以下のような形で記載すれば、切り替えて使うことができました
:imagesdir: ./images
:MAPDETAIL1:
:MAPDETAIL2:
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifdef::MAPDETAIL1,MAPDETAIL2[]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
追加で試したこと2
-
ifeval
を使うことで、属性の持つ値を演算子を使って評価して、表示をコントロールすることができることも分かった。- 記載の仕方も、
ifdef
とあまり書き方は変わらなかった。 - 扱う値が文字列か数値かで表現が変わるので注意が必要だった
- 記載の仕方も、
数値を条件にした場合
:imagesdir: ./images
:MAPVAL: 4
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifeval::[{MAPVAL} >3 ]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
文字列を条件にした場合
:imagesdir: ./images
:MAPVAL: "ON"
= 北海道・東北地方
北海道・東北地方は、北海道、青森県、秋田県、岩手県、山形県、宮城県、福島県の1道6県を指します。
気象予報などでは、北日本の区分に位置し、日本を東西に分けると東日本に位置する。 +
各県の形と県庁所在地を纏めておく。
== 北海道
[cols="1,2a", width=70%]
|===
^|県庁所在地 ^|札幌市
^.^|地図 ^|image::hokkaido.png["北海道", 50%]
ifeval::["{MAPVAL}" == "ON" ]
^|人口 | 5,224,614人 (8位)
endif::[]
|===
まとめ
-
AsciiDoc
に書くべき情報の全てを記載しておき、条件をうまく使って、標準版、拡張版、縮小版などのコントロールを上位のAsciiDoc
ファイルから属性を渡せば、目的別にAsciiDoc
ファイルを作り出して出力することができることがわかった
参考情報
AsciiDoc
に書くべき情報の全てを記載しておき、条件をうまく使って、標準版、拡張版、縮小版などのコントロールを上位のAsciiDoc
ファイルから属性を渡せば、目的別にAsciiDoc
ファイルを作り出して出力することができることがわかったAuthor And Source
この問題について(AsciiDocで条件で表示したい内容を変える方法), 我々は、より多くの情報をここで見つけました https://qiita.com/nogoo/items/6c71eb020cd1879d4951著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .