diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2019-07-03 17:52:43 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2019-07-03 17:52:43 +0200 |
commit | caf93747fb255f7e5750618216c560440d3fa42f (patch) | |
tree | abf6e3358a0951e75396502bc67562fe870c98af /MemDriverWeb | |
parent | 249e58d81708ff9d486a5ee8fdc80bd208a78b53 (diff) |
simple string based templating engine preps
Diffstat (limited to 'MemDriverWeb')
-rw-r--r-- | MemDriverWeb/MemDriverWeb.cpp | 3 | ||||
-rw-r--r-- | MemDriverWeb/MemDriverWeb.vcxproj | 1 | ||||
-rw-r--r-- | MemDriverWeb/MemDriverWeb.vcxproj.filters | 3 | ||||
-rw-r--r-- | MemDriverWeb/minitmpl.h | 17 |
4 files changed, 23 insertions, 1 deletions
diff --git a/MemDriverWeb/MemDriverWeb.cpp b/MemDriverWeb/MemDriverWeb.cpp index 4b65518..cf0e07e 100644 --- a/MemDriverWeb/MemDriverWeb.cpp +++ b/MemDriverWeb/MemDriverWeb.cpp @@ -2,6 +2,7 @@ #include <iostream> #include <sstream> #include "www.h" +#include "minitmpl.h" using httplib::Request; using httplib::Response; @@ -13,7 +14,7 @@ static const std::string footer = DEFAULT_FOOTER; static void page_root(const Request &req, Response &res) { - std::stringstream ss; + TemplateString ss; ss << header << footer; res.set_content(ss.str(), "text/html"); diff --git a/MemDriverWeb/MemDriverWeb.vcxproj b/MemDriverWeb/MemDriverWeb.vcxproj index a894e33..00d5a8b 100644 --- a/MemDriverWeb/MemDriverWeb.vcxproj +++ b/MemDriverWeb/MemDriverWeb.vcxproj @@ -156,6 +156,7 @@ </ItemDefinitionGroup> <ItemGroup> <ClInclude Include="httplib.h" /> + <ClInclude Include="minitmpl.h" /> <ClInclude Include="pch.h" /> <ClInclude Include="www.h" /> </ItemGroup> diff --git a/MemDriverWeb/MemDriverWeb.vcxproj.filters b/MemDriverWeb/MemDriverWeb.vcxproj.filters index fb49732..5874c87 100644 --- a/MemDriverWeb/MemDriverWeb.vcxproj.filters +++ b/MemDriverWeb/MemDriverWeb.vcxproj.filters @@ -24,6 +24,9 @@ <ClInclude Include="www.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="minitmpl.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ClCompile Include="pch.cpp"> diff --git a/MemDriverWeb/minitmpl.h b/MemDriverWeb/minitmpl.h new file mode 100644 index 0000000..446930a --- /dev/null +++ b/MemDriverWeb/minitmpl.h @@ -0,0 +1,17 @@ +#pragma once + +#include <sstream> + +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; + } +};
\ No newline at end of file |