From 47a838f292439b9d1ce921a79341e4a7170d0810 Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Sat, 23 Oct 2021 18:16:52 +0200 Subject: Added Inja "prefix" callback function. * set some config options explicitly * fixed Inja "indent" callback skip_blank Signed-off-by: Toni Uhlig --- src/TemplateManager.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/TemplateManager.cpp b/src/TemplateManager.cpp index 2c58306..ff14610 100644 --- a/src/TemplateManager.cpp +++ b/src/TemplateManager.cpp @@ -21,19 +21,39 @@ TemplateManager::TemplateManager() bool is_first_line = true; while (std::getline(stream, line)) { - if (is_first_line == false || args.at(2)->get() == true) + if (is_first_line == false || args.at(2)->get() == false) { if (line != "" || args.at(3)->get() == false) { line.insert(0, args.at(1)->get(), ' '); } } - line += '\n'; + if (line != "" || args.at(3)->get() == false) + { + line += '\n'; + } out += line; is_first_line = false; } return out; }); + /* + * prefix(input: str, prefix: str); + */ + AddInjaCallback("prefix", 2, [](inja::Arguments & args) { + std::stringstream stream(args.at(0)->get()); + std::string line, out; + while (std::getline(stream, line)) + { + out += args.at(1)->get() + line + "\n"; + } + return out; + }); + + m_Inja.set_trim_blocks(true); + m_Inja.set_lstrip_blocks(true); + m_Inja.set_search_included_templates_in_files(false); + m_Inja.set_throw_at_missing_includes(true); } void TemplateManager::ParseTemplates(Filesystem & fs) -- cgit v1.2.3