Liquid の紹介

Post on 25-Jun-2015

1.709 views 7 download

Tags:

description

Jekyll で使用されてる テンプレートエンジンの簡単な紹介。

Transcript of Liquid の紹介

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 %}

カスタムタグ

Rubyでがりがりとかく

{{ }} vs {% %}

{% %} を使用した場合

未定義の変数だと例外が飛びます

ERB じゃダメなん?

ERBだと

Rubyでできることなんでもできてしまう

サービスを利用する人が使う場合

機能制限したい

Jekyll on Github

なにもしなくても使えます

カスタムタグの作成はできない

プログラムで使う

template = “Hello {{ hoge }}”

binding = { hoge: “World” }Liquid::Template.parse(template).render binding

# => Hello World

ご清聴ありがとうございます