From 4cee6b5a5ed574800dcec86e3bba9db849a2b390 Mon Sep 17 00:00:00 2001 From: Tindy X <49061470+tindy2013@users.noreply.github.com> Date: Mon, 13 Apr 2020 23:59:37 +0800 Subject: [PATCH] Add split as a template function --- src/templates.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/templates.cpp b/src/templates.cpp index 66f7f0a..2535d80 100644 --- a/src/templates.cpp +++ b/src/templates.cpp @@ -68,6 +68,14 @@ int render_template(const std::string &content, const template_args &vars, std:: parse_json_pointer(data, key, value); return std::string(); }); + m_callbacks.add_callback("split", 3, [&data](inja::Arguments &args) + { + std::string content = args.at(0)->get(), delim = args.at(1)->get(), dest = args.at(2)->get(); + string_array vArray = split(content, delim); + for(size_t index = 0; index < vArray.size(); index++) + parse_json_pointer(data, dest + "." + std::to_string(index), vArray[index]); + return std::string(); + }); m_callbacks.add_callback("join", 2, [](inja::Arguments &args) { std::string str1 = args.at(0)->get(), str2 = args.at(1)->get();