diff options
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; |