Releases: pantor/inja
Releases · pantor/inja
Version 3.4
⚡ Improvements
- With this release, inja switched to C++17 and makes extensive use of
string_view
without providing a polyfill for older compilers. - Added an include callback to make finding templates via
include
more flexible. - Added options to Meson build system, e.g. for disabling building tests (#216, thanks to @bbastin and @tristan957).
- Added a check in the template parsing for too few arguments.
🐛 Bug Fixes
- Fixed parsing of expression enclosed by paranthesis (#247, thanks to @kubo).
- Fixed integer overflow by using the underlying json data types.
- Fixed the parsing of numbers with whitespaces in between (#219).
- Fixed searching for included templates in the input directory (thanks to @davidchall).
- Fixed warnings in MSVC 2019 (#230, thanks to @stanmihai4).
Version 3.3
Version 3.2
🐛 Bug Fixes
- Do not install nlohmann json if an external version is used (#177, thanks @matusnovak).
- Fixed issues with variable names starting with
$
or@
(#185).
⚡ Improvements
- Added the
INJA_NOEXCEPTION
macro that disables throwing exceptions throughout inja (#181).
🔨 Further Changes
- Improve Readme examples and vectorize logo.
- Fixed compiler warnings for unused size variable (#183).
Version 3.1
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).
Version 3.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.
Version 2.2
We've got a round of fixes and cool improvements for this release.
⚡️ Improvements
- Add whitespace control (#116, thanks to @jpcima).
- Added new functions: select element at position, string length.
- Throw exception if file cannot be opened (#117, thanks to @thomastrapp).
- Bump to newer nlohmann/json (#107, thanks to @JehandadKhan).
🐛 Bug Fixes
- Fixed scope when including templates (#118, thanks to @thomastrapp).
- Fixed Visual Studio compiler warnings (#119, thanks to @Dodzey).
🔨 Further Changes
Version 2.1
✨ Further Improvements
There are a couple of great improvements for inja in this release:
- We've added a first API documentation.
- Thanks to @gracicot and @mhhollomon, we improved cmake and meson target exports (#83, #86).
- I've added a string_view polyfill for C++11 to C++14.
- You can now use cget for installing inja (#88). Thanks @pfultz2!
- Warnings in appveyor has been cleaned.
🔥 And a small breaking change in the development pipeline: The CMake option for disabling tests has been renamed from BUILD_TEST
to BUILD_TESTING
.
Version 2.0.1
Version 2.0
Finally, this is the next major version of Inja. After reworking most of its internals, Inja is now up to two orders of magnitude faster than v1! (#67)
✨Further Improvements
- We've added type checks as builtin functions (#64).
- Loop variables are now supported in inja templates (#52).
- Include in-memory templates (#47).
- Inja is now easier to integrate either with the vcpkg (#45) or conan (#43) package manager.
🔥 Breaking Changes
Inja now requires string_view
from C++17.
Version 1.0
This is the first stable release of inja! 🎉
Major improvements over the last released version are:
- Added callbacks (#5, #15)
- New functions: min, max, sort, first, last, conversion to string and number (#22)
- Added loops over std::map / json objects
- Fixed lots of errors and warnings (#18)
- Better error messages
- More tests and compilers with CI, additional testing with meson
- Updated dependencies to JSON 3.1 and Catch 2.1