Template scripts

A template script defines the output (typically HTML) and is interpreted by Renderer. The script is written in a templating language such as FreeMarker.

In the context of developing single-page applications, the elements comparable to FreeMarker template scripts are components. These are compiled into a single HTML page. On the Magnolia side, page rendering is handled by the SPA renderer.

A template script is a mixture of:

  • Static markup

  • Dynamically assigned values provided by TemplatingFunctions and other convenience helpers

  • Content references

FreeMarker

At Magnolia, we prefer FreeMarker for its flexibility, clean syntax and practical error reporting.

Magnolia 6.2.53 includes FreeMarker version 2.3.32. You can use the .version special variable in a template to check this.

If you are not familiar with FreeMarker, these links will get you started:

The Magnolia CLI offers the create-page and create-component commands that automatically create basic scripts, template definitions and dialog definitions.

Automatically escape .html in Freemarker

Freemarker recommends that you configure Freemarker so that templates with ftlh extensions are automatically associated with .html files.

By default, Magnolia’s pattern does not look for .ftlh extensions. In order to automatically escape .html files, you need to add the .ftlh extension to the magnolia.resources.classpath.observation.pattern property.

/your-webapp/src/main/webapp/WEB-INF/config/default/magnolia.properties
# Pattern to define which resources should be observed by ClasspathScanner
magnolia.resources.classpath.observation.pattern=.*\\.(ftl|ftlh|yaml)$ (1)
1 In this case, ftl, ftlh, and yaml files are observed.
Feedback

DX Core

×

Location

This widget lets you know where you are on the docs site.

You are currently perusing through the DX Core docs.

Main doc sections

DX Core Headless PaaS Legacy Cloud Incubator modules