Пример #1
0
        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 + "\")");
     }
 }
Пример #3
0
        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);
        }
Пример #5
0
        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);
            }
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        private StringBuffer RenderAutoLink(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context)
        {
            var content = RenderInlineTokens(token.Content, render);

            return($"<{content}>");
        }
Пример #11
0
 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);
 }