liquid の紹介
DESCRIPTION
Jekyll で使用されてる テンプレートエンジンの簡単な紹介。TRANSCRIPT
Liquid の紹介2013-03-02 広島Ruby勉強会
Liquid
テンプレートエンジン
Jekyll で利用されている
Jekyll って?
静的サイトジェネレータ
動的に HTML を生成しない
ローカルで HTML を生成
Github Pages で利用可能
テンプレートエンジンって?
差し込み印刷みたいなもの
雛形を用意しておいて一部を置き換える
変数の利用
分岐や繰り返しを行うことも
タグを用いてマークアップ
変数の出力
{{ 変数名 }}
変数の出力
hoge = “goro” の場合
{{ hoge }} # => goro
変数の出力
Hashが束縛されている場合
変数の出力
{{ 変数名.キー }}
変数の出力
hoge = { goro: “mogu” }
{{ hoge.goro }} # => mogu
フィルタ
ヘルパ関数みたいなもの
シェルのパイプのように
引数がある場合は : でつなぐ
引数が複数ある場合は , でつなぐ
フィルタ
{{ 変数 | フィルタ | フィルタ }}
フィルタ
hoge = “gorogoro”
{{ hoge | replace_first: ‘goro’, ‘mogu’ }}
# => mogugoro
フィルタ
{{ ‘5’ | plus:’1’ | times:’4’ }
# => 24 # 5 + 1 * 4
分岐
{% if 条件 %}ifのとき{% endif %}
分岐
{% if hoge == ‘goro’ %}
ぐるぐる{% endif %}
# => ぐるぐる
繰り返し
{% for 変数名 in リスト %}
繰り返す内容
{% endfor %}
その他のタグ、フィルタ
リファレンスなどを
https://github.com/Shopify/liquid/wiki/Liquid-for-Designers
カスタムタグ
Rubyでがりがりとかく
{{ }} vs {% %}
{% %} を使用した場合
未定義の変数だと例外が飛びます
ERB じゃダメなん?
ERBだと
Rubyでできることなんでもできてしまう
サービスを利用する人が使う場合
機能制限したい
Jekyll on Github
なにもしなくても使えます
カスタムタグの作成はできない
プログラムで使う
template = “Hello {{ hoge }}”
binding = { hoge: “World” }Liquid::Template.parse(template).render binding
# => Hello World
ご清聴ありがとうございます