SXA built-in token tools to be used with rendering variant templates
You might came across Variant Template Field when going through rendering variants insert options and wondered, what is that? Variant Template Field is a special field that uses NVelocity templates (supported by Sitecore.NVelocity.dll) in order to render the value.

One of the MVPs - Michael West - has briefly mentioned built-in token tools coming with SXA. I decided to take a look on these tools. I found them in Sitecore.XA.Foundation.Variants.Abstractions.dll under Sitecore.XA.Foundation.Variants.Abstractions.NVelocityExtensions namespace. Here's their code:
public class DateTool
{
public string Format(DateTime dateTime, string format) => dateTime.ToString(format);
public string Format(string dateTimeString, string format)
{
DateTime time = DateUtil.IsoDateToDateTime(dateTimeString, DateTime.MinValue);
if (time != DateTime.MinValue)
{
return time.ToString(format);
}
return dateTimeString;
}
}
and
public sealed class NumberTool
{
public string Format(double value, string format) => value.ToString(format, CultureInfo.InvariantCulture);
public string Format(int value, string format) => value.ToString(format, CultureInfo.InvariantCulture);
public string Format(float value, string format) => value.ToString(format, CultureInfo.InvariantCulture);
}
DateTool is used internally by another field type - VariantDateField, that's how it works. Let's say I have a template:

and it renders to:

But you may also use it from templates (since it is already mapped) for example combining with your custom tools (not just this one line):

resulting with:

It is also briefly mentioned in the official documentation.





