Esempio n. 1
0
 public virtual StringBuffer Render(MarkdownEngine engine, DfmXrefInlineToken token, MarkdownInlineContext context)
 {
     var href = token.Href == null ? string.Empty : $" href=\"{StringHelper.HtmlEncode(token.Href)}\"";
     var name = token.Name == null ? null : StringHelper.HtmlEncode(token.Name);
     var title = token.Title == null ? null : $" title=\"{StringHelper.HtmlEncode(token.Title)}\"";
     return $"<xref{href}{title}>{name}</xref>";
 }
Esempio n. 2
0
        public virtual StringBuffer Render(MarkdownEngine engine, DfmXrefInlineToken token, MarkdownInlineContext context)
        {
            var href  = token.Href == null ? string.Empty : $" href=\"{StringHelper.HtmlEncode(token.Href)}\"";
            var name  = token.Name == null ? null : StringHelper.HtmlEncode(token.Name);
            var title = token.Title == null ? null : $" title=\"{StringHelper.HtmlEncode(token.Title)}\"";

            return($"<xref{href}{title}>{name}</xref>");
        }
Esempio n. 3
0
 public virtual StringBuffer Render(IMarkdownRenderer renderer, MarkdownTextToken token, MarkdownInlineContext context)
 {
     return Insert(token, $"{ExposeTokenName(token)}>{Escape(token.Content)}");
 }
Esempio n. 4
0
 public virtual StringBuffer Render(IMarkdownRenderer renderer, MarkdownBrInlineToken token, MarkdownInlineContext context)
 {
     return Insert(token, ExposeTokenName(token));
 }
Esempio n. 5
0
 public virtual StringBuffer Render(IMarkdownRenderer renderer, GfmDelInlineToken token, MarkdownInlineContext context)
 {
     var childContent = StringBuffer.Empty;
     foreach (var item in token.Content)
     {
         childContent += renderer.Render(item);
     }
     return Insert(token, ExposeTokenName(token), childContent);
 }
Esempio n. 6
0
        public override StringBuffer Render(IMarkdownRenderer render, MarkdownEmInlineToken token, MarkdownInlineContext context)
        {
            var source  = token.SourceInfo.Markdown;
            var symbol  = source.StartsWith("_") ? "_" : "*";
            var content = StringBuffer.Empty;

            content += symbol;
            content += RenderInlineTokens(token.Content, render);
            content += symbol;
            return(content);
        }
Esempio n. 7
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));
        }
Esempio n. 8
0
 public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmIncludeInlineToken token, MarkdownInlineContext context)
 {
     lock (_inlineInclusionHelper)
     {
         return(_inlineInclusionHelper.Load(renderer, token.Src, token.SourceInfo, context, (DfmEngine)renderer.Engine));
     }
 }
Esempio n. 9
0
 public virtual StringBuffer Render(IMarkdownRenderer render, AzureIncludeInlineToken token, MarkdownInlineContext context)
 {
     return(RenderAzureIncludeToken(render, token, context));
 }
Esempio n. 10
0
        public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmXrefInlineToken token, MarkdownInlineContext context)
        {
            var childContent = StringBuffer.Empty;

            foreach (var item in token.Content)
            {
                childContent += renderer.Render(item);
            }
            return(Insert(token, $"{ExposeTokenNameInDfm(token)}>{Escape(token.Href)}", childContent));
        }
Esempio n. 11
0
 public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmIncludeInlineToken token, MarkdownInlineContext context)
 {
     return(Insert(token, ExposeTokenNameInDfm(token)));
 }
Esempio n. 12
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);
        }
Esempio n. 13
0
        private StringBuffer RenderAutoLink(IMarkdownRenderer render, MarkdownLinkInlineToken token, MarkdownInlineContext context)
        {
            var content = RenderInlineTokens(token.Content, render);

            return($"<{content}>");
        }
Esempio n. 14
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));
            }
        }
Esempio n. 15
0
        public virtual StringBuffer Render(DfmEngine engine, DfmIncludeInlineToken token, MarkdownInlineContext context)
        {
            var resolved = _inlineInclusionHelper.Load(token.Src, token.Raw, engine.Parents, engine.InternalMarkup);

            return(resolved);
        }
Esempio n. 16
0
        public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmXrefInlineToken token, MarkdownInlineContext context)
        {
            StringBuffer result = "<xref";

            result  = AppendAttribute(result, "href", token.Href);
            result  = AppendAttribute(result, "title", token.Title);
            result  = AppendAttribute(result, "data-throw-if-not-resolved", token.ThrowIfNotResolved.ToString());
            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 += "</xref>";
            return(result);
        }
Esempio n. 17
0
 public virtual StringBuffer Render(DfmEngine engine, DfmIncludeInlineToken token, MarkdownInlineContext context)
 {
     var resolved = _inlineInclusionHelper.Load(token.Src, token.Raw, engine.Parents, engine.InternalMarkup);
     return resolved;
 }
Esempio n. 18
0
        public virtual StringBuffer Render(IMarkdownRenderer render, DfmXrefInlineToken token, MarkdownInlineContext context)
        {
            if (token.Rule is DfmXrefShortcutInlineRule)
            {
                if (TryResolveUid(token.Href))
                {
                    return($"@\"{token.Href}\"");
                }
            }

            return(base.Render(render, token, context));
        }
Esempio n. 19
0
        public virtual StringBuffer Render(IMarkdownRenderer renderer, DfmIncludeInlineToken token, MarkdownInlineContext context)
        {
            var resolved = _inlineInclusionHelper.Load(renderer, token.Src, token.Raw, context, ((DfmEngine)renderer.Engine).InternalMarkup);

            return(resolved);
        }
Esempio n. 20
0
        public virtual StringBuffer Render(IMarkdownRenderer render, DfmIncludeInlineToken token, MarkdownInlineContext context)
        {
            var src = token.Src.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);

            return string.IsNullOrEmpty(token.Title)
                    ? $"[!INCLUDE [{token.Name}]({src})]"
                    : $"[!INCLUDE [{token.Name}]({src} \"{token.Title}\")]";
        }
Esempio n. 21
0
 public virtual StringBuffer Render(IMarkdownRenderer render, DfmIncludeInlineToken token, MarkdownInlineContext context)
 {
     return(string.IsNullOrEmpty(token.Title)
             ? $"[!INCLUDE [{token.Name}]({token.Src})]"
             : $"[!INCLUDE [{token.Name}]({token.Src} \"{token.Title}\")]");
 }