Releases: sempare/sempare-delphi-template-engine
Releases · sempare/sempare-delphi-template-engine
Release v1.7.5
Release v1.7.4
This release features:
- NEW: Assignment can now be done using both Pascal (:=) and C (=) operators. This is a flexibility feature to support users.
- NEW: default(value, default) method. Default is returned when IsEmpty(value) is true.
- NEW: domid(record_or_class [, context:str] )
- NEW: pascal-like ternary: <% greet := true; print( 'hello' if greet else 'bye' ) %>
- FIX: refactor old C-like ternary <% print(greet? 'hello':'bye' ) %>
- FIX: some of the language constructs required open and close brackets. These are now optional. Close bracket will be forced when the open bracket is used.
- FIX: semi colons can be used more liberally within the script blocks, even with empty statements. <% print('hello'); ; ; ; print('world') ; %>
Release v1.7.3
NEW: add some helper debug methods for probing the stack frames
NEW: add Context.VariableResolver
NEW: map values can now contain expressions
NEW: support for integration with the DelphiMVCFramework (bridge adaptor will be in that repository)
FIX: context missing on two of the TTemplateRegistry.Eval overloads which resulted in some of the config being missing
FIX: general refactorings
FIX: VCL dependency removed. Introductory licensing text is now included in template output when run without the define.
FIX: refactor SempareVersion() helper
Release 1.7.2
- NEW: add manage(object) and unmanage(object) to allow scripts to hint to evaluation engine to dispose of dynamically created objects
- NEW: updated Template Engine Playground to show evaluation time in ms
- NEW: updated Template Engine Playground to extract variables from a script into the grid
- NEW: updated Template Engine Playground with Carbon theme
- NEW: initial support for json/map like variables
- FIX: remove caching of TRttiMethod to ensure calls on virtual methods work correctly
- FIX: type coercion to TValue reapplied
Release 1.7.1
- NEW: update template resolution in TTemplateRegistry using contextual information
- NEW: add convenience helpers Template.Resolver(), Template.Resolve(), Template.ResolveWithContext()
- NEW: add Context.TemplateResolverWithContext
- FIX: stack overflow on TemplateRegistry when resolving templates explicitly added to the context.
- FIX: resource leak in TTemplateRegistry on shutdown
- FIX: TTemplateRegistry shutdown could potentially block
Release v1.7.0
- NEW: add extends/block support
- NEW: add whitespace stripping hints to script tokens
- NEW: add WebBroker demo
- NEW: add TTemplateRegistry helper (experimental)
- NEW: reformat docs with working navigation and function ordering
- NEW: add Sempare.Template.RCGenerator
- NEW: add hash comment support <%# comment %>
- NEW: support multiple statements in a script block. e.g. <% print('a'); print('b') %>
- NEW: add Template.ExtractBlocks
- NEW: add Context.WhitespaceChar
- NEW: added != alias for <>, == alias for =
- CHANGE: Remove eoAllowIgnoreNL, eoStripEmptyLines, eoReplaceNewline
- CHANGE: Rename Demo to Playground
- CHANGE: removed (* *) style comments within script blocks which didn't really work
- FIX: bug in elif
- FIX: cycle statement support in while loops
- FIX: various internal refactorings
v1.6.2
v1.6.1
v1.6.0
Release v1.5.1
FIX: issues identified with missing consts in XE4.