/* Copyright (C) 2022 Ivan Polyakov This file is part of vilor's website. Vilor's website is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Vilor's website is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "template.h" #include #include #include int rendertpl(const char *path, const char **dest, struct param params[]) { nlohmann::json data; for (int i = 0; params[i].key; i++) { #ifdef DEBUG_MODE printf("Key: %s; Val: %s;\n", params[i].key, params[i].val); #endif data[params[i].key] = params[i].val; } inja::Environment env; std::string result; try { result = env.render_file(path, data); *dest = result.c_str(); } catch (const std::exception &e) { *dest = 0; fprintf(stderr, "%s\n", e.what()); return 1; } return 0; }