Skip to content

0.7.0

Compare
Choose a tag to compare
@kylef kylef released this 29 Nov 12:28
· 347 commits to master since this release

New documentation website: https://stencil.fuller.li

Breaking

  • TemplateLoader has been renamed to FileSystemLoader. The
    loadTemplate(s) methods are now throwing and now take labels for the name
    and names arguments.
  • Many internal classes are no longer public. Some APIs were previously
    accessible due to earlier versions of Swift requiring the types to be public
    to be able to test. Now we have access to @testable these can correctly be
    private.
  • {% ifnot %} tag is now deprecated, please use {% if not %} instead.

Enhancements

  • Variable lookup now supports introspection of Swift types. You can now lookup
    values of Swift structures and classes inside a Context.

  • If tags can now use prefix and infix operators such as not, and, or,
    ==, !=, >, >=, < and <=.

      {% if one or two and not three %}
  • You may now register custom template filters which make use of arguments.

  • There is now a default filter.

    Hello {{ name|default:"World" }}
  • There is now a join filter.

    {{ value|join:", " }}
  • {% for %} tag now supports filters.

    {% for user in non_admins|default:admins %}
      {{ user }}
    {% endfor %}

Bug Fixes

  • Variables ({{ variable.5 }}) that reference an array index at an unknown
    index will now resolve to nil instead of causing a crash.
    #72
  • Templates can now extend templates that extend other templates.
    #60
  • If comparisons will now treat 0 and below numbers as negative.