From 1890024e57f623ceec744bb3a6922d89d2d47640 Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Thu, 4 Jul 2019 00:03:51 +0200 Subject: very basic templating engine --- MemDriverWeb/minitmpl.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'MemDriverWeb/minitmpl.h') diff --git a/MemDriverWeb/minitmpl.h b/MemDriverWeb/minitmpl.h index 446930a..426579c 100644 --- a/MemDriverWeb/minitmpl.h +++ b/MemDriverWeb/minitmpl.h @@ -1,17 +1,18 @@ #pragma once +#include #include +typedef std::function template_cb; + class TemplateString : public std::stringstream { public: - std::string& doTemplateStr(const std::string& search, const std::string& replace) { - size_t pos = 0; - std::string s = this->str(); - while ((pos = s.find(search, pos)) != std::string::npos) { - s.replace(pos, search.length(), replace); - pos += replace.length(); - } - return s; + static void registerTemplateCallback(const char *variable, template_cb cb) { + TemplateString::template_callbacks[std::string(variable)] = cb; } + std::string doTemplateStr(); +private: + std::string in_cache, out_cache; + static std::map template_callbacks; }; \ No newline at end of file -- cgit v1.2.3