Releases: jinja2cpp/Jinja2Cpp
Releases · jinja2cpp/Jinja2Cpp
1.3.2
What's Changed
- Fix empty dict literal parsing in #243
- Fixing missing life rage protection for the reverse filter (and others). by @jferreyra-sc in #246
- Ability to disable JinjaCpp installation rules by @ilya-lavrenov in #250
- Cmake finds only downloaded rapidjson by @ilya-lavrenov in #254
- Update boost dependencies by @Cheaterdev in #253
New Contributors
- @jferreyra-sc made their first contribution in #246
- @ilya-lavrenov made their first contribution in #250
- @Cheaterdev made their first contribution in #253
Full Changelog: 1.3.1...1.3.2
Release 1.3.1
Changes and improvements
- bump deps versions
- support modern compilers(up to Clang 12) and standards(C++20)
- tiny code style cleanup
Fixed bugs
- small fixes across code base
Breaking changes
- internal deps point to make based boost build
Release 1.3.0 (Beta)
What's Changed
- bump 3rd party dependencies to current versions
- optimise template load time (introduce ability to use boost::regex that is times faster than std::regex)
Fixed bugs
- small fixes across code base
Breaking change
- introduce new default
ToJsonfilter implementation based on boost::json (rapidjson seems to become abandoned) - get rid of git submodules in favour of CMake fetch_content
Full Changelog: 1.2.1...1.3.0-beta
Release 1.2.1
Changes and improvements
- bump deps versions
- support modern compilers(up to Clang 12) and standards(C++20)
- tiny code style cleanup
Fixed bugs
- small fixes across code base
Breaking changes
- internal deps point to make based boost build
Release 1.2.0 (Beta)
Changes and improvements
- bump deps versions
- support modern compilers(up to Clang 12) and standards(C++20)
Fixed bugs
- small fixes across code base
Breaking changes
- internal deps point to make based boost build
Release 1.1.0
Version 1.1.0
Changes and improvements
batchfilter added (#150)slicefilter added (#141)formatfilter added (#145)tojsonfilter added (#142)striptagsfilter added (#177)centerfilter added (#179)xmlattrfilter added (#143)raw/endrawtags added (#148)- repeat string operator added (e. g.
'a' * 5will produce'aaaaa') (#162) - support for templates metadata (
meta/endmetatags) added (#107) -fPICflag added to Linux build configurationJINJA2CPP_BUILD_SHAREDflag added in order to build shared version of Jinja2C++ library
Fixed bugs
- Fix behavior of lstripblock/trimblocks global settings. Now it fully corresponds to the origina jinja2 (#159)
- Fix bug with rendering parent
blockcontent if child doesn't override this block (#161) - Fix compilation issues with user-defined callables with number of arguments more than 2 (#163)
- Fix access to global Jinja2 functions from included/extended templates (#166)
- Fix point of evaluation of macro params
- Fix looping over the strings (#180)
- Cleanup warnings
Breaking changes
- From now with C++17 standard enabled Jinja2C++ uses standard versions of types
variant,string_viewandoptional
Release 1.0.0
Changes and improvements
defaultattribute added to themapfilter (#48)- escape sequences support added to the string literals (#49)
- arbitrary ranges, generated sequences, input iterators etc. now can be used with
GenericListtype (#66) - nonstd::string_view is now one of the possible types for the
Value filtertag support added to the template parser (#44)escapefilter support added to the template parser (#140)capitalizefilter support added to the template parser (#137)- multiline version of
settag added to the parser (#45) - added built-in reflection for nlohmann json and rapid json libraries (#78)
loop.depthandloop.depth0variables support added- {fmt} is now used as a formatting library instead of iostreams
- robin hood hash maps is now used for internal value storage
- rendering performance improvements
- template cache implemented in
TemplateEnv - ability to define global variables in
TemplateEnvadded - user-defined callables now can accept global context via
*contextspecial param - MinGW, clang >= 7.0, XCode >= 9, gcc >= 7.0 are now officially supported as a target compilers (#79)
Fixed bugs
- Fixed pipe (
|) operator precedence (#47) - Fixed bug in internal char <-> wchar_t converter on Windows
- Fixed crash in parsing
endblocktag - Fixed scope control for
includeandfortags - Fixed bug with macros call within expression context
Release 0.9.2
Major changes
- User-defined callables implemented. Now you can define your own callable objects, pass them as input parameters and use them inside templates as regular (global) functions, filters or testers. See details here: https://jinja2cpp.dev/docs/usage/ud_callables.html
- Now you can define global (template environment-wide) parameters which are accessible for all templates bound to this environment.
include,importandfromstatements implemented. Now it's possible to include other templates and use macros from other templates.withstatement implementeddostatement implemented- Sample build projects for various Jinja2C++ usage variants created: https://github.com/jinja2cpp/examples-build
- Documentation site created for Jinja2C++: https://jinja2cpp.dev/
Minor changes
- Render-time error handling added
- Dependency management mode added to the build script
- Fix bugs with error reporting during the parse time
- Upgraded versions of external dependencies
Breaking changes
RenderAsStringmethod now returnsnonstd::expectedinstead of regularstd::string- Templates with
import,extendsandincludegenerate errors if parsed withoutTemplateEnvset - Release bundles (archives) are configured with
externaldependency management mode by default
Release 0.9.1
Release 0.9
- Support of 'extents'/'block' statements
- Support of 'macro'/'call' statements
- Rich error reporting
- Support for recursive loops
- Support for space control before and after control blocks
- Improve reflection