Skip to content

Releases: jinja2cpp/Jinja2Cpp

Release 1.3.1

19 Nov 20:51
Compare
Choose a tag to compare

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)

19 Nov 20:08
Compare
Choose a tag to compare
Release 1.3.0 (Beta) Pre-release
Pre-release

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

01 Sep 18:45
4b86a7c
Compare
Choose a tag to compare

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)

26 Aug 18:22
dae174c
Compare
Choose a tag to compare
Release 1.2.0 (Beta) Pre-release
Pre-release

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

13 Jan 18:24
Compare
Choose a tag to compare

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 configuration
  • JINJA2CPP_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 and optional

Release 1.0.0

01 Oct 21:07
4870182
Compare
Choose a tag to compare

Changes and improvements

  • default attribute added to the map 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 and loop.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 and for tags
  • Fixed bug with macros call within expression context

Release 0.9.2

20 Jun 17:25
Compare
Choose a tag to compare

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 and from statements implemented. Now it's possible to include other templates and use macros from other templates.
  • with statement implemented
  • do 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 returns nonstd::expected instead of regular std::string
  • Templates with import, extends and include generate errors if parsed without TemplateEnv set
  • Release bundles (archives) are configured with external dependency management mode by default

Release 0.9.1

27 Oct 14:59
664cc3b
Compare
Choose a tag to compare

Download

  • applymacro filter added which allows to apply arbitrary macro as a filter
  • Dependencies to boost almost removed from the library public interface
  • CMake scripts improved
  • Various bugs fixed
  • Improve reflection
  • Warnings cleanup
  • Library is ready for conan.io packaging

Release 0.9

31 Aug 20:39
9550971
Compare
Choose a tag to compare
  • 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

Release 0.6 (alpha)

05 Jul 19:28
84af922
Compare
Choose a tag to compare
Release 0.6 (alpha) Pre-release
Pre-release
  • A lot of filters has been implemented. Full set of supported filters listed here: #7
  • A lot of testers has been implemented. Full set of supported testers listed here: #8
  • 'Contatenate as string' operator ('~') has been implemented
  • For-loop with 'if' condition has been implemented
  • Fixed some bugs in parser