Template Gids

Welkom bij de Finch Template Gids! Deze gids legt uit hoe je templates gebruikt in je Finch-applicatie. Of je nu een ervaren ontwikkelaar bent of net begint, Finch biedt krachtige hulpmiddelen om server-side HTML-rendering te vereenvoudigen.

Wat is een template?

Een template in Finch is een bestand dat de HTML-structuur van een pagina bevat. Het kan ook placeholders bevatten voor gegevens die tijdens runtime worden ingevuld. Templates worden gebruikt om HTML-pagina's te genereren die naar de client worden gestuurd.

Jinja Template Engine

Finch gebruikt de Jinja template-engine voor het renderen van views. Het templating-systeem biedt krachtige functies voor het creëren van dynamische webpagina's met een duidelijke scheiding tussen logica en presentatie.

Templatesyntaxis

Finch gebruikt Jinja-syntaxis voor het renderen van views. De syntaxis is vergelijkbaar met Jinja. Hier is een voorbeeld:

{{ variable }}           <!-- Basale variabele-uitvoer -->
{{ object.property }}    <!-- Toegang tot objecteigenschappen -->

Voor meer informatie over de syntaxis, zie de Jinja Template Engine documentatie.

Of raadpleeg de Jinja Package Dart documentatie.

Een eenvoudig voorbeeld van een template:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{{ title }}</title>
</head>
<body>
  <h1>{{ heading }}</h1>
  <p>{{ content }}</p>
  {% for item in items %}
    <p>{{ item }}</p>
  {% endfor %}
</body>
</html>

Aangepaste event-functies toevoegen aan templates (Jinja)

Je kunt aangepaste event-functies toevoegen aan templates via de Request.localEvents map. Deze map bevat alle custom event-functies die je in templates kunt gebruiken. Bijvoorbeeld, om een functie toe te voegen die het huidige jaar retourneert:

final localEvents = {
  'currentYear': () => DateTime.now().year,
};

Request.localEvents.addAll(localEvents);

En daarna gebruik je het in je template:

<p>Het huidige jaar is {{ $l.currentYear() }}</p>

Aangepaste filters toevoegen aan templates (Jinja)

final localLayoutFilters = {
  'customDate': (value) => DateFormat('yyyy-MM-dd').format(value),
};

Request.addLocalLayoutFilters(localLayoutFilters);

Je kunt het filter in je template gebruiken zoals:

<p>{{ date | customDate }}</p>