kainjow / Mustache

Mustache text templates for modern C++
Boost Software License 1.0
357 stars 49 forks source link
c-plus-plus mustache

About

travis appveyor ghe codecov

Example usage

All examples assume using namespace kainjow::mustache. Additional examples and usage can be found in the tests.cpp file.

Example 1 - Hello World

mustache tmpl{"Hello {{what}}!"};
std::cout << tmpl.render({"what", "World"}) << std::endl;
// Hello World!

Example 2 - Lists

mustache tmpl{"{{#employees}}{{name}}, {{/employees}}"};
data employees{data::type::list};
employees << data{"name", "Steve"} << data{"name", "Bill"};
tmpl.render({"employees", employees}, std::cout);
// Steve, Bill,

Example 3 - Custom Render Handler

mustache tmpl("Hello {{what}}!");
std::stringstream ss;
tmpl.render({"what", "World"}, [&ss](const std::string& str) {
    ss << str;
});
// ss.str() == "Hello World!"

Supported Features

This library supports all current Mustache features:

Additional features: