summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibMarkdown
diff options
context:
space:
mode:
authorsin-ack <sin-ack@users.noreply.github.com>2022-07-11 17:32:29 +0000
committerAndreas Kling <kling@serenityos.org>2022-07-12 23:11:35 +0200
commit3f3f45580ab7266258e97cb3cecf1e24716d61c5 (patch)
tree152c7a187c98184d58bf91a326357e0af435edcf /Userland/Libraries/LibMarkdown
parente5f09ea1703bacfbb79a4ad3c587a7d5d3d7bb13 (diff)
downloadserenity-3f3f45580ab7266258e97cb3cecf1e24716d61c5.zip
Everywhere: Add sv suffix to strings relying on StringView(char const*)
Each of these strings would previously rely on StringView's char const* constructor overload, which would call __builtin_strlen on the string. Since we now have operator ""sv, we can replace these with much simpler versions. This opens the door to being able to remove StringView(char const*). No functional changes.
Diffstat (limited to 'Userland/Libraries/LibMarkdown')
-rw-r--r--Userland/Libraries/LibMarkdown/BlockQuote.cpp4
-rw-r--r--Userland/Libraries/LibMarkdown/CodeBlock.cpp20
-rw-r--r--Userland/Libraries/LibMarkdown/CommentBlock.cpp4
-rw-r--r--Userland/Libraries/LibMarkdown/ContainerBlock.cpp2
-rw-r--r--Userland/Libraries/LibMarkdown/Document.cpp20
-rw-r--r--Userland/Libraries/LibMarkdown/Heading.cpp6
-rw-r--r--Userland/Libraries/LibMarkdown/HorizontalRule.cpp2
-rw-r--r--Userland/Libraries/LibMarkdown/List.cpp8
-rw-r--r--Userland/Libraries/LibMarkdown/Paragraph.cpp8
-rw-r--r--Userland/Libraries/LibMarkdown/Table.cpp26
-rw-r--r--Userland/Libraries/LibMarkdown/Text.cpp104
11 files changed, 102 insertions, 102 deletions
diff --git a/Userland/Libraries/LibMarkdown/BlockQuote.cpp b/Userland/Libraries/LibMarkdown/BlockQuote.cpp
index df879a3c05..56f6269691 100644
--- a/Userland/Libraries/LibMarkdown/BlockQuote.cpp
+++ b/Userland/Libraries/LibMarkdown/BlockQuote.cpp
@@ -13,9 +13,9 @@ namespace Markdown {
String BlockQuote::render_to_html(bool) const
{
StringBuilder builder;
- builder.append("<blockquote>\n");
+ builder.append("<blockquote>\n"sv);
builder.append(m_contents->render_to_html());
- builder.append("</blockquote>\n");
+ builder.append("</blockquote>\n"sv);
return builder.build();
}
diff --git a/Userland/Libraries/LibMarkdown/CodeBlock.cpp b/Userland/Libraries/LibMarkdown/CodeBlock.cpp
index 7db1f88277..c22aae97b7 100644
--- a/Userland/Libraries/LibMarkdown/CodeBlock.cpp
+++ b/Userland/Libraries/LibMarkdown/CodeBlock.cpp
@@ -17,15 +17,15 @@ String CodeBlock::render_to_html(bool) const
{
StringBuilder builder;
- builder.append("<pre>");
+ builder.append("<pre>"sv);
if (m_style.length() >= 2)
- builder.append("<strong>");
+ builder.append("<strong>"sv);
else if (m_style.length() >= 2)
- builder.append("<em>");
+ builder.append("<em>"sv);
if (m_language.is_empty())
- builder.append("<code>");
+ builder.append("<code>"sv);
else
builder.appendff("<code class=\"language-{}\">", escape_html_entities(m_language));
@@ -34,14 +34,14 @@ String CodeBlock::render_to_html(bool) const
else
builder.append(escape_html_entities(m_code));
- builder.append("</code>");
+ builder.append("</code>"sv);
if (m_style.length() >= 2)
- builder.append("</strong>");
+ builder.append("</strong>"sv);
else if (m_style.length() >= 2)
- builder.append("</em>");
+ builder.append("</em>"sv);
- builder.append("</pre>\n");
+ builder.append("</pre>\n"sv);
return builder.build();
}
@@ -51,9 +51,9 @@ String CodeBlock::render_for_terminal(size_t) const
StringBuilder builder;
for (auto line : m_code.split('\n')) {
- builder.append(" ");
+ builder.append(" "sv);
builder.append(line);
- builder.append("\n");
+ builder.append("\n"sv);
}
return builder.build();
diff --git a/Userland/Libraries/LibMarkdown/CommentBlock.cpp b/Userland/Libraries/LibMarkdown/CommentBlock.cpp
index 7b4f892100..49aeabd2c9 100644
--- a/Userland/Libraries/LibMarkdown/CommentBlock.cpp
+++ b/Userland/Libraries/LibMarkdown/CommentBlock.cpp
@@ -14,10 +14,10 @@ String CommentBlock::render_to_html(bool) const
{
StringBuilder builder;
- builder.append("<!--");
+ builder.append("<!--"sv);
builder.append(escape_html_entities(m_comment));
// TODO: This is probably incorrect, because we technically need to escape "--" in some form. However, Browser does not care about this.
- builder.append("-->\n");
+ builder.append("-->\n"sv);
return builder.build();
}
diff --git a/Userland/Libraries/LibMarkdown/ContainerBlock.cpp b/Userland/Libraries/LibMarkdown/ContainerBlock.cpp
index 026d77e9be..fef3ec15c3 100644
--- a/Userland/Libraries/LibMarkdown/ContainerBlock.cpp
+++ b/Userland/Libraries/LibMarkdown/ContainerBlock.cpp
@@ -125,7 +125,7 @@ OwnPtr<ContainerBlock> ContainerBlock::parse(LineIterator& lines)
}
if (!paragraph_text.is_empty())
- paragraph_text.append("\n");
+ paragraph_text.append('\n');
paragraph_text.append(*lines++);
}
diff --git a/Userland/Libraries/LibMarkdown/Document.cpp b/Userland/Libraries/LibMarkdown/Document.cpp
index a4fa2307ae..0fbe15a293 100644
--- a/Userland/Libraries/LibMarkdown/Document.cpp
+++ b/Userland/Libraries/LibMarkdown/Document.cpp
@@ -16,19 +16,19 @@ String Document::render_to_html() const
{
StringBuilder builder;
- builder.append("<!DOCTYPE html>\n");
- builder.append("<html>\n");
- builder.append("<head>\n");
- builder.append("<style>\n");
- builder.append("code { white-space: pre; }\n");
- builder.append("</style>\n");
- builder.append("</head>\n");
- builder.append("<body>\n");
+ builder.append("<!DOCTYPE html>\n"sv);
+ builder.append("<html>\n"sv);
+ builder.append("<head>\n"sv);
+ builder.append("<style>\n"sv);
+ builder.append("code { white-space: pre; }\n"sv);
+ builder.append("</style>\n"sv);
+ builder.append("</head>\n"sv);
+ builder.append("<body>\n"sv);
builder.append(render_to_inline_html());
- builder.append("</body>\n");
- builder.append("</html>\n");
+ builder.append("</body>\n"sv);
+ builder.append("</html>\n"sv);
return builder.build();
}
diff --git a/Userland/Libraries/LibMarkdown/Heading.cpp b/Userland/Libraries/LibMarkdown/Heading.cpp
index fe16f4d22b..0c3f2f3de8 100644
--- a/Userland/Libraries/LibMarkdown/Heading.cpp
+++ b/Userland/Libraries/LibMarkdown/Heading.cpp
@@ -19,16 +19,16 @@ String Heading::render_for_terminal(size_t) const
{
StringBuilder builder;
- builder.append("\033[0;31;1m\n");
+ builder.append("\033[0;31;1m\n"sv);
switch (m_level) {
case 1:
case 2:
builder.append(m_text.render_for_terminal().to_uppercase());
- builder.append("\033[0m\n");
+ builder.append("\033[0m\n"sv);
break;
default:
builder.append(m_text.render_for_terminal());
- builder.append("\033[0m\n");
+ builder.append("\033[0m\n"sv);
break;
}
diff --git a/Userland/Libraries/LibMarkdown/HorizontalRule.cpp b/Userland/Libraries/LibMarkdown/HorizontalRule.cpp
index 7bb8edb42f..680c99009c 100644
--- a/Userland/Libraries/LibMarkdown/HorizontalRule.cpp
+++ b/Userland/Libraries/LibMarkdown/HorizontalRule.cpp
@@ -22,7 +22,7 @@ String HorizontalRule::render_for_terminal(size_t view_width) const
StringBuilder builder(view_width + 1);
for (size_t i = 0; i < view_width; ++i)
builder.append('-');
- builder.append("\n\n");
+ builder.append("\n\n"sv);
return builder.to_string();
}
diff --git a/Userland/Libraries/LibMarkdown/List.cpp b/Userland/Libraries/LibMarkdown/List.cpp
index d98288f355..994eee226c 100644
--- a/Userland/Libraries/LibMarkdown/List.cpp
+++ b/Userland/Libraries/LibMarkdown/List.cpp
@@ -22,14 +22,14 @@ String List::render_to_html(bool) const
if (m_start_number != 1)
builder.appendff(" start=\"{}\"", m_start_number);
- builder.append(">\n");
+ builder.append(">\n"sv);
for (auto& item : m_items) {
- builder.append("<li>");
+ builder.append("<li>"sv);
if (!m_is_tight || (item->blocks().size() != 0 && !dynamic_cast<Paragraph const*>(&(item->blocks()[0]))))
builder.append("\n");
builder.append(item->render_to_html(m_is_tight));
- builder.append("</li>\n");
+ builder.append("</li>\n"sv);
}
builder.appendff("</{}>\n", tag);
@@ -43,7 +43,7 @@ String List::render_for_terminal(size_t) const
int i = 0;
for (auto& item : m_items) {
- builder.append(" ");
+ builder.append(" "sv);
if (m_is_ordered)
builder.appendff("{}.", ++i);
else
diff --git a/Userland/Libraries/LibMarkdown/Paragraph.cpp b/Userland/Libraries/LibMarkdown/Paragraph.cpp
index d1d2ebec65..0b804a86b9 100644
--- a/Userland/Libraries/LibMarkdown/Paragraph.cpp
+++ b/Userland/Libraries/LibMarkdown/Paragraph.cpp
@@ -15,12 +15,12 @@ String Paragraph::render_to_html(bool tight) const
StringBuilder builder;
if (!tight)
- builder.append("<p>");
+ builder.append("<p>"sv);
builder.append(m_text.render_to_html());
if (!tight)
- builder.append("</p>");
+ builder.append("</p>"sv);
builder.append('\n');
@@ -30,9 +30,9 @@ String Paragraph::render_to_html(bool tight) const
String Paragraph::render_for_terminal(size_t) const
{
StringBuilder builder;
- builder.append(" ");
+ builder.append(" "sv);
builder.append(m_text.render_for_terminal());
- builder.append("\n\n");
+ builder.append("\n\n"sv);
return builder.build();
}
diff --git a/Userland/Libraries/LibMarkdown/Table.cpp b/Userland/Libraries/LibMarkdown/Table.cpp
index 5cf26bd48e..c67409aa61 100644
--- a/Userland/Libraries/LibMarkdown/Table.cpp
+++ b/Userland/Libraries/LibMarkdown/Table.cpp
@@ -84,29 +84,29 @@ String Table::render_to_html(bool) const
StringBuilder builder;
- builder.append("<table>");
- builder.append("<thead>");
- builder.append("<tr>");
+ builder.append("<table>"sv);
+ builder.append("<thead>"sv);
+ builder.append("<tr>"sv);
for (auto& column : m_columns) {
builder.appendff("<th style='text-align: {}'>", alignment_string(column.alignment));
builder.append(column.header.render_to_html());
- builder.append("</th>");
+ builder.append("</th>"sv);
}
- builder.append("</tr>");
- builder.append("</thead>");
- builder.append("<tbody>");
+ builder.append("</tr>"sv);
+ builder.append("</thead>"sv);
+ builder.append("<tbody>"sv);
for (size_t i = 0; i < m_row_count; ++i) {
- builder.append("<tr>");
+ builder.append("<tr>"sv);
for (auto& column : m_columns) {
VERIFY(i < column.rows.size());
builder.appendff("<td style='text-align: {}'>", alignment_string(column.alignment));
builder.append(column.rows[i].render_to_html());
- builder.append("</td>");
+ builder.append("</td>"sv);
}
- builder.append("</tr>");
+ builder.append("</tr>"sv);
}
- builder.append("</tbody>");
- builder.append("</table>");
+ builder.append("</tbody>"sv);
+ builder.append("</table>"sv);
return builder.to_string();
}
@@ -224,7 +224,7 @@ OwnPtr<Table> Table::parse(LineIterator& lines)
if (i >= segments.size()) {
// Ran out of segments, but still have headers.
// Just make an empty cell.
- table->m_columns[i].rows.append(Text::parse(""));
+ table->m_columns[i].rows.append(Text::parse(""sv));
} else {
auto text = Text::parse(segments[i]);
table->m_columns[i].rows.append(move(text));
diff --git a/Userland/Libraries/LibMarkdown/Text.cpp b/Userland/Libraries/LibMarkdown/Text.cpp
index b4088ebb60..1a5f55717b 100644
--- a/Userland/Libraries/LibMarkdown/Text.cpp
+++ b/Userland/Libraries/LibMarkdown/Text.cpp
@@ -17,21 +17,21 @@ namespace Markdown {
void Text::EmphasisNode::render_to_html(StringBuilder& builder) const
{
- builder.append((strong) ? "<strong>" : "<em>");
+ builder.append((strong) ? "<strong>"sv : "<em>"sv);
child->render_to_html(builder);
- builder.append((strong) ? "</strong>" : "</em>");
+ builder.append((strong) ? "</strong>"sv : "</em>"sv);
}
void Text::EmphasisNode::render_for_terminal(StringBuilder& builder) const
{
if (strong) {
- builder.append("\e[1m");
+ builder.append("\e[1m"sv);
child->render_for_terminal(builder);
- builder.append("\e[22m");
+ builder.append("\e[22m"sv);
} else {
- builder.append("\e[3m");
+ builder.append("\e[3m"sv);
child->render_for_terminal(builder);
- builder.append("\e[23m");
+ builder.append("\e[23m"sv);
}
}
@@ -51,16 +51,16 @@ RecursionDecision Text::EmphasisNode::walk(Visitor& visitor) const
void Text::CodeNode::render_to_html(StringBuilder& builder) const
{
- builder.append("<code>");
+ builder.append("<code>"sv);
code->render_to_html(builder);
- builder.append("</code>");
+ builder.append("</code>"sv);
}
void Text::CodeNode::render_for_terminal(StringBuilder& builder) const
{
- builder.append("\e[1m");
+ builder.append("\e[1m"sv);
code->render_for_terminal(builder);
- builder.append("\e[22m");
+ builder.append("\e[22m"sv);
}
size_t Text::CodeNode::terminal_length() const
@@ -79,7 +79,7 @@ RecursionDecision Text::CodeNode::walk(Visitor& visitor) const
void Text::BreakNode::render_to_html(StringBuilder& builder) const
{
- builder.append("<br />");
+ builder.append("<br />"sv);
}
void Text::BreakNode::render_for_terminal(StringBuilder&) const
@@ -138,34 +138,34 @@ RecursionDecision Text::TextNode::walk(Visitor& visitor) const
void Text::LinkNode::render_to_html(StringBuilder& builder) const
{
if (is_image) {
- builder.append("<img src=\"");
+ builder.append("<img src=\""sv);
builder.append(escape_html_entities(href));
- builder.append("\" alt=\"");
+ builder.append("\" alt=\""sv);
text->render_to_html(builder);
- builder.append("\" >");
+ builder.append("\" >"sv);
} else {
- builder.append("<a href=\"");
+ builder.append("<a href=\""sv);
builder.append(escape_html_entities(href));
- builder.append("\">");
+ builder.append("\">"sv);
text->render_to_html(builder);
- builder.append("</a>");
+ builder.append("</a>"sv);
}
}
void Text::LinkNode::render_for_terminal(StringBuilder& builder) const
{
- bool is_linked = href.contains("://");
+ bool is_linked = href.contains("://"sv);
if (is_linked) {
- builder.append("\033[0;34m\e]8;;");
+ builder.append("\033[0;34m\e]8;;"sv);
builder.append(href);
- builder.append("\e\\");
+ builder.append("\e\\"sv);
}
text->render_for_terminal(builder);
if (is_linked) {
builder.appendff(" <{}>", href);
- builder.append("\033]8;;\033\\\033[0m");
+ builder.append("\033]8;;\033\\\033[0m"sv);
}
}
@@ -225,16 +225,16 @@ RecursionDecision Text::MultiNode::walk(Visitor& visitor) const
void Text::StrikeThroughNode::render_to_html(StringBuilder& builder) const
{
- builder.append("<del>");
+ builder.append("<del>"sv);
striked_text->render_to_html(builder);
- builder.append("</del>");
+ builder.append("</del>"sv);
}
void Text::StrikeThroughNode::render_for_terminal(StringBuilder& builder) const
{
- builder.append("\e[9m");
+ builder.append("\e[9m"sv);
striked_text->render_for_terminal(builder);
- builder.append("\e[29m");
+ builder.append("\e[29m"sv);
}
size_t Text::StrikeThroughNode::terminal_length() const
@@ -260,14 +260,14 @@ String Text::render_to_html() const
{
StringBuilder builder;
m_node->render_to_html(builder);
- return builder.build().trim(" \n\t");
+ return builder.build().trim(" \n\t"sv);
}
String Text::render_for_terminal() const
{
StringBuilder builder;
m_node->render_for_terminal(builder);
- return builder.build().trim(" \n\t");
+ return builder.build().trim(" \n\t"sv);
}
RecursionDecision Text::walk(Visitor& visitor) const
@@ -380,16 +380,16 @@ Vector<Text::Token> Text::tokenize(StringView str)
in_space = true;
}
current_token.append(ch);
- } else if (has("\n")) {
- expect("\n");
- } else if (has("[")) {
- expect("[");
- } else if (has("![")) {
- expect("![");
- } else if (has("](")) {
- expect("](");
- } else if (has(")")) {
- expect(")");
+ } else if (has("\n"sv)) {
+ expect("\n"sv);
+ } else if (has("["sv)) {
+ expect("["sv);
+ } else if (has("!["sv)) {
+ expect("!["sv);
+ } else if (has("]("sv)) {
+ expect("]("sv);
+ } else if (has(")"sv)) {
+ expect(")"sv);
} else {
current_token.append(ch);
}
@@ -405,7 +405,7 @@ NonnullOwnPtr<Text::MultiNode> Text::parse_sequence(Vector<Token>::ConstIterator
for (; !tokens.is_end(); ++tokens) {
if (tokens->is_space()) {
node->children.append(parse_break(tokens));
- } else if (*tokens == "\n") {
+ } else if (*tokens == "\n"sv) {
node->children.append(parse_newline(tokens));
} else if (tokens->is_run) {
switch (tokens->run_char()) {
@@ -420,15 +420,15 @@ NonnullOwnPtr<Text::MultiNode> Text::parse_sequence(Vector<Token>::ConstIterator
node->children.append(parse_strike_through(tokens));
break;
}
- } else if (*tokens == "[" || *tokens == "![") {
+ } else if (*tokens == "["sv || *tokens == "!["sv) {
node->children.append(parse_link(tokens));
- } else if (in_link && *tokens == "](") {
+ } else if (in_link && *tokens == "]("sv) {
return node;
} else {
node->children.append(make<TextNode>(tokens->data));
}
- if (in_link && !tokens.is_end() && *tokens == "](")
+ if (in_link && !tokens.is_end() && *tokens == "]("sv)
return node;
if (tokens.is_end())
@@ -440,7 +440,7 @@ NonnullOwnPtr<Text::MultiNode> Text::parse_sequence(Vector<Token>::ConstIterator
NonnullOwnPtr<Text::Node> Text::parse_break(Vector<Token>::ConstIterator& tokens)
{
auto next_tok = tokens + 1;
- if (next_tok.is_end() || *next_tok != "\n")
+ if (next_tok.is_end() || *next_tok != "\n"sv)
return make<TextNode>(tokens->data);
if (tokens->data.length() >= 2)
@@ -488,7 +488,7 @@ NonnullOwnPtr<Text::Node> Text::parse_emph(Vector<Token>::ConstIterator& tokens,
for (++tokens; !tokens.is_end(); ++tokens) {
if (tokens->is_space()) {
child->children.append(parse_break(tokens));
- } else if (*tokens == "\n") {
+ } else if (*tokens == "\n"sv) {
child->children.append(parse_newline(tokens));
} else if (tokens->is_run) {
if (can_close_for(opening, *tokens)) {
@@ -507,16 +507,16 @@ NonnullOwnPtr<Text::Node> Text::parse_emph(Vector<Token>::ConstIterator& tokens,
child->children.append(parse_strike_through(tokens));
break;
}
- } else if (*tokens == "[" || *tokens == "![") {
+ } else if (*tokens == "["sv || *tokens == "!["sv) {
child->children.append(parse_link(tokens));
- } else if (in_link && *tokens == "](") {
+ } else if (in_link && *tokens == "]("sv) {
child->children.prepend(make<TextNode>(opening.data));
return child;
} else {
child->children.append(make<TextNode>(tokens->data));
}
- if (in_link && !tokens.is_end() && *tokens == "](") {
+ if (in_link && !tokens.is_end() && *tokens == "]("sv) {
child->children.prepend(make<TextNode>(opening.data));
return child;
}
@@ -556,7 +556,7 @@ NonnullOwnPtr<Text::Node> Text::parse_code(Vector<Token>::ConstIterator& tokens)
}
is_all_whitespace = is_all_whitespace && iterator->data.is_whitespace();
- code->children.append(make<TextNode>((*iterator == "\n") ? " " : iterator->data, false));
+ code->children.append(make<TextNode>((*iterator == "\n"sv) ? " " : iterator->data, false));
}
return make<TextNode>(opening.data);
@@ -565,20 +565,20 @@ NonnullOwnPtr<Text::Node> Text::parse_code(Vector<Token>::ConstIterator& tokens)
NonnullOwnPtr<Text::Node> Text::parse_link(Vector<Token>::ConstIterator& tokens)
{
auto opening = *tokens++;
- bool is_image = opening == "![";
+ bool is_image = opening == "!["sv;
auto link_text = parse_sequence(tokens, true);
- if (tokens.is_end() || *tokens != "](") {
+ if (tokens.is_end() || *tokens != "]("sv) {
link_text->children.prepend(make<TextNode>(opening.data));
return link_text;
}
auto separator = *tokens;
- VERIFY(separator == "](");
+ VERIFY(separator == "]("sv);
StringBuilder address;
for (auto iterator = tokens + 1; !iterator.is_end(); ++iterator) {
- if (*iterator == ")") {
+ if (*iterator == ")"sv) {
tokens = iterator;
return make<LinkNode>(is_image, move(link_text), address.build());
}
@@ -618,7 +618,7 @@ NonnullOwnPtr<Text::Node> Text::parse_strike_through(Vector<Token>::ConstIterato
}
is_all_whitespace = is_all_whitespace && iterator->data.is_whitespace();
- striked_text->children.append(make<TextNode>((*iterator == "\n") ? " " : iterator->data, false));
+ striked_text->children.append(make<TextNode>((*iterator == "\n"sv) ? " " : iterator->data, false));
}
return make<TextNode>(opening.data);