protected override void Write(NormalizeRenderer renderer, LinkInline link)
        {
            if (link.IsImage)
            {
                return;
            }

            renderer.WriteChildren(link);

            if (link.Label != null)
            {
                renderer.Write(link.Label);
            }
            else if (!string.IsNullOrEmpty(link.Url) && !UrlMatchesChildInline(link))
            {
                renderer.Write(" (").Write(link.Url).Write(")");

                if (!string.IsNullOrEmpty(link.Title))
                {
                    renderer.Write(" \"");
                    renderer.Write(link.Title.Replace(@"""", @"\"""));
                    renderer.Write("\"");
                }
            }
        }
Example #2
0
        protected override void Write(NormalizeRenderer renderer, LinkInline link)
        {
            if (link.IsImage)
            {
                renderer.Write('!');
            }
            renderer.Write('[');
            renderer.WriteChildren(link);
            renderer.Write(']');

            if (link.Label != null)
            {
                if (link.FirstChild is LiteralInline literal && literal.Content.Length == link.Label.Length && literal.Content.Match(link.Label))
                {
                    // collapsed reference and shortcut links
                    if (!link.IsShortcut)
                    {
                        renderer.Write("[]");
                    }
                }
                else
                {
                    // full link
                    renderer.Write('[').Write(link.Label).Write(']');
                }
            }
Example #3
0
        protected override void Write(NormalizeRenderer renderer, EmphasisInline obj)
        {
            var emphasisText = new string(obj.DelimiterChar, obj.DelimiterCount);

            renderer.Write(emphasisText);
            renderer.WriteChildren(obj);
            renderer.Write(emphasisText);
        }
Example #4
0
 protected override void Write(NormalizeRenderer renderer, LiteralInline obj)
 {
     if (obj.IsFirstCharacterEscaped && obj.Content.Length > 0 && obj.Content[obj.Content.Start].IsAsciiPunctuation())
     {
         renderer.Write('\\');
     }
     renderer.Write(ref obj.Content);
 }
Example #5
0
        protected override void Write(NormalizeRenderer renderer, CodeInline obj)
        {
            var delimiter = obj.Content.Contains(obj.Delimiter + "") ? new string(obj.Delimiter, 2) : obj.Delimiter + "";

            renderer.Write(delimiter);
            renderer.Write(obj.Content);
            renderer.Write(delimiter);
        }
Example #6
0
 protected override void Write(NormalizeRenderer renderer, LineBreakInline obj)
 {
     if (obj.IsHard)
     {
         renderer.Write(obj.IsBackslash ? "\\" : "  ");
     }
     renderer.WriteLine();
 }
 protected override void Write(NormalizeRenderer renderer, MathBlock obj)
 {
     renderer.EnsureLine();
     renderer.WriteLine("$$");
     renderer.WriteLeafRawLines(obj, true);
     renderer.Write("$$");
     renderer.FinishBlock(renderer.Options.EmptyLineAfterCodeBlock);
 }
Example #8
0
 private static string GetBlockText(LeafBlock heading)
 {
     using (var stringWriter = new StringWriter())
     {
         var renderer = new NormalizeRenderer(stringWriter);
         renderer.Write(heading.Inline);
         return(stringWriter.ToString());
     }
 }
Example #9
0
        protected override void Write(NormalizeRenderer renderer, LinkInline link)
        {
            if (link.IsImage)
            {
                renderer.Write('!');
            }
            renderer.Write('[');
            renderer.WriteChildren(link);
            renderer.Write(']');

            if (link.Label != null)
            {
                var literal = link.FirstChild as LiteralInline;
                if (literal != null && literal.Content.Match(link.Label) && literal.Content.Length == link.Label.Length)
                {
                    // collapsed reference and shortcut links
                    if (!link.IsShortcut)
                    {
                        renderer.Write("[]");
                    }
                }
                else
                {
                    // full link
                    renderer.Write('[').Write(link.Label).Write(']');
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(link.Url))
                {
                    renderer.Write('(').Write(link.Url);

                    if (!string.IsNullOrEmpty(link.Title))
                    {
                        renderer.Write(" \"");
                        renderer.Write(link.Title.Replace(@"""", @"\"""));
                        renderer.Write("\"");
                    }

                    renderer.Write(')');
                }
            }
        }
        protected override void Write(NormalizeRenderer renderer, LinkInline link)
        {
            if (link.IsImage)
            {
                renderer.Write('!');
            }
            renderer.Write('[');
            renderer.WriteChildren(link);
            renderer.Write(']');

            //if (link.Label != null)
            //{

            //    var literal = link.FirstChild as LiteralInline;
            //    if (literal != null && literal.Content.Match(link.Label) && literal.Content.Length == link.Label.Length)
            //    {
            //        // collapsed reference and shortcut links
            //        if (!link.IsShortcut)
            //        {
            //            renderer.Write("[]");
            //        }
            //    }
            //    else
            //    {
            //        // full link
            //        renderer.Write('[').Write(link.Label).Write(']');
            //    }
            //}
            //else
            //{
            if (!string.IsNullOrEmpty(link.Url))
            {
                //var url = AideDeJeu.Tools.Helpers.RemoveDiacritics(link.Url).Replace(".md#", "_") + ".md";
                renderer.Write('(').Write(link.Url);

                if (!string.IsNullOrEmpty(link.Title))
                {
                    renderer.Write(" \"");
                    renderer.Write(link.Title.Replace(@"""", @"\"""));
                    renderer.Write("\"");
                }

                renderer.Write(')');
            }
            //}
        }
Example #11
0
        protected override void Write(NormalizeRenderer renderer, CodeInline obj)
        {
            var    delimiterCount = 0;
            string content        = obj.Content;

            for (var i = 0; i < content.Length; i++)
            {
                var index = content.IndexOf(obj.Delimiter, i);
                if (index == -1)
                {
                    break;
                }

                var count = 1;
                for (i = index + 1; i < content.Length; i++)
                {
                    if (content[i] == obj.Delimiter)
                    {
                        count++;
                    }
                    else
                    {
                        break;
                    }
                }

                if (delimiterCount < count)
                {
                    delimiterCount = count;
                }
            }
            var delimiterRun = new string(obj.Delimiter, delimiterCount + 1);

            renderer.Write(delimiterRun);
            if (content.Length != 0)
            {
                if (content[0] == obj.Delimiter)
                {
                    renderer.Write(' ');
                }
                renderer.Write(content);
                if (content[content.Length - 1] == obj.Delimiter)
                {
                    renderer.Write(' ');
                }
            }
            else
            {
                renderer.Write(' ');
            }
            renderer.Write(delimiterRun);
        }
Example #12
0
 protected override void Write(NormalizeRenderer renderer, LinkInline obj)
 {
     renderer.Write(obj.Url);
 }
 protected override void Write(NormalizeRenderer renderer, TaskList obj)
 {
     renderer.Write("[");
     renderer.Write(obj.Checked ? "X" : " ");
     renderer.Write("]");
 }
Example #14
0
 protected override void Write(NormalizeRenderer renderer, Mention obj)
 {
     renderer.Write(obj.Name);
 }
 protected override void Write(NormalizeRenderer renderer, MathInline obj)
 {
     renderer.Write('$');
     renderer.Write(ref obj.Content);
     renderer.Write('$');
 }
Example #16
0
 protected override void Write(NormalizeRenderer renderer, AutolinkInline obj)
 {
     renderer.Write('<').Write(obj.Url).Write('>');
 }
Example #17
0
 protected override void Write(NormalizeRenderer renderer, DelimiterInline obj)
 {
     renderer.Write(obj.ToLiteral());
     renderer.WriteChildren(obj);
 }
 protected override void Write(NormalizeRenderer renderer, DisplayLinkInline obj)
 {
     renderer.Write(obj.DisplayLink.ToString());
 }
 protected override void Write(NormalizeRenderer renderer, HtmlInline obj)
 {
     renderer.Write(obj.Tag);
 }
 protected override void Write(NormalizeRenderer renderer, JiraLink obj)
 {
     renderer.Write(obj.ProjectKey);
     renderer.Write("-");
     renderer.Write(obj.Issue);
 }
 protected override void Write(NormalizeRenderer renderer, HtmlEntityInline obj)
 {
     renderer.Write(obj.Original);
 }
        protected override void Write(NormalizeRenderer renderer, Table obj)
        {
            renderer.EnsureLine();

            foreach (var row in obj.OfType <TableRow>())
            {
                renderer.Write(PipeSeparator);

                foreach (var tableCell in row)
                {
                    renderer.Write(MarginSeparator);

                    renderer.Render(tableCell);

                    renderer.Write(MarginSeparator);
                    renderer.Write(PipeSeparator);
                }

                renderer.WriteLine();


                if (row.IsHeader)
                {
                    bool alignmentEnabled = obj.ColumnDefinitions.Any(c => c.Alignment != TableColumnAlign.Left);

                    renderer.Write(PipeSeparator);

                    foreach (var column in obj.ColumnDefinitions)
                    {
                        renderer.Write(MarginSeparator);
                        if (alignmentEnabled && (column.Alignment == TableColumnAlign.Left || column.Alignment == TableColumnAlign.Center))
                        {
                            renderer.Write(AlignmentChar);
                        }
                        renderer.Write(HeaderSeparator);
                        if (alignmentEnabled && (column.Alignment == TableColumnAlign.Right || column.Alignment == TableColumnAlign.Center))
                        {
                            renderer.Write(AlignmentChar);
                        }
                        renderer.Write(MarginSeparator);
                        renderer.Write(PipeSeparator);
                    }

                    renderer.WriteLine();
                }
            }

            renderer.FinishBlock(true);
        }
 protected override void Write(NormalizeRenderer renderer, Hashtag obj)
 {
     renderer.Write(obj.Tag);
 }