using System.Text.RegularExpressions; using System.Web; namespace atakanozbancom.Models.classes { public static class DescriptionFormatter { private static readonly Regex LinkPattern = new Regex( @"\[([^\]\r\n]{1,200})\]\((https?://[^\s)]{1,2000})\)", RegexOptions.Compiled | RegexOptions.IgnoreCase); public static string ToSafeHtml(string raw) { if (string.IsNullOrWhiteSpace(raw)) return string.Empty; var encoded = HttpUtility.HtmlEncode(raw); var withLinks = LinkPattern.Replace(encoded, m => { var label = m.Groups[1].Value; var url = m.Groups[2].Value; return $"{label}"; }); var withBreaks = withLinks .Replace("\r\n", "\n") .Replace("\n", "
"); return withBreaks; } } }