Jinja2Cpp Versions Save

Jinja2 C++ (and for C++) almost full-conformance template engine implementation

1.3.1

5 months ago

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

1.3.0-beta

5 months ago

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: https://github.com/jinja2cpp/Jinja2Cpp/compare/1.2.1...1.3.0-beta

1.2.1

2 years ago

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

1.2.0-beta

2 years ago

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

1.1.0

4 years ago

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

1.0.0

4 years ago

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

0.9.2

4 years ago

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

0.9.1

5 years ago

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

v0.9

5 years ago
  • 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

v0.6-alpha

5 years ago