public static string AutoHyperlinkHtml(string html, bool noFollow, HtmlLinkEvaluator htmlLinkEvaluator) { return(FullATagOrTagOrInformalUrlRegex.Replace(html, delegate(Match match) { if (!FullATagOrTagRegex.IsMatch(match.Value)) { return HyperlinkUrl(match.Value, noFollow, htmlLinkEvaluator); } return match.Value; })); }
private static string HyperlinkUrl(string url, bool noFollow, HtmlLinkEvaluator htmlLinkEvaluator) { string linkText = url; string linkUrl; StringBuilder linkAttributes = null; if (InformalUrlPrefixRegex.IsMatch(linkText)) { linkUrl = linkText; } else if (InformalUrlEmailRegex.IsMatch(linkText)) { linkUrl = Uri.UriSchemeMailto + Colon + linkText; } else if (string.Compare(linkText.Substring(0, 3), Uri.UriSchemeFtp, true, CultureInfo.InvariantCulture).Equals(0)) { linkUrl = Uri.UriSchemeFtp + Uri.SchemeDelimiter + linkText; } else { linkUrl = Uri.UriSchemeHttp + Uri.SchemeDelimiter + linkText; } if (htmlLinkEvaluator != null) { var htmlLink = htmlLinkEvaluator(new HtmlLink(linkUrl, linkText)); linkUrl = htmlLink.Url; linkText = htmlLink.Text; if (!htmlLink.Attributes.Count.Equals(0)) { linkAttributes = new StringBuilder(); foreach (string attribute in htmlLink.Attributes.Keys) { linkAttributes.AppendFormat(CultureInfo.InvariantCulture, FormatAttribute, attribute, htmlLink.Attributes[attribute]); } } } return(string.Format(CultureInfo.InvariantCulture, FormatReplaceUrl, noFollow ? NoFollowAttribute : string.Empty, linkAttributes, linkUrl, linkText)); }
public static string AutoHyperlinkHtml(string html, HtmlLinkEvaluator htmlLinkEvaluator) { return AutoHyperlinkHtml(html, false, htmlLinkEvaluator); }
public static string AutoHyperlinkText(string text, bool noFollow, HtmlLinkEvaluator htmlLinkEvaluator) { return InformalUrlRegex.Replace(text, match => HyperlinkUrl(match.Value, noFollow, htmlLinkEvaluator)); }
public static string AutoHyperlinkText(string text, HtmlLinkEvaluator htmlLinkEvaluator) { return AutoHyperlinkText(text, false, htmlLinkEvaluator); }
private static string HyperlinkUrl(string url, bool noFollow, HtmlLinkEvaluator htmlLinkEvaluator) { string linkText = url; string linkUrl; StringBuilder linkAttributes = null; if(InformalUrlPrefixRegex.IsMatch(linkText)) { linkUrl = linkText; } else if(InformalUrlEmailRegex.IsMatch(linkText)) { linkUrl = Uri.UriSchemeMailto + Colon + linkText; } else if(string.Compare(linkText.Substring(0, 3), Uri.UriSchemeFtp, true, CultureInfo.InvariantCulture).Equals(0)) { linkUrl = Uri.UriSchemeFtp + Uri.SchemeDelimiter + linkText; } else { linkUrl = Uri.UriSchemeHttp + Uri.SchemeDelimiter + linkText; } if(htmlLinkEvaluator != null) { var htmlLink = htmlLinkEvaluator(new HtmlLink(linkUrl, linkText)); linkUrl = htmlLink.Url; linkText = htmlLink.Text; if(!htmlLink.Attributes.Count.Equals(0)) { linkAttributes = new StringBuilder(); foreach(string attribute in htmlLink.Attributes.Keys) { linkAttributes.AppendFormat(CultureInfo.InvariantCulture, FormatAttribute, attribute, htmlLink.Attributes[attribute]); } } } return string.Format(CultureInfo.InvariantCulture, FormatReplaceUrl, noFollow ? NoFollowAttribute : string.Empty, linkAttributes, linkUrl, linkText); }
public static string AutoHyperlinkHtml(string html, bool noFollow, HtmlLinkEvaluator htmlLinkEvaluator) { return FullATagOrTagOrInformalUrlRegex.Replace(html, delegate(Match match) { if(!FullATagOrTagRegex.IsMatch(match.Value)) { return HyperlinkUrl(match.Value, noFollow, htmlLinkEvaluator); } return match.Value; }); }
public static string AutoHyperlinkText(string text, bool noFollow, HtmlLinkEvaluator htmlLinkEvaluator) { return(InformalUrlRegex.Replace(text, match => HyperlinkUrl(match.Value, noFollow, htmlLinkEvaluator))); }
public static string AutoHyperlinkText(string text, HtmlLinkEvaluator htmlLinkEvaluator) { return(AutoHyperlinkText(text, false, htmlLinkEvaluator)); }
public static string AutoHyperlinkHtml(string html, HtmlLinkEvaluator htmlLinkEvaluator) { return(AutoHyperlinkHtml(html, false, htmlLinkEvaluator)); }