From 4de7236acac77dcbea208512657474b23b77f03b 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 | 10 ++++++++-- config.h | 1 + handlers/handler.cpp | 6 ++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/config.cpp b/config.cpp index 0c8082d..2210a35 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); @@ -102,6 +104,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")); @@ -113,6 +116,9 @@ 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); } diff --git a/config.h b/config.h index 66973a1..fdf28f6 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 b98b1fa..dc4568c 100644 --- a/handlers/handler.cpp +++ b/handlers/handler.cpp @@ -44,9 +44,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