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
ToJson
filter 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
batch
filter added (#150)slice
filter added (#141)format
filter added (#145)tojson
filter added (#142)striptags
filter added (#177)center
filter added (#179)xmlattr
filter added (#143)raw
/endraw
tags added (#148)- repeat string operator added (e. g.
'a' * 5
will produce'aaaaa'
) (#162) - support for templates metadata (
meta
/endmeta
tags) added (#107) -fPIC
flag added to Linux build configurationJINJA2CPP_BUILD_SHARED
flag 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
block
content 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_view
andoptional
Release 1.0.0
Changes and improvements
default
attribute added to themap
filter (#48)- escape sequences support added to the string literals (#49)
- arbitrary ranges, generated sequences, input iterators etc. now can be used with
GenericList
type (#66) - nonstd::string_view is now one of the possible types for the
Value
filter
tag support added to the template parser (#44)escape
filter support added to the template parser (#140)capitalize
filter support added to the template parser (#137)- multiline version of
set
tag added to the parser (#45) - added built-in reflection for nlohmann json and rapid json libraries (#78)
loop.depth
andloop.depth0
variables 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
TemplateEnv
added - user-defined callables now can accept global context via
*context
special 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
endblock
tag - Fixed scope control for
include
andfor
tags - 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
,import
andfrom
statements implemented. Now it's possible to include other templates and use macros from other templates.with
statement implementeddo
statement 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
RenderAsString
method now returnsnonstd::expected
instead of regularstd::string
- Templates with
import
,extends
andinclude
generate errors if parsed withoutTemplateEnv
set - Release bundles (archives) are configured with
external
dependency 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