Skip to content

Latest commit

 

History

History
241 lines (175 loc) · 9.82 KB

File metadata and controls

241 lines (175 loc) · 9.82 KB

📝 Release notes

0.11.0

July 25th, 2026

0.10.0

June 27th, 2025

  • Support &Value as second argument to functions. This allows you to register functions like upon::Value::eq.

  • Support access and optional access from scope. This extends the syntax for variable access in expressions to support the dot (.) and optional dot (?.) prefixes for the first segment of paths.

    The following are equivalent:

    {{ user }}
    {{ .user }}
    

    But now you can also use the following, which will return Value::None if user is not defined:

    {{ ?.user }}
    
  • Add support for in-place function calls. Previously, function calls only supported the "filter" syntax, which always required at least one argument to be "piped" into the call. This change adds an additional name and parenthesized argument syntax including those without arguments. For example code like the following is now valid:

    {{ now() }}
    
    {{ item.price | format: get_currency(user.id) }}
    
  • Support parenthesized expressions. This allows you to use parentheses in inline expressions, such as:

    {{ content | replace: "John Smith", (user.name | title) }}
    
  • Rename "filters" to "functions". "Filter" now refers to the way the function is used, i.e. the pipe syntax {{ value | function: arg1, arg2 }}. This change is in preparation for a new syntax for calling functions.

0.9.0

February 8th, 2025

0.8.1

February 23rd, 2024

0.8.0

October 28th, 2023

Features

0.7.1

July 23rd, 2023

Features

Fixes

0.7.0

July 23rd, 2023

Features

  • Redesign the render API This improvement allows us to add more configuration to the rendering process in the future. It also prevents the need for a proliferation of rendering functions. The new public Renderer struct is created using one of the three functions: render, render_from, or render_from_fn. And then the renderer can be consumed using .to_string() or .to_writer(..).

  • Support ?. optional chaining operator

  • Allow values to be fetched lazily This allows you to provide the global context from an outside source during rendering.

  • Replace ValueCow::as_bool with truthiness function This change implements a truthiness function for evaluating conditionals. None, false, 0 integer and 0.0 float, empty string, list, and map as falsy. Everything else is truthy.

    Contributed by @lunabunn

0.6.0

November 20th, 2022

Features

Fixes

0.5.0

November 14th, 2022

Features

Fixes

0.4.0

October 3rd, 2022

Features

Fixes