Elixirで、埋め込みテンプレート(Embedded Elixir)です。EEx.eval_fileやEEx.eval_stringを使うと、簡単に実現できます。
参考サイト
Cowboy Tutorial Part 2: Creating Flat File Blog(ElixirDoseさん)
EEx
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