public void SetValue(string name, FluidValue value) { _properties ??= new Dictionary <string, FluidValue>(); _properties[name] = value; }
public ValueTask <FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, LiquidTemplateContext ctx) { return(new ValueTask <FluidValue>(new StringValue(_markdownService.ToHtml(input.ToStringValue())))); }
public static FluidValue Sort(FluidValue input, FilterArguments arguments, TemplateContext context) { var member = arguments.At(0).ToStringValue(); return(new ArrayValue(input.Enumerate().OrderBy(x => x.GetValue(member, context).ToObjectValue()).ToArray())); }
public static FluidValue Prepend(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(arguments.At(0).ToStringValue() + input.ToStringValue())); }
public TemplateContext SetValue(string name, FluidValue value) { LocalScope.SetValue(name, value); return(this); }
static async ValueTask <FluidValue> Awaited(Task <IShape> task) { return(FluidValue.Create(await task)); }
public static FluidValue RStrip(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().TrimEnd())); }
public static ValueTask <FluidValue> Slice(FluidValue input, FilterArguments arguments, TemplateContext context) { var firstArgument = arguments.At(0); var secondArgument = arguments.At(1); if (!firstArgument.IsInteger()) { throw new ArgumentException("Slice: offset argument is an invalid number"); } if (arguments.Count > 1 && !secondArgument.IsInteger()) { throw new ArgumentException("Slice: length argument is not a number"); } var requestedStartIndex = Convert.ToInt32(firstArgument.ToNumberValue()); var requestedLength = Convert.ToInt32(secondArgument.Or(NumberValue.Create(1)).ToNumberValue()); if (input.Type == FluidValues.Array) { if (requestedLength <= 0) { return(ArrayValue.Empty); } var sourceArray = ((ArrayValue)input).Values; var sourceLength = sourceArray.Length; if (requestedStartIndex < 0 && Math.Abs(requestedStartIndex) > sourceLength) { return(ArrayValue.Empty); } var startIndex = requestedStartIndex < 0 ? Math.Max(sourceLength + requestedStartIndex, 0) : Math.Min(requestedStartIndex, sourceLength); var length = requestedLength > sourceLength ? sourceLength : requestedLength; length = startIndex > 0 && length + startIndex > sourceLength ? length - startIndex : length; var result = new FluidValue[length]; Array.Copy(sourceArray, startIndex, result, 0, length); return(new ArrayValue(result)); } else { if (requestedLength <= 0) { return(BlankValue.Instance); } var sourceString = input.ToStringValue(); var sourceStringLength = sourceString.Length; if (requestedStartIndex < 0 && Math.Abs(requestedStartIndex) > sourceStringLength) { return(BlankValue.Instance); } var startIndex = requestedStartIndex < 0 ? Math.Max(sourceStringLength + requestedStartIndex, 0) : Math.Min(requestedStartIndex, sourceStringLength); var length = requestedLength > sourceStringLength ? sourceStringLength : requestedLength; length = startIndex > 0 && length + startIndex > sourceStringLength ? length - startIndex : length; return(new StringValue(sourceString.Substring(startIndex, length))); } }
public static ValueTask <FluidValue> Upcase(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().ToUpper())); }
public async ValueTask <FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, LiquidTemplateContext ctx) { var content = await _liquidTemplateManager.RenderStringAsync(input.ToStringValue(), _htmlEncoder, arguments.At(0)); return(new StringValue(content, false)); }
public static ValueTask <FluidValue> Replace(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().Replace(arguments.At(0).ToStringValue(), arguments.At(1).ToStringValue()))); }
public ValueTask <FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, LiquidTemplateContext context) { var urlHelper = _urlHelperFactory.GetUrlHelper(context.ViewContext); return(new ValueTask <FluidValue>(new StringValue((urlHelper).Content(input.ToStringValue())))); }
internal override FluidValue Evaluate(FluidValue leftValue, FluidValue rightValue) { return(leftValue is NumberValue && rightValue is NumberValue ? NumberValue.Create(leftValue.ToNumberValue() - rightValue.ToNumberValue()) : NilValue.Instance); }
public FluidValue GetIndex(FluidValue index) { return(GetValue(index.ToString())); }
public static FluidValue Times(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new NumberValue(input.ToNumberValue() * arguments.At(0).ToNumberValue())); }
public static ValueTask <FluidValue> Append(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue() + arguments.At(0).ToStringValue())); }
public ValueTask <FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, TemplateContext ctx) {
public static ValueTask <FluidValue> LStrip(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().TrimStart())); }
public static FluidValue Downcase(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().ToLower())); }
public override bool Equals(FluidValue other) { return(false); }
public static FluidValue NewLineToBr(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().Replace("\r\n", "<br />").Replace("\n", "<br />"))); }
public static FluidValue DividedBy(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new NumberValue((int)input.ToNumberValue() / Convert.ToInt32(arguments.At(0).ToNumberValue()))); }
public static FluidValue Remove(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new StringValue(input.ToStringValue().Replace(arguments.At(0).ToStringValue(), ""))); }
public static FluidValue Floor(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new NumberValue(Math.Floor(input.ToNumberValue()))); }
public TemplateContext SetValue(string name, object value) { return(SetValue(name, FluidValue.Create(value))); }
public static FluidValue Modulo(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new NumberValue(Convert.ToInt32(input.ToNumberValue()) % Convert.ToInt32(arguments.At(0).ToNumberValue()))); }
public ValueTask <FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, TemplateContext ctx) { var text = input.ToStringValue(); return(new ValueTask <FluidValue>(new StringValue(_slugService.Slugify(text)))); }
public static FluidValue Round(FluidValue input, FilterArguments arguments, TemplateContext context) { var digits = Convert.ToInt32(arguments.At(0).Or(new NumberValue(0)).ToNumberValue()); return(new NumberValue(Math.Round(input.ToNumberValue(), digits))); }
public static FluidValue Uniq(FluidValue input, FilterArguments arguments, TemplateContext context) { return(new ArrayValue(input.Enumerate().Distinct().ToArray())); }
public static TemplateContext SetValue(this TemplateContext context, string name, object value) { return(context.SetValue(name, FluidValue.Create(value, context.Options))); }