Project

General

Profile

Actions

Sub-Task #194

open

Epic #188: Notification System

Feature #189: Email Notifications

User Story #193: As a system, I want to send emails on long-term events, so that users receive batch digests

Implement email template rendering

Sub-Task #194: Implement email template rendering

Added by Bricklou 6 months ago. Updated 18 days ago.

Status:
Done
Priority:
Normal
Assigned To:
Target version:
Start date:
09/07/2026
Due date:
% Done:

100%

Estimated time:

Description

MJML source is compiled to HTML via mrml, a pure-Rust MJML→HTML renderer that only handles static markup (no variable/conditional syntax of its own).

Dynamic value injection (recipient name, verification link, etc.) is done via Tera, a Jinja2-style templating engine, layered on top of the compiled HTML. Tera is chosen over Askama specifically because it loads templates at runtime instead of compiling them into the binary, which enables the filesystem override below without a rebuild.

  • Built-in default templates are embedded in the binary.
  • Optional filesystem override: a TEMPLATE_DIR environment variable (consistent with the project's env-var-only config convention) points to a folder; if a matching template file exists there, it is used instead of the embedded default. No database involved.
  • Delivery of the rendered output is handled separately (see #195).

Related issues 1 (1 open — 0 closed)

Blocks Server - Sub-Task #166: Send invitation email with tokenPlannedBricklou

Actions
Actions

Also available in: PDF Atom