From df5511664807b8efab1841914d64f197236396cd Mon Sep 17 00:00:00 2001 From: Simon Baynes Date: Wed, 7 Aug 2024 09:48:52 +0100 Subject: [PATCH] Fix bug with empty lists Closes #109 --- src/Html2Markdown/Replacement/HtmlParser.cs | 2 ++ ...WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt | 1 + ...WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt | 1 + test/Html2Markdown.Test/MarkdownSchemeConverterTest.cs | 9 +++++++++ 4 files changed, 13 insertions(+) create mode 100644 test/Html2Markdown.Test/CommonMarkSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt create mode 100644 test/Html2Markdown.Test/MarkdownSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt diff --git a/src/Html2Markdown/Replacement/HtmlParser.cs b/src/Html2Markdown/Replacement/HtmlParser.cs index cc051ef5..27b46b76 100644 --- a/src/Html2Markdown/Replacement/HtmlParser.cs +++ b/src/Html2Markdown/Replacement/HtmlParser.cs @@ -68,6 +68,8 @@ private static string ReplaceList(string html) } markdownList.Add($"{listPrefix}{finalList}"); }); + + if (markdownList.Count == 0) return string.Empty; //If a new line is already ending the markdown item, then we don't need to add another one return Environment.NewLine + Environment.NewLine + markdownList.Aggregate((current, item) => current.EndsWith(Environment.NewLine) ? current + item : current + Environment.NewLine + item) + Environment.NewLine + Environment.NewLine; diff --git a/test/Html2Markdown.Test/CommonMarkSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt b/test/Html2Markdown.Test/CommonMarkSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt new file mode 100644 index 00000000..c1b8d743 --- /dev/null +++ b/test/Html2Markdown.Test/CommonMarkSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt @@ -0,0 +1 @@ +emptyString \ No newline at end of file diff --git a/test/Html2Markdown.Test/MarkdownSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt b/test/Html2Markdown.Test/MarkdownSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt new file mode 100644 index 00000000..c1b8d743 --- /dev/null +++ b/test/Html2Markdown.Test/MarkdownSchemeConverterTest.Convert_WhenThereIsAnEmptyList_ThenRemoveTheList.verified.txt @@ -0,0 +1 @@ +emptyString \ No newline at end of file diff --git a/test/Html2Markdown.Test/MarkdownSchemeConverterTest.cs b/test/Html2Markdown.Test/MarkdownSchemeConverterTest.cs index 680c8328..741cf656 100644 --- a/test/Html2Markdown.Test/MarkdownSchemeConverterTest.cs +++ b/test/Html2Markdown.Test/MarkdownSchemeConverterTest.cs @@ -660,6 +660,15 @@ public Task Convert_WhenThereAreMultipleUnorderedLists_ThenReplaceWithMarkdownLi return CheckConversion(html); } + + // See issue https://github.com/baynezy/Html2Markdown/issues/109 + [Test] + public Task Convert_WhenThereIsAnEmptyList_ThenRemoveTheList() + { + const string html = ""; + + return CheckConversion(html); + } #endregion