From c6026f9bbf16ffd0f2aef42412d6703570f4565e Mon Sep 17 00:00:00 2001 From: mysticmnd Date: Wed, 3 Jan 2024 17:20:25 +0530 Subject: [PATCH] Fix auto trimming of spaces for inline tags - fixes GH-353 --- ...en_Spaces_In_Inline_Tags_Should_Be_Retained.verified.md | 1 + src/ReverseMarkdown.Test/ConverterTests.cs | 7 +++++++ src/ReverseMarkdown.Test/ReverseMarkdown.Test.csproj | 3 +++ src/ReverseMarkdown/Converters/Aside.cs | 2 +- src/ReverseMarkdown/Converters/Blockquote.cs | 2 +- src/ReverseMarkdown/Converters/Em.cs | 2 +- src/ReverseMarkdown/Converters/P.cs | 2 +- src/ReverseMarkdown/Converters/S.cs | 2 +- src/ReverseMarkdown/Converters/Strong.cs | 2 +- src/ReverseMarkdown/Converters/Sup.cs | 2 +- 10 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 src/ReverseMarkdown.Test/ConverterTests.When_Spaces_In_Inline_Tags_Should_Be_Retained.verified.md diff --git a/src/ReverseMarkdown.Test/ConverterTests.When_Spaces_In_Inline_Tags_Should_Be_Retained.verified.md b/src/ReverseMarkdown.Test/ConverterTests.When_Spaces_In_Inline_Tags_Should_Be_Retained.verified.md new file mode 100644 index 00000000..be7fded8 --- /dev/null +++ b/src/ReverseMarkdown.Test/ConverterTests.When_Spaces_In_Inline_Tags_Should_Be_Retained.verified.md @@ -0,0 +1 @@ +... example html *code *block \ No newline at end of file diff --git a/src/ReverseMarkdown.Test/ConverterTests.cs b/src/ReverseMarkdown.Test/ConverterTests.cs index 5410fda5..c98de34d 100644 --- a/src/ReverseMarkdown.Test/ConverterTests.cs +++ b/src/ReverseMarkdown.Test/ConverterTests.cs @@ -1334,5 +1334,12 @@ public Task When_Strikethrough_And_Nested_Strikethrough() var html = $"This is the 1st sentence to test the strikethrough tag conversion"; return CheckConversion(html); } + + [Fact] + public Task When_Spaces_In_Inline_Tags_Should_Be_Retained() + { + var html = $"... example html code block"; + return CheckConversion(html); + } } } diff --git a/src/ReverseMarkdown.Test/ReverseMarkdown.Test.csproj b/src/ReverseMarkdown.Test/ReverseMarkdown.Test.csproj index b2266406..d0f13821 100644 --- a/src/ReverseMarkdown.Test/ReverseMarkdown.Test.csproj +++ b/src/ReverseMarkdown.Test/ReverseMarkdown.Test.csproj @@ -45,5 +45,8 @@ ConverterTests.WhenThereIsUnorderedListAndBulletIsAsterisk_ThenConvertToMarkdownList.verified.md + + ConverterTests.WhenThereIsUnorderedListWithNestedOrderedList_ThenConvertToMarkdownListWithNestedList.verified.md + diff --git a/src/ReverseMarkdown/Converters/Aside.cs b/src/ReverseMarkdown/Converters/Aside.cs index d39fb3ea..7a226af7 100644 --- a/src/ReverseMarkdown/Converters/Aside.cs +++ b/src/ReverseMarkdown/Converters/Aside.cs @@ -13,7 +13,7 @@ public Aside(Converter converter) public override string Convert(HtmlNode node) { - return $"{Environment.NewLine}{TreatChildren(node).Trim()}{Environment.NewLine}"; + return $"{Environment.NewLine}{TreatChildren(node)}{Environment.NewLine}"; } } } diff --git a/src/ReverseMarkdown/Converters/Blockquote.cs b/src/ReverseMarkdown/Converters/Blockquote.cs index 19ac1eab..b5a6bd50 100644 --- a/src/ReverseMarkdown/Converters/Blockquote.cs +++ b/src/ReverseMarkdown/Converters/Blockquote.cs @@ -14,7 +14,7 @@ public Blockquote(Converter converter) : base(converter) public override string Convert(HtmlNode node) { - var content = TreatChildren(node).Trim(); + var content = TreatChildren(node); // get the lines based on carriage return and prefix "> " to each line var lines = content.ReadLines().Select(item => "> " + item + Environment.NewLine); diff --git a/src/ReverseMarkdown/Converters/Em.cs b/src/ReverseMarkdown/Converters/Em.cs index 08651ca1..875cbbe8 100644 --- a/src/ReverseMarkdown/Converters/Em.cs +++ b/src/ReverseMarkdown/Converters/Em.cs @@ -31,7 +31,7 @@ public override string Convert(HtmlNode node) ? " " : ""; - return $"*{content.Trim().Chomp(all:true)}*{spaceSuffix}"; + return $"*{content.Chomp(all:true)}*{spaceSuffix}"; } } diff --git a/src/ReverseMarkdown/Converters/P.cs b/src/ReverseMarkdown/Converters/P.cs index 6fedc15e..42a1214c 100644 --- a/src/ReverseMarkdown/Converters/P.cs +++ b/src/ReverseMarkdown/Converters/P.cs @@ -16,7 +16,7 @@ public override string Convert(HtmlNode node) var indentation = IndentationFor(node); var newlineAfter = NewlineAfter(node); - return $"{indentation}{TreatChildren(node).Trim()}{newlineAfter}"; + return $"{indentation}{TreatChildren(node)}{newlineAfter}"; } private static string IndentationFor(HtmlNode node) diff --git a/src/ReverseMarkdown/Converters/S.cs b/src/ReverseMarkdown/Converters/S.cs index cdb77047..44397e0d 100644 --- a/src/ReverseMarkdown/Converters/S.cs +++ b/src/ReverseMarkdown/Converters/S.cs @@ -21,7 +21,7 @@ public override string Convert(HtmlNode node) } else { - return $"~~{content.Trim().Chomp(all:true)}~~"; + return $"~~{content.Chomp(all:true)}~~"; } } diff --git a/src/ReverseMarkdown/Converters/Strong.cs b/src/ReverseMarkdown/Converters/Strong.cs index 156d00f0..18024e67 100644 --- a/src/ReverseMarkdown/Converters/Strong.cs +++ b/src/ReverseMarkdown/Converters/Strong.cs @@ -28,7 +28,7 @@ public override string Convert(HtmlNode node) ? " " : ""; - return $"**{content.Trim().Chomp(all:true)}**{spaceSuffix}"; + return $"**{content.Chomp(all:true)}**{spaceSuffix}"; } } diff --git a/src/ReverseMarkdown/Converters/Sup.cs b/src/ReverseMarkdown/Converters/Sup.cs index b7599da5..de272142 100644 --- a/src/ReverseMarkdown/Converters/Sup.cs +++ b/src/ReverseMarkdown/Converters/Sup.cs @@ -19,7 +19,7 @@ public override string Convert(HtmlNode node) } else { - return $"^{content.Trim().Chomp(all:true)}^"; + return $"^{content.Chomp(all:true)}^"; } }