diff --git a/README.md b/README.md index b306fc2..67363fe 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,16 @@ The order is again specified by the alpha-numeric order of the files. You can add new subpages in the *content*-location via a *subpages.json* file denoting an identifier as key and a HTML-template as value, like this: { - "identifiert-1" : "html-template-1.html", - "identifiert-2" : "html-template-2.html" + "identifier-1" : "html-template-1.html", + "identifier-2" : "html-template-2.html" + } + +You can also give identifier complex objects pointing to another config dir which will be parsed by *readJsonDir* and passed to *render_template* as a list of dictionary objects called *"extraConfig"*: + + { + "identifier-1" : { + "template" : "html-template-1.html", + "config-dir" : "config_dir_in_content_dir" } # Contact Page diff --git a/example_config.py b/example_config.py index c4d02c7..0b18287 100644 --- a/example_config.py +++ b/example_config.py @@ -22,6 +22,8 @@ SITE_LOGO_URL = "Site Logo URL" SITE_BASE_URL = "Site Base URL" WALLPAPER_URL = "/picture/example.png" +SITE_WELLCOME_TITLE = "Title on the Wallpaper" +SITE_WELLCOME_SUBTITLE = "Subtitle on the Wallpaper" TEAMSPEAK_SERVER = "teamspeak.com" DISCORD_SERVER = "https://discord.gg/" @@ -31,3 +33,5 @@ TWITTER = "https://twitter.com/its_a_sheppy" TWITCH_CHANNEL = "esports_erlangen" TWITCH_PLACEHOLDER_IMG = "placeholder.png" + +ADDITIONAL_HEADER_CONTENT = "" diff --git a/server.py b/server.py index 79e050e..d8803b3 100755 --- a/server.py +++ b/server.py @@ -46,6 +46,7 @@ WRITE = "w" # subpages IDENTIFIER_PREFIX = "PAGE_" +CONFIG_POSTFIX = "_EXTRA_CONFIG" SUBPAGE_CONFIG_FILE = "subpages.json" SUBPAGE_CONTENT_DIR = "subpages/" @@ -169,7 +170,6 @@ def impressum(): with open(impressumTextPath) as f: impressumText = flask.Markup(f.read()) - #impressumText = flask.Markup(impressumTextPath) with open(impressumPath) as f: impressumFull = flask.render_template_string(f.read(), conf=app.config, text=impressumText) return flask.render_template("stub.html", content=impressumFull) @@ -183,7 +183,14 @@ def people(): def content(): identifier = IDENTIFIER_PREFIX + flask.request.args.get("id") if identifier in app.config: - markupText = flask.Markup(flask.render_template(app.config[identifier])) + + # check for extra config # + extraConfigDir = app.config[identifier + CONFIG_POSTFIX] + extraConfig = None + if extraConfigDir: + extraConfig = readJsonDir(os.path.join(app.config["CONTENT_DIR"], extraConfigDir)) + + markupText = flask.Markup(flask.render_template(app.config[identifier], extraConfig=extraConfig)) return flask.render_template("default_content.html", conf=app.config, markupText=markupText) else: return (EMPTY_STRING, HTTP_NOT_FOUND) @@ -317,7 +324,13 @@ def init(): # set template paths for identifier in app config # for identifier in subpages.keys(): - app.config[IDENTIFIER_PREFIX + identifier] = subpages[identifier] + if type(subpages[identifier]) == dict: + app.config[IDENTIFIER_PREFIX + identifier] = subpages[identifier]["template"] + configKey = IDENTIFIER_PREFIX + identifier + CONFIG_POSTFIX + app.config[configKey] = subpages[identifier]["config-dir"] + else: + app.config[IDENTIFIER_PREFIX + identifier] = subpages[identifier] + app.config[IDENTIFIER_PREFIX + identifier + CONFIG_POSTFIX] = None # set custom loader to support second template dir # subpageContentDirTmp = os.path.join(app.config["CONTENT_DIR"], SUBPAGE_CONTENT_DIR) diff --git a/templates/default_content.html b/templates/default_content.html index b16cfca..f11b328 100644 --- a/templates/default_content.html +++ b/templates/default_content.html @@ -5,7 +5,7 @@ {% include 'head.html' %} -
+ {% include 'navbar.html' %}