#include "Lexesis/template.h" #include "mstch/mstch.hpp" #include #include #include namespace lxs { namespace templ { TemplateContext make_string(std::string _string) { return mstch::node(_string); } TemplateContext make_map(std::map _map) { // return mstch::node(_map); -> g++ goes mental.. mstch::map result; for(auto& item: _map) { result[item.first] = item.second; } return result; } TemplateContext make_array(std::vector _array) { return mstch::node(_array); } Template::Template(std::string filename) : m_filename(filename) {} Template::~Template() {} void Template::render(std::ostream& out, TemplateContext& context) { std::ifstream file; file.open (m_filename); std::stringstream tmplt; tmplt << file.rdbuf(); file.close(); out << mstch::render(tmplt.str(),context); } } }