- Minimum supported Node version is now 18
- Include a generated type definition file from the JSDoc.
- Drop support for Node 10
- Consider empty strings as string literals (#46)
- Add support for array access by index:
array[i](#44)
- Add support for literal substitions:
|...|(#43)
- Emit complex objects in
thjs:attrusingJSON.stringify(#41)
- Add support for logical operators:
&&/and,||/or - Add support for equality operator keywords:
eq,ne
- Fix
Node is not definederrors when using Thymeleaf in a NodeJS environment, (#38)
- Added
XmlNsAttributeProcessorto remove Thymeleaf's XML namespaces in HTML files. - Remove the standard variant of an attribute processor when the isomorphic one is processed.
- Isomorphic mode now configured at the dialect level
- Lots of statics moved to named exports for better tree-shaking / smaller imports.
- Changes to template rendering, brought about by:
- No longer render using the
XMLSerializer. This should remove unnecessary XML namespaces appearing in template fragments or re-rendered templates. - Update JSDOM dependency from 9.x to 16.x.
- No longer render using the
- Allow variable expressions in 'template name' part of the fragment expression (#35)
- Added support for message expressions
#{...}and amessageResolverconfiguration function. - Fix TypeError when calling native JS methods within expression language blocks
- Adding
th:altas a removable attribute - Allow escaped single quotes in strings (#23)
- Expressions can now do negation using the
!operator
- Dialects can now add expression objects to the processing context
- Fix chained expressions when using built-in javascript properties
- Added support for the
all-but-firstvalue of thethjs:removeprocessor. - Added support for
thjs:datetime->datetimeHTML attribute - Small performance tweaks to address 'over re-processing' of templates.
- Fix for the
th:ifprocessor not causing the element to be reprocessed once removed
- Added a
thjs:unless/data-thjs-unlessprocessor (#25) - Added a
thjs:with/data-thjs-withprocessor - Added support for parameters passed in fragment expressions
- Added support for element processors and Thymeleaf's
th:blockelement processor
- Method calls (
#...in variable expressions) supported, though they don't really do anything as their are no expression objects in the Thymeleaf context just yet - Updated minimum supported Node version to 8
- Added a
thjs:replace/data-thjs-replaceprocessor (#24)
- Template names in fragment expressions can have
/in their name (as they are often paths to a file)
- Add support for string concatenation (string literals or expressions that return strings and any combination of the 2)
- Add support for parsing the iteration status variable (though nothing is done with it) to round out support for the iteration expression
- Added testing against Node 10 on TravisCI
- The template resolver is now a dev-specified function, meaning no more special hacks required to get template insertion working!
- Restoring
href/src/valueprocessors lost in the last update
- Whitespace no longer significant in parsing most expression types
- Parsing errors are output to the log in built mode and no longer thrown so that they don't bring down the whole thread
- Add a
th:value/data-th-valueprocessor - Add support for if-then expressions (
(condition) ? (true branch)) - Add support for a literals (text, number, boolean, and tokens)
- Add a
th:checked/data-th-checkedprocessor
- Fix
th:attr/data-th-attrwhere re-using the regex in the processor would cause subsequent uses to fail. - First attempt at support for the fragment syntax and
th:insert/data-th-insertto include other templates/fragments (still a hack that's documented in the README). - Include Node 8 in CI builds/tests as it's now entered LTS.
- Testing frameworks simplified: mocha + chai + nyc + jsdom -> jest
- Fix double-escaping of
thjs:text/data-thjs-textand single-escaping ofthjs:utext/data-thjs-utextprocessors
- Rework bundles so that they can target browser and node environments separately (#12)
- Other small changes to work on browsers more effectively
- Fix the
mainentry to point to the new CommonJS bundle.
- Add initial support for link expression syntax (#9)
- Use
thjsas the default prefix for the standard dialect. - Export
DialectandAttributeProcessor, andStandardDialectclasses. - Add support for object navigation in expressions.
- Add support for the
th:each/data-th-eachattribute processor.
- Add support for the
th:attr/data-th-attrattribute processor.
- Add support for the
th:utext/data-th-utextattribute processor - Fixed
th:textnot escaping unsafe HTML content.
- Extract the Express integration into its own module, express-thymeleaf
- Added support for the
th:if/data-th-ifattribute processor
- Initial release, has a
th:text/data-th-textattribute processor that handles only expressions that name an item in the current context, eg:${greeting}wherecontext = { greeting: 'Hello!' }