Skip to content

Releases: elcreator/aLatteX

Add nested templates support

Choose a tag to compare

@elcreator elcreator released this 01 Sep 02:09

Full Changelog: 0.3.0...0.4.0

Nightly main (2026-09-01)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 02:05

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

Choose a tag to compare

@elcreator elcreator released this 31 Aug 18:00

Full Changelog: 0.2.1...0.3.0

0.2.1

Choose a tag to compare

@elcreator elcreator released this 29 Aug 20:32

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 latte as 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 matching views/<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.md blamed the absence of {extends} on there being no filesystem to inherit from. The real reason is StringLoader — 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

Choose a tag to compare

@elcreator elcreator released this 29 Aug 19:19

Demo set, manager-side editing, and a bridge that no longer mistakes PHP for EVO syntax.

Fixed

  • EVO tag detection. EvoSyntaxBridge matched 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 OnSiteSettingsRender now, which renders after the radios and before the page's own script, so the CMS finds a checked option instead of null.

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 matching artisan 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 myCodeMirrors map 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 latte with the core's Template code switch (evolution-cms/evolution#2432), so a template can be kept as views/<alias>.latte and 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 and evo* functions, the interop and parse-order rules, and the demo.

Notes

  • Requires the chunk_processor system setting to be aLatteX; 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 upstream cli-install.php gap that leaves manager_theme unset. Fix submitted upstream.