make html <title></title> configurable

This commit is contained in:
Albert S. 2019-10-02 21:40:58 +02:00
parent 7fc9c090ed
commit 1c646fa165
3 changed files with 14 additions and 4 deletions

View File

@ -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 <exception>
#include <iostream>
#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<std::string, std::string> &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<std::string, std::string> &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)

View File

@ -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;
};

View File

@ -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