Quantcast
Channel: 一言多いプログラマーの独り言
Viewing all articles
Browse latest Browse all 846

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

$
0
0
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

Viewing all articles
Browse latest Browse all 846

Trending Articles