public virtual StringBuffer Render(MarkdownEngine engine, MarkdownLinkInlineToken token, MarkdownInlineContext context) { if (engine.Options.Sanitize) { string prot = null; try { prot = Regex.Replace(StringHelper.DecodeURIComponent(StringHelper.Unescape(token.Href)), @"[^\w:]", string.Empty).ToLower(); } catch (Exception) { return(string.Empty); } if (prot.IndexOf("javascript:") == 0 || prot.IndexOf("vbscript:") == 0) { return(string.Empty); } } var result = (StringBuffer)"<a href=\"" + token.Href + "\""; if (!string.IsNullOrEmpty(token.Title)) { result = result + " title=\"" + token.Title + "\""; } result += ">"; if (token.ShouldApplyInlineRule) { engine.SwitchContext(MarkdownInlineContext.IsInLink, true); result += engine.Mark(token.Text); engine.SwitchContext(MarkdownInlineContext.IsInLink, false); } else { result += token.Text; } result += "</a>"; return(result); }
public virtual StringBuffer Render(IMarkdownRenderer renderer, MarkdownLinkInlineToken token, MarkdownInlineContext context) { if (renderer.Options.Sanitize) { string prot = null; try { prot = Regex.Replace(StringHelper.DecodeURIComponent(token.Href), @"[^\w:]", string.Empty).ToLower(); } catch (Exception) { return(string.Empty); } if (prot.IndexOf("javascript:") == 0 || prot.IndexOf("vbscript:") == 0) { return(string.Empty); } } var result = (StringBuffer)"<a href=\"" + StringHelper.Escape(token.Href) + "\""; if (!string.IsNullOrEmpty(token.Title)) { result = result + " title=\"" + StringHelper.Escape(token.Title) + "\""; } result = AppendAttribute(result, "data-raw-source", token.SourceInfo.Markdown); result = AppendSourceInfo(result, renderer, token); result += ">"; foreach (var item in token.Content) { result += renderer.Render(item); } result += "</a>"; return(result); }
public virtual StringBuffer Render(IMarkdownRenderer engine, MarkdownLinkInlineToken token, MarkdownInlineContext context) { if (engine.Options.Sanitize) { string prot = null; try { prot = Regex.Replace(StringHelper.DecodeURIComponent(StringHelper.Unescape(token.Href)), @"[^\w:]", string.Empty).ToLower(); } catch (Exception) { return(string.Empty); } if (prot.IndexOf("javascript:") == 0 || prot.IndexOf("vbscript:") == 0) { return(string.Empty); } } var result = (StringBuffer)"<a href=\"" + token.Href + "\""; if (!string.IsNullOrEmpty(token.Title)) { result = result + " title=\"" + token.Title + "\""; } result += ">"; foreach (var item in token.Content) { result += engine.Render(item); } result += "</a>"; return(result); }