前回の私の記事ではFreeMakerについて取り上げ、FreeMakerとは何か、そして実際に使用する文法、リファレンスについてご紹介しましたが、今回も引き続きリファレンスの紹介をしたいと思います。

・前回のおさらい
FreeMakerとはJavaベースのテンプレートエンジンであり、ftlファイルというテンプレートファイルにパラメータを渡すことで、htmlファイルを動的に生成し、フロントエンドの開発に活用されています。パラメータが空か否かを確認する「?has_content」やパラメータの要素数を取得する「?size」などの文法があります。

前回の記事は以下になりますので、今回の記事とあわせて読んでいただければと思います。

①配列の繰り返し処理を行う。
→<#list 配列名 as 変数名>
他の言語でいうところのfor文に該当するものが<#list>になります。listの後ろに繰り返し処理を行いたい配列名を、asの後ろにlistのタグ内で使用する変数名を定義することで使用可能です。
実用例としては以下のようになります。

<#list test as item>
${item}<br>
</#list>

testという配列の要素数分、繰り返し処理を行うことができます。配列の中でも特定の要素だけを取得したい場合は配列名[添え字]で取得します。test配列の2番目の要素が取得したい場合は${test [1]}となります。

②指定した文字列が含まれているか判定する。
→?contains
文字列の中に特定の文字列が含まれているか確認するには?containsを使用します。
実用例としては以下のようになります。

<#assign str = "ネクスト">
<#if str ?contains("ス")>   
    スは含まれる。
</#if>

※1行目のassignは変数を定義するのに使用します。

③指定した文字列が何番目にあるか確認する。
→?index_of

<#assign str = "ネクスト">
${str ?index_of("ス")}

上記の例の場合、「?index_of」の結果の値は2となります。

④Date型に変換を行う。
→?date、?datetime
?date、?datetimeを使用することで文字列や数字をDate型に変換することができます。
また.nowを使用し、${.now?date}、${.now?datetime}で現在日付、日時を取得することが可能です。
さらに文字列への変換を行う?stringを利用することで、簡単に日付のフォーマットを行うことができます。
実用例としては以下のようになります。

<#assign ndt= .now?datetime>
${ndt?string('yyyyMMddHHmm')}
${ndt?string('yyyy年MM月dd日HH時mm分')}

1行目で変数ndtに現在日時を格納し、続く2,3行目で日付のフォーマットを行っています。
2行目の出力結果は202209171300となり、3行目の出力結果は2022年09月17日13時00分となります。

FreeMakerについての説明は以上となります。みなさんが今後ftlファイルに出会ったときに
この記事が作業の一助となれば幸いです。
それでは、 See you next time👉