Thymeleaf ohne Servlet in Standalone-Anwendungen nutzen

Thymeleaf ist eine Template Engine, welche für die Nutzung mittels Java (oder anderer JVM-Sprachen) gedacht ist. Über diese können entsprechende Templates geschrieben werden, anschließend gefüllt und genutzt werden. Thymeleaf verfügt über eine Dokumentation, allerdings fehlt mir dort ein minimales Beispiel für Anwendungen, welche sich nicht im Web (sogenannte non-web environments) abspielen.

thymeleaf.org

Für ein minimales Beispiel wird natürlich ein Template benötigt. Dieses wird hier als HTML definiert:

<!DOCTYPE html>
<html>
<head>
    <title th:text="${title}"></title>
</head>
<body>
</body>
</html>

Interessant ist hierbei das Feld title, welches wir mit einem Titel füllen wollen. Im Java-Quellcode sieht die Implementation wie folgt aus:

ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("templates/");
resolver.setTemplateMode("HTML5");
resolver.setSuffix(".html");

TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(resolver);

Context context = new Context(Locale.GERMAN);
context.setVariable("title", "Ein minimales Beispiel");

final String content = templateEngine.process("header.html", context);

Im ersten Schritt wird mit dem ClassLoaderTemplateResolver ein Resolver definiert, welcher schlussendlich dafür sorgt die Templates aus den Ressourcen (im resources-Ordner) bezogen werden. Daneben wird der Template-Modus eingestellt. Neben dem Modus HTML5 unterstützt Thymeleaf wie z.B. TEXT oder JAVASCRIPT. Danach wird die Template Engine erstellt und ihr der Resolver zugewiesen. Die Variablen, welche in diesem Fall im Template genutzt werden, werden über den Context definiert und gesetzt. Anschließend wird das Ganze an die process-Methode der Template Engine übergeben. Als Ergebnis erhalten wir im String content folgenden Inhalt:

<!DOCTYPE html>
<html>
<head>
    <title">Ein minimales Beispiel</title>
</head>
<body>
</body>
</html>

Damit wurde Thymeleaf in einer minimalen Variante angewendet. Die offizielle Seite der Template Engine ist unter thymeleaf.org zu finden. Lizenziert ist Thymeleaf unter der Apache License in der Version 2.0 und damit freie Software.

Google Fonts herunterladen

Im Rahmen der DSGVO wird unter anderen Datensparsamkeit gefordert; bei vielen Webseiten ist dies leider nicht immer gegeben. So findet häufig die Einbindung der Google Fonts vor. Jetzt ist es per se nicht verwerflich Google Fonts zu nutzen, allerdings sollten diese Fonts lokal eingebunden werden. Wenn dies nicht geschieht und sie direkt über das CDN von Google eingebunden werden, überträgt man bei jedem Aufruf entsprechende Daten an Google.

fonts.google.com

Um dies zu unterbinden, sollte die gewünschte Schriftart heruntergeladen werden und anschließend lokal in die eigene Webseite bzw. das eigene Projekt eingebunden werden. Hierfür bietet sich der google-webfonts-helper von Mario Ranftl an. Dort wählt man die gewünschte Schriftart aus und kann diese anschließend herunterladen. Neben dem eigentlichen Font wird auch entsprechendes CSS zu Einbindung bereitgestellt. Genutzt werden kann der google-webfonts-helper nicht nur über die Weboberfläche, sondern auch über eine entsprechende REST-API.

Der google-webfonts-helper

Der Quelltext des google-webfonts-helper kann über GitHub bezogen werden. Lizenziert ist das Projekt unter der MIT Lizenz und damit freie Software.

Plugins für RPG Maker MV Projekte

Der RPG Maker MV ist eine Anwendung mit welcher einfach Rollenspiele erstellt werden können, ohne das tiefgreifende Programmierkenntnisse benötigt werden. Der RPG Maker MV reiht sich in eine lange Reihe von RPG Makern ein, welche seit 1992 auf den Markt gebracht wurden.

Ein RPG Maker MV Projekt

Von der Basisfunktionalität des RPG Maker MV ausgehend, existieren eine Reihe von Plugins, welche neue Funktionalität hinzufügen oder bestehende Funktionalitäten abwandeln. Neben einzelnen Plugins gibt es eine Reihe von Pluginsammlungen für den RPG Maker MV. Dazu zählen die kleineren Sammlungen wie die Victor Engine Scripts, die Plugins von SumRnDm und den Plugins von Galv. Daneben existieren einige größere Anlaufstellen wie die Yanfly Engine Plugins, das MV Plugins-Verzeichnis und die Ressourcen-Seite von rpgmakermv.co.

Worms Remake als HTML5-Spiel

Das Spiel Worms, in dem sich zwei Parteien von Würmern bekriegen mussten, blickt mittlerweile auf eine über zwanzigjährige Geschichte zurück. Im Rahmen seiner Bachelorarbeit entwickelte Ciarán McCann ein Remake des Spieles. Geschrieben wurde das ganze in Typescript, welches in JavaScript kompiliert wird. Neben dem Tutorial bietet das Spiel einen lokalen Mehrspielermodus und einen Online-Modus. Letzterer kann leider im Moment nicht ausprobiert werden, da der dazu benötigte Server nicht läuft. KI-Gegner sind nicht vorgesehen, so das man zwangsläufig einen weiteren Mitspieler für eine Runde im Worms-Remake benötigt.

Das Worms Remake

Die Auswahl an Waffen und Fähigkeiten reicht nicht ganz an das Original heran; es sind insgesamt 9. Der Quelltext des Spieles ist auf GitHub zu finden. Er ist unter der Apache License in der Version 2 lizenziert und damit freie Software. Ausprobiert werden kann das Spiel auf der Seite des Autors.

Bauwerks- und Geometriegeneratoren für Minecraft

Auf der Suche nach einem Generator, für einfache geometrische Formen in Minecraft, bin ich auf die Webseite plotz.co.uk gestoßen. Dort gibt es Generatoren für Spheren, Elipsioiden, Tori und Bauwerke wie Observatorien, Leuchttürme oder Schneemänner.

Der Generator für den Wizard Tower

Je nach verwendetem Generator können unterschiedliche Parameter wie Größe, Stockwerke und ähnliches eingestellt werden. Anschließend kann man die erzeugten Geometrien nachbauen, indem man sie sich Schicht für Schicht anzeigen lässt. Dies ist vor allem bei Formen wie Kugeln oder elliptischen Körpern sehr angenehm, da die Fehlerquote dank der detaillierten Bauanleitung stark abnimmt. Geschrieben sind die Generatoren mit den Mitteln von HTML5 und JavaScript.