Freigeben über


Slug Helper

Als Slug bezeichnet man den URL freundlichen Teil eines Blog Posts oder Artikels. Blog und CMS Systeme benutzen oft den Titel als Teil der URL. Da der Titel über Sonderzeichen verfügen kann, müssen diese für eine URL entsprechend kodiert werden. Ein Slug hilft hierbei den Post wiederzufinden. Die Seite https://blogs.msdn.com/webmatrix ist ebenso mit einer eigenen Blog Implementierung und Slug Implementierung ausgestattet.

Die Verwendung ist denkbar einfach. Speichert man den Slug Helper z.B. in die Datei Slug.cshtml im Verzeichnis App_Code, so kann man aus der ASP.NET Web Page entsprechend den Helper benutzen

 @Slug.Generate(“Titel mit häufigen Sonderzeichen!”)

Daraus wird entsprechend der Slug

 titel-mit-haeufigen-sonderzeichen

generiert.

How-To Video

WebMatrix Slug Helper from Dariusz on Vimeo.

Kurzes Video zum WebMatrix Slug Helper, mehr Details auf https://www.webmatrixhelper.net

Source Code

    1: @using System.Text.RegularExpressions;
    2: @*
    3:     Code by Kamran Ayub, from his post at
    4:     https://www.intrepidstudios.com/blog/2009/2/10/function-to-generate-a-url-friendly-string.aspx
    5:     just added German special characters
    6: *@
    7:  
    8: @helper  Generate( string title, int maxLength = 50 ) 
    9: {
   10:     var slug = title.ToLower();
   11:     slug = Regex.Replace( slug, "ä", "ae");
   12:     slug = Regex.Replace( slug, "ü", "ue");
   13:     slug = Regex.Replace( slug, "ö", "oe");
   14:     slug = Regex.Replace( slug, "ß", "ss");
   15:     slug = Regex.Replace( slug, @"[^a-z0-9\s-]", "");
   16:     slug = Regex.Replace( slug, @"[\s-]+", " ").Trim();
   17:     slug = slug.Substring( 0, slug.Length <= maxLength ? slug.Length : maxLength).Trim();
   18:     slug = Regex.Replace( slug, @"\s", "-");
   19:     @:@slug    
   20: }

DotNetKicks-DE Image