【Rust】Teraの基本的な構文
投稿日: 更新日:
構成要素
テンプレートの構成要素は以下の3つです。記号を変更することは出来ません。
- {{...}}は式
- {%...%}は文
- {#...#}はコメント
空白制御
ハイフン-を使って前後の空白を制御します。
{%- ...%}だと前の空白を除去、{%.. -%}だと後ろの空白を除去します。また、両方設定することもでき{%- ... -%で前後の空白を除去できます。
変数
変数はsetを使って宣言します。
{% set var1 = "hello" %}
{% set var2 = 123 %}
変数の内容は{{ var1 }}などと書くと出力できます。
特別な変数__tera_contextが用意されており、コンテキストの内容全てを出力します。
条件分岐if
ifで条件分岐できます。elif、elseもあります。最後はendifで終わります。
{% if num > 0 %}
  positive number
{% elif num < 0 %}
  negative number
{% else %}
  zero
{% endif %}
変数が定義されてるかどうかも判定できます。
{% if num %}
  {{ num }}
{% else %}
  isn't defined
{% endif %}
繰り返しfor
forで配列の中身をループさせることができます。endforで終わりを示します。
{% set array = [10, 20, 30, 40] %}
{% for i in array %}
  {{ i }}
{% endfor %}
forに関して特別な変数が用意されています。
- loop.index1-indexedで現在のインデックを示す
- loop.index00-indexedで現在のインデックを示す
- loop.first最初の要素かどうか
- loop.last最後の要素かどうか
elseを用いることで配列に要素がない場合、別の処理を行うことができます。
{% set array = [] %}
{% for i in array %}
    {{ i }}
{% else %}
  No nums
{% endfor %}