Update Tera link to canonical URL, add authoring syntax pointer. Add Default column to frontmatter fields table with source-verified values. Enrich Theme System section with core CSS variables table and customization pattern.
3.4 KiB
3.4 KiB
title, description, weight
| title | description | weight |
|---|---|---|
| Tera Templates | Customizable templates without recompilation | 1 |
sukr uses Tera, a Jinja2-like templating engine. Templates are loaded at runtime, so you can modify them without recompiling sukr. See the Tera documentation for template authoring syntax (filters, blocks, inheritance).
Template Directory Structure
templates/
├── base.html # Shared layout (required)
├── page.html # Standalone pages
├── homepage.html # Site homepage
├── section/
│ ├── default.html # Fallback section index
│ ├── blog.html # Blog section index
│ └── projects.html # Projects section index
└── content/
├── default.html # Fallback content page
└── post.html # Blog post
Template Inheritance
All templates extend base.html:
{% extends "base.html" %} {% block content %}
<article>
<h1>{{ page.title }}</h1>
{{ content | safe }}
</article>
{% endblock content %}
Available Context Variables
All Templates
| Variable | Description |
|---|---|
config.title |
Site title |
config.author |
Site author |
config.nested_nav |
Whether hierarchical nav is enabled |
nav |
Array of navigation items |
page_path |
Current page path |
prefix |
Relative path prefix for assets |
base_url |
Canonical base URL |
title |
Current page title |
Each nav item has:
label— Display textpath— URL pathweight— Sort orderchildren— Child nav items (whennested_navis true)
Page Templates
| Variable | Description |
|---|---|
page.title |
Page title |
page.description |
Page description |
page.toc |
Whether TOC is enabled for this page |
content |
Rendered HTML content |
anchors |
Array of heading anchors for TOC |
Each anchor in anchors has:
id— Heading slug (forhref="#id")label— Heading textlevel— Heading level (2-6, h1 excluded)
Section Templates
| Variable | Description |
|---|---|
section.title |
Section title |
section.description |
Section description |
items |
Array of content items in section |
Content Item Fields (in items)
| Variable | Description |
|---|---|
item.title |
Content title |
item.description |
Content description |
item.date |
Publication date |
item.path |
URL path |
item.slug |
URL slug |
Template Override
Set template in frontmatter to use a custom template:
---
title: Special Page
template: special
---
This uses templates/content/special.html instead of the default.