From f3db5e882e7a2a68b41bcb231908bdfb29c35cc9 Mon Sep 17 00:00:00 2001 From: Ruud Poutsma Date: Fri, 9 Oct 2020 19:47:16 +0200 Subject: [PATCH] fix FencedCodeBlock --- src/Markdig.Tests/RoundtripSpecs/TestFencedCodeBlock.cs | 1 + src/Markdig/Parsers/FencedCodeBlockParser.cs | 2 ++ src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/Markdig.Tests/RoundtripSpecs/TestFencedCodeBlock.cs b/src/Markdig.Tests/RoundtripSpecs/TestFencedCodeBlock.cs index 87428c7f..0fe7d799 100644 --- a/src/Markdig.Tests/RoundtripSpecs/TestFencedCodeBlock.cs +++ b/src/Markdig.Tests/RoundtripSpecs/TestFencedCodeBlock.cs @@ -17,6 +17,7 @@ namespace Markdig.Tests.RoundtripSpecs [TestCase("\n\n```\nc\n```\n")] [TestCase("\n\n```\nc\n```\n\n")] + [TestCase(" ```\nc\n````")] [TestCase("```\nc\n````")] [TestCase("p\n\n```\nc\n```")] public void Test(string value) diff --git a/src/Markdig/Parsers/FencedCodeBlockParser.cs b/src/Markdig/Parsers/FencedCodeBlockParser.cs index 694837c5..37640903 100644 --- a/src/Markdig/Parsers/FencedCodeBlockParser.cs +++ b/src/Markdig/Parsers/FencedCodeBlockParser.cs @@ -4,6 +4,7 @@ using Markdig.Helpers; using Markdig.Syntax; +using System.ComponentModel; namespace Markdig.Parsers { @@ -30,6 +31,7 @@ namespace Markdig.Parsers { IndentCount = processor.Indent, LinesBefore = processor.UseLinesBefore(), + BeforeWhitespace = processor.PopBeforeWhitespace(processor.Start - 1) }; } diff --git a/src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs b/src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs index 074641ac..8bc13cca 100644 --- a/src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs +++ b/src/Markdig/Renderers/Normalize/CodeBlockRenderer.cs @@ -21,6 +21,7 @@ namespace Markdig.Renderers.Normalize renderer.RenderLinesBefore(obj); if (obj is FencedCodeBlock fencedCodeBlock) { + renderer.Write(obj.BeforeWhitespace); var opening = new string(fencedCodeBlock.FencedChar, fencedCodeBlock.OpeningFencedCharCount); renderer.Write(opening); @@ -59,6 +60,7 @@ namespace Markdig.Renderers.Normalize renderer.WriteLeafRawLines(obj, true); var closing = new string(fencedCodeBlock.FencedChar, fencedCodeBlock.ClosingFencedCharCount); renderer.Write(closing); + renderer.Write(obj.AfterWhitespace); } else {