diff --git a/Fluid.Tests/StringFiltersTests.cs b/Fluid.Tests/StringFiltersTests.cs index 51cd1e56..68b9968c 100644 --- a/Fluid.Tests/StringFiltersTests.cs +++ b/Fluid.Tests/StringFiltersTests.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using System.Threading.Tasks; using Fluid.Values; using Fluid.Filters; @@ -32,7 +32,7 @@ public void Capitalize() var result = StringFilters.Capitalize(input, arguments, context); - Assert.Equal("Hello World", result.Result.ToStringValue()); + Assert.Equal("Hello world", result.Result.ToStringValue()); } [Fact] diff --git a/Fluid/Filters/StringFilters.cs b/Fluid/Filters/StringFilters.cs index ca6d58b9..a12d5781 100644 --- a/Fluid/Filters/StringFilters.cs +++ b/Fluid/Filters/StringFilters.cs @@ -54,13 +54,9 @@ public static ValueTask Capitalize(FluidValue input, FilterArguments var source = input.ToStringValue().ToCharArray(); - for (var i = 0; i < source.Length; i++) + if (source.Length > 0 && char.IsLetter(source[0])) { - char c; - if (i == 0 || char.IsWhiteSpace(c = source[i - 1]) || c == '-' || c == '.') - { - source[i] = char.ToUpper(source[i], context.CultureInfo); - } + source[0] = char.ToUpper(source[0], context.CultureInfo); } return CreateStringValue(new string(source), input);