Qgoda version 0.9.3 steht ab sofort zum Download zur Verfügung, entweder als normales Perl-Paket, als Docker-Container oder von github. Es handelt sich größtenteils um ein Konsolidierungs-Release, bringt aber auch einige wichtige Veränderungen.
Die aus Benutzersicht wichtigsten Änderungen wurden an der Konfiguration
vorgenommen. Alle Unterstriche ("_") in Variablennamend wurden durch
Bindestricht ("-") ersetzt. So wurde zum Beispiel aus exclude_watch
jetzt
exclude-watch
.
Die Konfigurationsdatei _config.yaml
wird jetzt gegen ein
JSON-Schema validiert, um ungültige
Konfigurationen zu vermeiden. Anderseits sind die Konfigurationsmöglichkeiten
aber auch flexibler geworden, weil Qgoda die Konfiguration in vielen
Fällen automatisch entsprechend dem Schema "repariert". Beispielsweise
müssen die Werte der Konfigurationsvariablen helpers
eigentlich
Listen sein, aber sie lassen sich auch so angeben:
helpers:
build: gulp
Die Zeichenkette "gulp" wird aber automatisch in eine Liste "befördert":
helpers:
build:
- gulp
Dahinter steckt ein allgemeines Muster, das sich immer verwenden lässt, wenn
eine Liste erwartet wird, diese Liste aber lediglich einen Wert hat. Das ist
zum Beispiel auch für defaults
der Fall:
defaults:
- files: /en
values:
lingua: en
- files:
- /de
values:
lingua: de
Die beiden Versionen für "de" und "en" sind äquivalent, und das Ergebnis
lässt sich jederzeit mit qgoda config
überprüfen.
Das zugrundeliegence JSON-Schema lässt sich übrigens mit dem neuen Kommando
qgoda schema
untersuchen.
Die Schema-Validierung geschieht mit Hilfe von Ajv, der gleichen Bibliothek, die zum Beispiel auch webpack verwendet. Allerdings ist Ajv in JavaSCript geschrieben, und es gibt keine gleichwertige Implementierung in Perl.
Um Ajv dennoch verwenden zu können, wurde die
Duktape-Engine via
JavaScript::Duktape::XS
in Qgoda eingebettet. Diese lässt sich sogar mit dem neuen Kommando
qgoda javascript
oder seinem Alias qgoda js
direkt ansprechen.
Wer neugierig ist, erfährt mit qgoda javascript --help
mehr.
Weiterhin wurde die Arbeit an einem Yeoman-Generator für Qgoda aufgenommen, siehe https://www.npmjs.com/package/generator-qgoda für eine Anleitung.
Zur Zeit lässt sich eine einfache Site mit Entwicklungs-Web-Server erzeugen. Das ist natürlich noch nicht allzu viel, jedoch schon ausreichend, um eine gut strukturierte Qgoda-Site aufzubauen.
Auf https://metacpan.org/source/GUIDO/Qgoda-v0.9.2/Changes gibt es eine vollständige Liste der Änderungen einsehen.
Die Pläne für die nächsten Wochen sind:
HTMLFilter
durch ein neues API,
das auf Cheerio aufbaut. Dadurch können Filter
sowohl in JavaScript als auch in Perl geschrieben werden und zwar mit der
von jQuery bekannten Syntax.Parallel dazu wird natürlich an der weiteren Vervollständigung der Dokumentation und einer größeren Testabdeckung gearbeitet. Stay tuned!