Templates are Jinja2 — HTML with two extra kinds of bracket. {{ page.title }} prints a value. {% if page.poster_image_url %} … {% endif %} is an instruction: loops, conditions, and inheritance.
base.html holds everything every page shares — the <head>, navigation, language switcher, footer, scripts — with one gap in the middle. Every other template starts the same way and fills that gap:
{% extends "base.html" %}
{% block content %} <h1>{{ page.title }}</h1> {{ page.content | safe }} {% endblock %}
Anything repeated across templates — a post card, a pagination bar — goes in partials/ and is pulled in with {% include "partials/post-card.html" %}.