diff --git a/src/Markdig.Tests/TestParser.cs b/src/Markdig.Tests/TestParser.cs index 70e44a78..3d509c59 100644 --- a/src/Markdig.Tests/TestParser.cs +++ b/src/Markdig.Tests/TestParser.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using Markdig.Extensions.JiraLinks; +using Markdig.Renderers.Roundtrip; using Markdig.Syntax; using NUnit.Framework; @@ -67,6 +68,15 @@ namespace Markdig.Tests TestDescendantsOrder.TestSchemas(specsSyntaxTrees); } + [Test] + public void ParseEmptyDocumentWithTrackTriviaEnabled() + { + var document = Markdown.Parse("", trackTrivia: true); + using var sw = new StringWriter(); + new RoundtripRenderer(sw).Render(document); + Assert.AreEqual("", sw.ToString()); + } + public static void TestSpec(string inputText, string expectedOutputText, string extensions = null, bool plainText = false, string context = null) { context ??= string.Empty; diff --git a/src/Markdig/Parsers/MarkdownParser.cs b/src/Markdig/Parsers/MarkdownParser.cs index b1255c95..d81e25e5 100644 --- a/src/Markdig/Parsers/MarkdownParser.cs +++ b/src/Markdig/Parsers/MarkdownParser.cs @@ -65,7 +65,11 @@ namespace Markdig.Parsers var noBlocksFoundBlock = new EmptyBlock(null); List linesBefore = blockProcessor.UseLinesBefore(); noBlocksFoundBlock.LinesAfter = new List(); - noBlocksFoundBlock.LinesAfter.AddRange(linesBefore); + if (linesBefore != null) + { + noBlocksFoundBlock.LinesAfter.AddRange(linesBefore); + } + document.Add(noBlocksFoundBlock); } else if (lastBlock != null && blockProcessor.LinesBefore != null)