select default template for posts

This commit is contained in:
Daniel Fichtinger 2025-07-02 15:43:12 -04:00
parent 2876ef664b
commit f932f24e38
4 changed files with 23 additions and 6 deletions

View file

@ -0,0 +1,6 @@
{% extends "base.html" %}
{% block content %}
{{ content | safe }}
{% endblock %}

View file

@ -1,7 +1,11 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
<center><h1>{{ metadata.title }}</h1></center> <center><h1>{{ metadata.title }}</h1></center>
<article>{{ content | safe }}</article>
{% if post_list %} {% if post_list %}
<ul> <ul>
{% for item in post_list %} {% for item in post_list %}

View file

@ -19,7 +19,7 @@ class Metadata:
style: str | None = "/static/style.css" style: str | None = "/static/style.css"
header: bool = True header: bool = True
footer: bool = True footer: bool = True
template: str = "page.html" template: str | None = None
post: bool | None = None post: bool | None = None

View file

@ -50,11 +50,18 @@ class Templater:
env = self.env env = self.env
meta = item.metadata meta = item.metadata
assert meta is not None assert meta is not None
template = env.get_template( if meta.template is None:
if item.post:
template_name = "page.html"
else:
template_name = "basic.html"
else:
template_name = (
meta.template meta.template
if meta.template.endswith(".html") if meta.template.endswith(".html")
else meta.template + ".html" else meta.template + ".html"
) )
template = env.get_template(template_name)
header: str | Literal[False] = ( header: str | Literal[False] = (
self.render_header() if meta.header else False self.render_header() if meta.header else False
) )