From 93ef8c8080b0fb4a67d9ac496230bb850a4668c6 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Wed, 5 Jan 2022 20:43:18 +0000 Subject: [PATCH] LibMarkdown: Output alignment when rendering HTML tables Previously, only terminal output aligned table column contents correctly. Now, we apply a `text-align` to each cell. This does not actually *work* however, since LibWeb's table layout code is not yet fully functional. --- Userland/Libraries/LibMarkdown/Table.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibMarkdown/Table.cpp b/Userland/Libraries/LibMarkdown/Table.cpp index 995738f718..ff40867a88 100644 --- a/Userland/Libraries/LibMarkdown/Table.cpp +++ b/Userland/Libraries/LibMarkdown/Table.cpp @@ -68,13 +68,25 @@ String Table::render_for_terminal(size_t view_width) const String Table::render_to_html(bool) const { + auto alignment_string = [](Alignment alignment) { + switch (alignment) { + case Alignment::Center: + return "center"sv; + case Alignment::Left: + return "left"sv; + case Alignment::Right: + return "right"sv; + } + VERIFY_NOT_REACHED(); + }; + StringBuilder builder; builder.append(""); builder.append(""); builder.append(""); for (auto& column : m_columns) { - builder.append(""); } @@ -85,7 +97,7 @@ String Table::render_to_html(bool) const builder.append(""); for (auto& column : m_columns) { VERIFY(i < column.rows.size()); - builder.append(""); }
"); + builder.appendff("", alignment_string(column.alignment)); builder.append(column.header.render_to_html()); builder.append("
"); + builder.appendff("", alignment_string(column.alignment)); builder.append(column.rows[i].render_to_html()); builder.append("