diff options
author | ipknHama <ipknhama@gmail.com> | 2014-08-02 10:46:00 +0900 |
---|---|---|
committer | ipknHama <ipknhama@gmail.com> | 2014-08-02 22:32:49 +0900 |
commit | 615e648260a87eb2edabf4aefb456186800e67a1 (patch) | |
tree | 7bd8b268a960b2b7d322407160a9d152e32a9251 /template_test/mustachetest.cc | |
parent | 9d1d65b08c4a4c33923935a5414d6e6f4fe59ceb (diff) | |
download | crow-615e648260a87eb2edabf4aefb456186800e67a1.tar.gz crow-615e648260a87eb2edabf4aefb456186800e67a1.zip |
mustache partial implementation
Diffstat (limited to 'template_test/mustachetest.cc')
-rw-r--r-- | template_test/mustachetest.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/template_test/mustachetest.cc b/template_test/mustachetest.cc index 3b80b5d..c4ac2c9 100644 --- a/template_test/mustachetest.cc +++ b/template_test/mustachetest.cc @@ -11,15 +11,22 @@ using namespace crow::mustache; string read_all(const string& filename) { ifstream is(filename); - string ret; - copy(istreambuf_iterator<char>(is), istreambuf_iterator<char>(), back_inserter(ret)); - return ret; + return {istreambuf_iterator<char>(is), istreambuf_iterator<char>()}; } int main() { auto data = json::load(read_all("data")); auto templ = compile(read_all("template")); + auto partials = json::load(read_all("partials")); + set_loader([&](std::string name)->std::string + { + if (partials.count(name)) + { + return partials[name].s(); + } + return ""; + }); context ctx(data); cout << templ.render(ctx); return 0; |