2016年11月2日水曜日

Elixirで、埋め込みテンプレート(Embedded Elixir)

Elixirで、埋め込みテンプレート(Embedded Elixir)です。EEx.eval_fileEEx.eval_stringを使うと、簡単に実現できます。

iex(1)> EEx.eval_string "foo <%= bar %>", [bar: "お名前は?"]
"foo お名前は?"

iex(2)> EEx.eval_string "foo <%= bar %>", [bar: "太郎"]
"foo 太郎"

iex(3)> template = "priv/themes/index.html.eex"
"priv/themes/index.html.eex"

iex(4)> File.read! template
"<html lang=\"ja\">\r\n<head>\r\n  <meta charset=\"utf-8\">\r\n  <title><%= title %></title>\r\n</head>\r\n<body>\r\n  <%= content %>\r\n</body>\r\n</html>"

iex(5)> EEx.eval_file template, [title: "ホームページのタイトル", content: "Hello world!!<br>"]
"<html lang=\"ja\">\r\n<head>\r\n  <meta charset=\"utf-8\">\r\n  <title>ホームページのタイトル</title>\r\n</head>\r\n<body>\r\n  Hello world!!<br>\r\n</body>\r\n</html>"

iex(6)> EEx.eval_file template, [title: "ホームページのタイトル", content: "Hello world!!<br>
...(6)> 改行します1。<br>
...(6)> 改行します2。<br>
...(6)> 改行します3。<br>"]
"<html lang=\"ja\">\r\n<head>\r\n  <meta charset=\"utf-8\">\r\n  <title>ホームページのタイトル</title>\r\n</head>\r\n<body>\r\n  Hello world!!<br>\n改行します1。<br>\n改行します2。<br>\n改行します3。<br>\r\n</body>\r\n</html>"

iex(7)> footer = "priv/themes/footer.html.eex"
"priv/themes/footer.html.eex"

iex(8)> EEx.eval_file footer
"c 2016 talkativepg. Powered by Blogger."

iex(9)> File.read! footer
"c 2016 talkativepg. Powered by Blogger."

参考サイト
Cowboy Tutorial Part 2: Creating Flat File Blog(ElixirDoseさん)
EEx

0 件のコメント:

コメントを投稿