- Added
split()builtin - Added support for byte arrays, represented as
ByteStringon the Haskell side
- Added builtin
apply, making it possible to pass argument lists as arrays
- Added builtin
regexmodule for POSIX regular expressions support
- Expose some internals of the
Runtype and the default implementations of built-in functions / filters
- Added built-ins:
partial,zip,zipwith,compose
- Now compiles on GHC 8.4
- CLI: added a
system()template function (for spawning subprocesses) - CLI accepts YAML
- Added
isoperator (also makes Ginger conform to Jinja2 test syntax) - Various bugfixes
- New builtins:
escaped,in, Python-style boolean operators,divisibleBy,even,odd, and more - Boolean literals now also accepted in caps
- Improved documentation
GValinstances forInteger- Overridable delimiters
- Make concat() / ~ more generic (now also concatenates lists and dictionaries)
- CLI omits printing of
nullresults. Useful when using as a filter. - Fixed excessive newlines in CLI output
- Expose parser error position details
- '|json' filter
StripBlocksandLTrimBlocksoptions+tag modifier to override whitespace stripping
keepTrailingNewlinesoption- Ability to pass parser options into parseGinger
- Runtime warnings
- Documentation fixes
- Haddock documentation fix
- Exceptions / exception handling.
- Marshalling and hoisting: it is now possible to fully marshal
GVals between arbitrary carrier monads, as long as suitable conversion functions are provided.
- Added map(), upper(), lower() functions
- Documentation fixes
- Release-related fixups
- Bugfixes wrt indentation mode
- Expose parser error pretty-printer from the library
- Indentation mode:
{% indent %}introduces an indentation context
- Statements can now return values
- Added
doexpressions (lift statements into expressions)
- Fixed a parser bug related to whitespace in script mode
- Fixed the way local scopes work in script mode
- Documented script mode
- Script mode: alternative syntax that makes it easier to use Ginger as a scripting language, used inside {% script %} blocks.
- Various dependency issues fixed
- Added a
{% switch %}statement