Browse Source

CmsKit - Slugify Implementation

pull/7226/head
enisn 6 years ago
parent
commit
fca418fb3f
  1. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
  2. 22
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/Extensions/UrlSlugExtensions.cs

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj

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

22
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/Extensions/UrlSlugExtensions.cs

@ -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