diff options
Diffstat (limited to 'tests/template/mustachetest.cc')
-rw-r--r-- | tests/template/mustachetest.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/template/mustachetest.cc b/tests/template/mustachetest.cc new file mode 100644 index 0000000..c4ac2c9 --- /dev/null +++ b/tests/template/mustachetest.cc @@ -0,0 +1,33 @@ +#include <iostream> +#include <fstream> +#include <string> +#include <iterator> +#include "../mustache.h" +#include "../json.h" +using namespace std; +using namespace crow; +using namespace crow::mustache; + +string read_all(const string& filename) +{ + ifstream is(filename); + 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; +} |