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 58b5895f91..3f8d80a7f4 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 1fb7cc710b..190380c175 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 b23baed187..8162090f00 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 d252fae464..c90e016b11 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 b399021589..ab61792142 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 } };