public virtual StringBuffer Render(IMarkdownRenderer renderer, MarkdownLinkInlineToken token, MarkdownInlineContext context) { var childContent = StringBuffer.Empty; foreach (var item in token.Content) { childContent += renderer.Render(item); } return(Insert(token, ExposeTokenName(token), childContent)); }
private StringBuffer RenderNormalLink(MarkdownLinkInlineToken token, IMarkdownRenderer render) { if (string.IsNullOrEmpty(token.Title)) { return("[" + RenderInlineTokens(token.Content, render) + "](" + RenderHref(token.Href) + ")"); } else { return("[" + RenderInlineTokens(token.Content, render) + "](" + RenderHref(token.Href) + " \"" + token.Title + "\")"); } }
public override StringBuffer Render(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context) { if (token.LinkType is MarkdownLinkType.AutoLink && token.SourceInfo.Markdown.StartsWith("<mailto:", StringComparison.OrdinalIgnoreCase) && token.Content.Length == 1) { var content = token.Content.First(); return($"<{content.SourceInfo.Markdown}>"); } return(base.Render(render, token, context)); }
private StringBuffer RenderAutoLink(MarkdownLinkInlineToken token) { var markdown = token.SourceInfo.Markdown; if (markdown.StartsWith("<mailto:", StringComparison.OrdinalIgnoreCase) && token.Content.Length == 1) { var content = token.Content.First(); return($"<{content.SourceInfo.Markdown}>"); } return(markdown); }
public override StringBuffer Render(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context) { switch (token.LinkType) { case MarkdownLinkType.AutoLink: return(RenderAutoLink(render, token, context)); case MarkdownLinkType.NormalLink: return(RenderLinkNormalLink(render, token, context)); default: return(base.Render(render, token, context)); } }
public override StringBuffer Render(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context) { switch (token.LinkType) { case MarkdownLinkType.AutoLink: return(RenderAutoLink(token)); case MarkdownLinkType.NormalLink: return(RenderNormalLink(token, render)); default: return(token.SourceInfo.Markdown); } }
protected virtual IMarkdownToken GenerateToken(IMarkdownParser parser, string href, string title, string text, bool isImage, SourceInfo sourceInfo, MarkdownLinkType linkType, string refId) { var escapedHref = StringHelper.UnescapeMarkdown(href); var c = parser.SwitchContext(MarkdownInlineContext.IsInLink, BoxedTrue); IMarkdownToken result; if (isImage) { result = new MarkdownImageInlineToken(this, parser.Context, escapedHref, title, text, sourceInfo, linkType, refId); } else { result = new MarkdownLinkInlineToken(this, parser.Context, escapedHref, title, parser.Tokenize(sourceInfo.Copy(text)), sourceInfo, linkType, refId); } parser.SwitchContext(c); return(result); }
public virtual StringBuffer Render(IMarkdownRenderer render, MarkdownLinkInlineToken token, IMarkdownContext context) { var content = StringBuffer.Empty; if (token.Content != null) { foreach (var t in token.Content) { content += render.Render(t); } } content += token.Href.NormalizeLink(_filePath, _baseDir); content += Constants.Separator; return(content); }
private StringBuffer RenderLinkNormalLink(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context) { var content = StringBuffer.Empty; content += "["; content += RenderInlineTokens(token.Content, render); content += "]("; content += StringHelper.EscapeMarkdownHref(token.Href); if (!string.IsNullOrEmpty(token.Title)) { content += " \""; content += token.Title; content += "\""; } content += ")"; return(content); }
private StringBuffer RenderAutoLink(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context) { var content = RenderInlineTokens(token.Content, render); return($"<{content}>"); }
public virtual StringBuffer Render(IMarkdownRenderer renderer, MarkdownLinkInlineToken token, MarkdownInlineContext context) { var childContent = StringBuffer.Empty; foreach (var item in token.Content) { childContent += renderer.Render(item); } return Insert(token, ExposeTokenName(token), childContent); }