示例#1
0
 protected override void Write(RoundtripRenderer renderer, ParagraphBlock paragraph)
 {
     renderer.RenderLinesBefore(paragraph);
     renderer.Write(paragraph.TriviaBefore);
     renderer.WriteLeafInline(paragraph);
     //renderer.Write(paragraph.Newline); // paragraph typically has LineBreakInlines as closing inline nodes
     renderer.RenderLinesAfter(paragraph);
 }
示例#2
0
        protected override void Write(RoundtripRenderer renderer, HeadingBlock obj)
        {
            if (obj.IsSetext)
            {
                renderer.RenderLinesBefore(obj);

                var headingChar = obj.Level == 1 ? '=' : '-';
                var line        = new string(headingChar, obj.HeaderCharCount);

                renderer.WriteLeafInline(obj);
                renderer.WriteLine(obj.SetextNewline);
                renderer.Write(obj.TriviaBefore);
                renderer.Write(line);
                renderer.WriteLine(obj.NewLine);
                renderer.Write(obj.TriviaAfter);

                renderer.RenderLinesAfter(obj);
            }
            else
            {
                renderer.RenderLinesBefore(obj);

                var headingText = obj.Level > 0 && obj.Level <= 6
                    ? HeadingTexts[obj.Level - 1]
                    : new string('#', obj.Level);

                renderer.Write(obj.TriviaBefore);
                renderer.Write(headingText);
                renderer.Write(obj.TriviaAfterAtxHeaderChar);
                renderer.WriteLeafInline(obj);
                renderer.Write(obj.TriviaAfter);
                renderer.WriteLine(obj.NewLine);

                renderer.RenderLinesAfter(obj);
            }
        }