- 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:attr
usingJSON.stringify
(#41)
- Add support for logical operators:
&&
/and
,||
/or
- Add support for equality operator keywords:
eq
,ne
- Fix
Node is not defined
errors when using Thymeleaf in a NodeJS environment, (#38)
- Added
XmlNsAttributeProcessor
to 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 amessageResolver
configuration function. - Fix TypeError when calling native JS methods within expression language blocks
- Adding
th:alt
as 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-first
value of thethjs:remove
processor. - Added support for
thjs:datetime
->datetime
HTML attribute - Small performance tweaks to address 'over re-processing' of templates.
- Fix for the
th:if
processor not causing the element to be reprocessed once removed
- Added a
thjs:unless/data-thjs-unless
processor (#25) - Added a
thjs:with/data-thjs-with
processor - Added support for parameters passed in fragment expressions
- Added support for element processors and Thymeleaf's
th:block
element 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-replace
processor (#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
/value
processors 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-value
processor - 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-checked
processor
- Fix
th:attr
/data-th-attr
where 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-insert
to 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-text
and single-escaping ofthjs:utext
/data-thjs-utext
processors
- Rework bundles so that they can target browser and node environments separately (#12)
- Other small changes to work on browsers more effectively
- Fix the
main
entry to point to the new CommonJS bundle.
- Add initial support for link expression syntax (#9)
- Use
thjs
as the default prefix for the standard dialect. - Export
Dialect
andAttributeProcessor
, andStandardDialect
classes. - Add support for object navigation in expressions.
- Add support for the
th:each
/data-th-each
attribute processor.
- Add support for the
th:attr
/data-th-attr
attribute processor.
- Add support for the
th:utext
/data-th-utext
attribute processor - Fixed
th:text
not escaping unsafe HTML content.
- Extract the Express integration into its own module, express-thymeleaf
- Added support for the
th:if
/data-th-if
attribute processor
- Initial release, has a
th:text
/data-th-text
attribute processor that handles only expressions that name an item in the current context, eg:${greeting}
wherecontext = { greeting: 'Hello!' }