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" %}
{% block content %}
<center><h1>{{ metadata.title }}</h1></center>
<article>{{ content | safe }}</article>
{% if post_list %}
<ul>
{% for item in post_list %}

View file

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

View file

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