【Rust】Teraの基本的な構文

投稿日: 更新日:

構成要素

テンプレートの構成要素は以下の3つです。記号を変更することは出来ません。

  • {{...}}は式
  • {%...%}は文
  • {#...#}はコメント

空白制御

ハイフン-を使って前後の空白を制御します。

{%- ...%}だと前の空白を除去、{%.. -%}だと後ろの空白を除去します。また、両方設定することもでき{%- ... -%で前後の空白を除去できます。

変数

変数はsetを使って宣言します。

{% set var1 = "hello" %}
{% set var2 = 123 %}

変数の内容は{{ var1 }}などと書くと出力できます。

特別な変数__tera_contextが用意されており、コンテキストの内容全てを出力します。

条件分岐if

ifで条件分岐できます。elifelseもあります。最後は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.index 1-indexedで現在のインデックを示す
  • loop.index0 0-indexedで現在のインデックを示す
  • loop.first 最初の要素かどうか
  • loop.last 最後の要素かどうか

elseを用いることで配列に要素がない場合、別の処理を行うことができます。

{% set array = [] %}
{% for i in array %}
    {{ i }}
{% else %}
  No nums
{% endfor %}

書いた人

profile_image

お茶の葉

物理とプログラミングが好きな人