From 1c646fa165d843f8fc0f22167e2a5330741826ca Mon Sep 17 00:00:00 2001 From: Albert S Date: Wed, 2 Oct 2019 21:40:58 +0200 Subject: [PATCH] make html configurable --- config.cpp | 11 +++++++++-- config.h | 1 + handlers/handler.cpp | 6 ++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/config.cpp b/config.cpp index d4fd7fc..24e7aa2 100644 --- a/config.cpp +++ b/config.cpp @@ -18,10 +18,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "config.h" -#include "permissions.h" + #include #include +#include "config.h" +#include "permissions.h" +#include "varreplacer.h" std::string Config::required(const std::string &key) { auto it = this->configmap.find(key); @@ -99,6 +101,7 @@ Config::Config(const std::map &map) this->handlersConfig.max_pagename_length = optional("max_pagename_length", 256); this->session_max_lifetime = optional("session_max_lifetime", 3600); this->handlersConfig.query_limit = optional("query_limit", 200); + this->handlersConfig.page_title_template = optional("page_title_template", "{title} - {wikiname}"); this->threadscount = optional("threadscount", 1); this->handlersConfig.anon_permissions = Permissions(required("anon_permissions")); @@ -109,6 +112,10 @@ Config::Config(const std::map &map) ConfigVariableResolver resolver{this->configmap}; this->configVarResolver = resolver; + + Varreplacer replacer("{"); + replacer.addKeyValue("wikiname", this->handlersConfig.wikiname); + this->handlersConfig.page_title_template = replacer.parse(this->handlersConfig.page_title_template); } ConfigReader::ConfigReader(const std::string &file) diff --git a/config.h b/config.h index 4a69ea0..10d8139 100644 --- a/config.h +++ b/config.h @@ -13,6 +13,7 @@ struct HandlerConfig Permissions anon_permissions; std::string wikiname; std::string anon_username; + std::string page_title_template; int max_pagename_length; int query_limit; }; diff --git a/handlers/handler.cpp b/handlers/handler.cpp index 89ce269..43f9e80 100644 --- a/handlers/handler.cpp +++ b/handlers/handler.cpp @@ -43,9 +43,11 @@ Response Handler::errorResponse(std::string errortitle, std::string errormessage return {status, error.render()}; } -std::string Handler::createPageTitle(std::string append) +std::string Handler::createPageTitle(std::string title) { - return this->handlersConfig->wikiname + " - " + append; // TODO: we might wanna make the format configurable + Varreplacer replacer("{"); + replacer.addKeyValue("title", title); + return replacer.parse(this->handlersConfig->page_title_template); } QueryOption Handler::queryOption(const Request &r) const