feat(templates): add Tera runtime template engine

Lay groundwork for user-editable templates by adding Tera as a
runtime template engine alongside the existing maud templates.

Changes:
- Add tera dependency
- Create TemplateEngine struct with render methods
- Add TemplateLoad/TemplateRender error variants
- Add section_type/template fields to Frontmatter
- Create templates/ directory with base, page, section, and content templates

Dead code warnings are expected; TemplateEngine will be wired
in to replace maud in subsequent commits.
This commit is contained in:
Timothy DeHerrera
2026-01-31 14:59:49 -07:00
parent 1bf265f14b
commit 3df7fda26a
14 changed files with 647 additions and 1 deletions

View File

@@ -40,6 +40,14 @@ pub enum Error {
/// Failed to parse configuration file.
#[error("invalid config in {path}: {message}")]
Config { path: PathBuf, message: String },
/// Failed to load templates.
#[error("failed to load templates: {message}")]
TemplateLoad { message: String },
/// Failed to render template.
#[error("failed to render template '{template}': {message}")]
TemplateRender { template: String, message: String },
}
/// Result type alias for compiler operations.