Inja v3.1.0 Release Notes

Release Date: 2020-09-28 // 7 months ago
  • ๐ŸŽ First and foremost, this update improves the performance of template rendering, in particular of loops and variable printing.

    ๐Ÿฑ โšก Improvements

    • โž• Added assignment statements to set a variable within a template.
    • โž• Added whitespace control for expressions (#162, thanks to @tindy2013).
    • โž• Added void callbacks without return values, e.g. for debugging purposes.

    ๐Ÿฑ ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixed an issue of parsing nested functions (#159, thanks to @DeiRex75).
    • ๐Ÿ›  Fixed use of parenthesis in combination with logic operators (#155, thanks to @DeiRex75).
    • ๐Ÿ›  Fixed an issue with loop data in the render_to function (#165, thanks to @fishjump)

    ๐Ÿฑ ๐Ÿ”จ Further Changes

    • โ†” Integrated Codacity into CI and fixed several static analyzer issues.
    • ๐Ÿ›  Fixed several compiler warnings (#169, thanks to @tindy2013).

Previous changes from v3.0.0

  • ๐Ÿฑ Time for a new major version of inja! ๐ŸŽ‰

    ๐Ÿฑ โšก๏ธ Improvements

    • ๐Ÿ“œ A new core parser and renderer based on an abstract syntax tree (fixing #149), allowing for:
      • Complex expressions of functions, logic expressions and statements.
      • Mathematical functions in templates.
      • Variadic callbacks with unknown number of arguments.
    • ๐Ÿ“œ Show parsing and render error positions in template (#134, thanks to @sabelka).
    • ๐ŸŽ Performance improvements, in particular for large json data (#146, thanks to @craigpepper) and large template files.
    • โšก๏ธ Update nlohmann/json to version 3.8.0 (#144, also thanks to @craigpepper).
    • ๐Ÿ‘Œ Support for GCC 4.8 (#150, thanks to @rafadesu)

    ๐Ÿฑ ๐Ÿ”จ Further Changes

    • ๐Ÿ‘ท Move all CI to GitHub Actions.
    • ๐Ÿ— Switching from Catch to Doctest as our testing framework with much better build times.

    ๐Ÿฑ ๐Ÿ”ฅ Breaking Changes

    • ๐Ÿ’… We've removed the json pointer style for variables in templates.
    • We now require nlohmann/json with a minimum version of 3.8.0.