marx-software.de

Erweiterungen werden in JS erstellt und liegen im Ordner hosts/<host>/extensions bzw. themes/<theme>/extensions und müssen in Dateien nach dem Namensschema <namen>.js abgelegt werden. Es kann beliebig viele Dateien mit Extension geben.

Template erweitern

Supplier für Inhalte

import { $template } from 'system/template.mjs';

$template.registerTemplateSupplier(
	"myName",
	() => "Thorsten"
)

<div th:with="name = ${myName.get()}">
	<p th:th:text="${name}"></p>
	<!-- Thorsten -->
</div>

Funktion für Templates

Funktionen können im Gegensatz zu Supplier auch Parameter entgegen nahmen

import { $template } from 'system/template.mjs';

$template.registerTemplateFunction(
	"getHello",
	(name) => "Hello " + name + "!"
)

<div th:with="hello = ${getHello.apply('Thorsten')}">
	<p th:text="${hello}"></p>
	<!-- Hello Thorsten -->
</div>

Erweiterungen für Markdown

Das Markdown-Rendering kann nicht direkt beeinflusst werden. Durch ShortCodes kann die Verwaltung von Inhalten allerdings deutlich verbessert und unterstützt werden.

Eigenen ShortCodes erstellen

import { $shortcodes } from 'system/shortcodes.mjs';

$shortcodes.register(
	"hello",
	(params) => `Hello ${params.get("name")}, I'm a TAG!`
)

Verwendung in Markdown:

[[hello name='Thorsten'/]]

Ausgabe im HTML:

Hello Thorsten, I'm a TAG!