CmsKit - Slugify Implementation

pull/7226/head
enisn 5 years ago
parent 92b86a8eca
commit fca418fb3f

@ -9,7 +9,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Unidecode.NET" Version="2.1.0" />
<PackageReference Include="Slugify.Core" Version="3.0.0" />
</ItemGroup>
<ItemGroup>

@ -1,4 +1,5 @@
using System.Text.RegularExpressions;
using Slugify;
using System.Text.RegularExpressions;
using Unidecode.NET;
namespace Volo.CmsKit.Blogs.Extensions
@ -7,24 +8,9 @@ namespace Volo.CmsKit.Blogs.Extensions
{
public static string NormalizeAsUrlSlug(this string value)
{
value = value.ToLowerInvariant();
var slugHelper = new SlugHelper();
// Unidecode for non-latin characters
value = value.Unidecode();
// Replace spaces
value = Regex.Replace(value, @"\s", "-", RegexOptions.Compiled);
// Remove invalid chars
value = Regex.Replace(value, @"[^a-z0-9\s-_]", "", RegexOptions.Compiled);
// Trim dashes & dots
value = value.Trim('-', '_', '.');
// Replace double occurences of - or _
value = Regex.Replace(value, @"([-_]){2,}", "$1", RegexOptions.Compiled);
return value;
return slugHelper.GenerateSlug(value);
}
}
}

Loading…
Cancel
Save