liquid の紹介

23
Liquid の紹介 2013-03-02 広島Ruby勉強会

Upload: tomohiko-himura

Post on 25-Jun-2015

1.733 views

Category:

Documents


7 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Liquid の紹介

Liquid の紹介2013-03-02 広島Ruby勉強会

Page 2: Liquid の紹介

Liquid

テンプレートエンジン

Jekyll で利用されている

Page 3: Liquid の紹介

Jekyll って?

静的サイトジェネレータ

動的に HTML を生成しない

ローカルで HTML を生成

Github Pages で利用可能

Page 4: Liquid の紹介

テンプレートエンジンって?

差し込み印刷みたいなもの

雛形を用意しておいて一部を置き換える

変数の利用

分岐や繰り返しを行うことも

タグを用いてマークアップ

Page 5: Liquid の紹介

変数の出力

{{ 変数名 }}

Page 6: Liquid の紹介

変数の出力

hoge = “goro” の場合

{{ hoge }} # => goro

Page 7: Liquid の紹介

変数の出力

Hashが束縛されている場合

Page 8: Liquid の紹介

変数の出力

{{ 変数名.キー }}

Page 9: Liquid の紹介

変数の出力

hoge = { goro: “mogu” }

{{ hoge.goro }} # => mogu

Page 10: Liquid の紹介

フィルタ

ヘルパ関数みたいなもの

シェルのパイプのように

引数がある場合は : でつなぐ

引数が複数ある場合は , でつなぐ

Page 11: Liquid の紹介

フィルタ

{{ 変数 | フィルタ | フィルタ }}

Page 12: Liquid の紹介

フィルタ

hoge = “gorogoro”

{{ hoge | replace_first: ‘goro’, ‘mogu’ }}

# => mogugoro

Page 13: Liquid の紹介

フィルタ

{{ ‘5’ | plus:’1’ | times:’4’ }

# => 24 # 5 + 1 * 4

Page 14: Liquid の紹介

分岐

{% if 条件 %}ifのとき{% endif %}

Page 15: Liquid の紹介

分岐

{% if hoge == ‘goro’ %}

ぐるぐる{% endif %}

# => ぐるぐる

Page 16: Liquid の紹介

繰り返し

{% for 変数名 in リスト %}

繰り返す内容

{% endfor %}

Page 18: Liquid の紹介

カスタムタグ

Rubyでがりがりとかく

Page 19: Liquid の紹介

{{ }} vs {% %}

{% %} を使用した場合

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

Page 20: Liquid の紹介

ERB じゃダメなん?

ERBだと

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

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

機能制限したい

Page 21: Liquid の紹介

Jekyll on Github

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

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

Page 22: Liquid の紹介

プログラムで使う

template = “Hello {{ hoge }}”

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

# => Hello World

Page 23: Liquid の紹介

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