Releases: elcreator/aLatteX
Releases · elcreator/aLatteX
Release list
Add nested templates support
Full Changelog: 0.3.0...0.4.0
Nightly main (2026-09-01)
Automated build of main at 3dfb7b5, against Evolution CMS 3.5.x.
evolution-cms-3.5.7-alattex-main-3dfb7b5-sqlite.zip— Evolution CMS pre-installed on sqlite with this plugin already installed: unpack into a docroot and open it, no database server needed.alattex-dev-3dfb7b5.zip— the plugin on its own, for an existing Evolution CMS.
Manager: admin / Passw0rd123
A testing build with published credentials. Not for production.
Add syntax highlighting and Tracy integration
Full Changelog: 0.2.1...0.3.0
0.2.1
Documentation only — no code change from 0.2.0.
Re-tagged rather than amended: Packagist had already recorded 0.2.0 against its commit and does not re-read a tag it has seen, so a moved tag would never have reached anyone.
- The README said templates are database-only — "no filesystem template files required". The core's Template code switch (evolution-cms/evolution#2432) makes a file an equal option, and aLatteX registers
latteas one of the engines the template form can scaffold, so Latte (.latte) is preselected while aLatteX is the chunk processor. The intro now covers both routes, and a new section documents the three switch settings, what needs Evolution CMS 3.5.9 (the switch and its dropdown) versus what has always worked (rendering from a matchingviews/<alias>.latte), and that the pipeline is identical either way. - The caching note said the compiled cache invalidates when a template is saved in the admin panel. The cache key comes from the template content, so it invalidates on a file edit just the same.
docs/latte-syntax.mdblamed the absence of{extends}on there being no filesystem to inherit from. The real reason isStringLoader— aLatteX hands Latte the source, not a path — and that does not change when a template moves into a file. Worth stating precisely now that files are a real option: moving a template into one buys version control, not{extends}.
0.2.0
Demo set, manager-side editing, and a bridge that no longer mistakes PHP for EVO syntax.
Fixed
- EVO tag detection.
EvoSyntaxBridgematched on delimiters alone, so[[1, 2], [3, 4]],$row[($i + 1)]and$a[!empty($b)]were tokenised as EVO tags and never reached Latte as the PHP they are. A tag is now only tokenised when what follows the delimiter could actually name an element, which means a name can never contain]. Token names are keyed by the plugin's own secret rather than the application key. - Template variables rendered as
Array. The core hands a TV over as[name, value, display, display_params, type];DocumentObject::flatten()reduces each to its value before the fields become Latte variables, so{$alxSubtitle}means what[*alxSubtitle*]means. - The system settings page threw on every visit while aLatteX was the selected chunk processor. The radio is injected from
OnSiteSettingsRendernow, which renders after the radios and before the page's own script, so the CMS finds a checked option instead ofnull.
Added
- A demo set: six pages with one template each, five chunks, four snippets and three TVs, covering Latte 3 in full, all six EVO tag forms, the
evo*functions and the places the two syntaxes meet.composer demo:install/composer demo:remove, or the matchingartisan alattex:demo:*commands. The same files are the package's test fixtures, so the pages you click through and the fixtures CI renders are the same bytes. - Syntax highlighting for the Resource content field, the one element editor Evolution CMS leaves bare. It loads the CMS's own CodeMirror, registers in the same
myCodeMirrorsmap the manager's theme switch iterates, sizes itself from its content between 5 and 20 lines, and highlights EVO tags - not Latte ones, because Latte finishes before[*content*]is substituted and a{$var}in that field prints verbatim. - Templates in files. aLatteX registers
lattewith the core's Template code switch (evolution-cms/evolution#2432), so a template can be kept asviews/<alias>.latteand edited under version control instead of in the manager. The pipeline is identical either way; the switch itself needs Evolution CMS 3.5.9, while rendering from a matching view file has always worked. - Documentation under
docs/: Latte syntax as it behaves inside Evolution CMS, the EVO tag forms andevo*functions, the interop and parse-order rules, and the demo.
Notes
- Requires the
chunk_processorsystem setting to beaLatteX; the demo installer says so if it is not. - The local pipeline (
docker compose -f ci/compose.yaml up serve) now produces a site with a styled manager, working around an upstreamcli-install.phpgap that leavesmanager_themeunset. Fix submitted upstream.