From dee84113abba402a87b9e0440bfaa10fd67fe909 Mon Sep 17 00:00:00 2001 From: Peter Elliott Date: Sun, 29 Aug 2021 15:59:41 -0700 Subject: [PATCH] LibMarkdown: Match HTML formatting of Commonmark tests This patch changes the HTML formatting (where to put newlines, etc...) to better match commonmark's test cases. This has minimal effect of the correctness of our markdown implementation, but makes it easier to test. Changes: - Use instead of . - Newline before end of code block. -
instead of
. - Newline before first list item. - Newline between lines of a paragraph. - Trim whitespace on lines of paragraphs. Tests passed: 33/652 -> 87/652 --- Userland/Libraries/LibMarkdown/CodeBlock.cpp | 6 +++--- Userland/Libraries/LibMarkdown/HorizontalRule.cpp | 2 +- Userland/Libraries/LibMarkdown/List.cpp | 2 +- Userland/Libraries/LibMarkdown/Paragraph.cpp | 4 ++-- Userland/Libraries/LibMarkdown/Text.cpp | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Userland/Libraries/LibMarkdown/CodeBlock.cpp b/Userland/Libraries/LibMarkdown/CodeBlock.cpp index 58b5895f91f..3f8d80a7f46 100644 --- a/Userland/Libraries/LibMarkdown/CodeBlock.cpp +++ b/Userland/Libraries/LibMarkdown/CodeBlock.cpp @@ -36,7 +36,7 @@ String CodeBlock::render_to_html() const if (style.strong) builder.append(""); if (style.emph) - builder.append(""); + builder.append(""); if (style_language.is_empty()) builder.append(""); @@ -48,10 +48,10 @@ String CodeBlock::render_to_html() const else builder.append(escape_html_entities(m_code)); - builder.append(""); + builder.append("\n"); if (style.emph) - builder.append(""); + builder.append(""); if (style.strong) builder.append(""); diff --git a/Userland/Libraries/LibMarkdown/HorizontalRule.cpp b/Userland/Libraries/LibMarkdown/HorizontalRule.cpp index 1fb7cc710bd..190380c175e 100644 --- a/Userland/Libraries/LibMarkdown/HorizontalRule.cpp +++ b/Userland/Libraries/LibMarkdown/HorizontalRule.cpp @@ -12,7 +12,7 @@ namespace Markdown { String HorizontalRule::render_to_html() const { - return "
\n"; + return "
\n"; } String HorizontalRule::render_for_terminal(size_t view_width) const diff --git a/Userland/Libraries/LibMarkdown/List.cpp b/Userland/Libraries/LibMarkdown/List.cpp index b23baed1870..8162090f008 100644 --- a/Userland/Libraries/LibMarkdown/List.cpp +++ b/Userland/Libraries/LibMarkdown/List.cpp @@ -14,7 +14,7 @@ String List::render_to_html() const StringBuilder builder; const char* tag = m_is_ordered ? "ol" : "ul"; - builder.appendff("<{}>", tag); + builder.appendff("<{}>\n", tag); for (auto& item : m_items) { builder.append("
  • "); diff --git a/Userland/Libraries/LibMarkdown/Paragraph.cpp b/Userland/Libraries/LibMarkdown/Paragraph.cpp index d252fae4642..c90e016b114 100644 --- a/Userland/Libraries/LibMarkdown/Paragraph.cpp +++ b/Userland/Libraries/LibMarkdown/Paragraph.cpp @@ -16,9 +16,9 @@ String Paragraph::render_to_html() const bool first = true; for (auto& line : m_lines) { if (!first) - builder.append(' '); + builder.append('\n'); first = false; - builder.append(line.text().render_to_html()); + builder.append(line.text().render_to_html().trim(" \t")); } builder.append("

    \n"); return builder.build(); diff --git a/Userland/Libraries/LibMarkdown/Text.cpp b/Userland/Libraries/LibMarkdown/Text.cpp index b3990215891..ab617921426 100644 --- a/Userland/Libraries/LibMarkdown/Text.cpp +++ b/Userland/Libraries/LibMarkdown/Text.cpp @@ -44,7 +44,7 @@ String Text::render_to_html() const bool Style::*flag; }; TagAndFlag tags_and_flags[] = { - { "i", &Style::emph }, + { "em", &Style::emph }, { "b", &Style::strong }, { "code", &Style::code } };