diff --git a/Userland/Libraries/LibMarkdown/Text.cpp b/Userland/Libraries/LibMarkdown/Text.cpp
index 5631e8c929..64a548fb1a 100644
--- a/Userland/Libraries/LibMarkdown/Text.cpp
+++ b/Userland/Libraries/LibMarkdown/Text.cpp
@@ -99,13 +99,13 @@ void Text::LinkNode::render_to_html(StringBuilder& builder) const
{
if (is_image) {
builder.append("
render_to_html(builder);
+ builder.append(escape_html_entities(href));
builder.append("\" alt=\"");
text->render_to_html(builder);
builder.append("\" >");
} else {
builder.append("render_to_html(builder);
+ builder.append(escape_html_entities(href));
builder.append("\">");
text->render_to_html(builder);
builder.append("");
@@ -114,21 +114,17 @@ void Text::LinkNode::render_to_html(StringBuilder& builder) const
void Text::LinkNode::render_for_terminal(StringBuilder& builder) const
{
- StringBuilder href_builder;
- href->render_for_terminal(href_builder);
- String href_string = href_builder.build();
-
- bool is_linked = href_string.contains("://");
+ bool is_linked = href.contains("://");
if (is_linked) {
builder.append("\e]8;;");
- builder.append(href_string);
+ builder.append(href);
builder.append("\e\\");
}
text->render_for_terminal(builder);
if (is_linked) {
- builder.appendff(" <{}>", href_string);
+ builder.appendff(" <{}>", href);
builder.append("\033]8;;\033\\");
}
}
@@ -471,14 +467,14 @@ NonnullOwnPtr Text::parse_link(Vector::ConstIterator& tokens)
auto separator = *tokens;
VERIFY(separator == "](");
- auto address = make();
+ StringBuilder address;
for (auto iterator = tokens + 1; !iterator.is_end(); ++iterator) {
if (*iterator == ")") {
tokens = iterator;
- return make(is_image, move(link_text), move(address));
+ return make(is_image, move(link_text), address.build());
}
- address->children.append(make(iterator->data));
+ address.append(iterator->data);
}
link_text->children.prepend(make(opening.data));
diff --git a/Userland/Libraries/LibMarkdown/Text.h b/Userland/Libraries/LibMarkdown/Text.h
index 0c9a1eeff6..bacfedb0e2 100644
--- a/Userland/Libraries/LibMarkdown/Text.h
+++ b/Userland/Libraries/LibMarkdown/Text.h
@@ -88,9 +88,9 @@ public:
public:
bool is_image;
NonnullOwnPtr text;
- NonnullOwnPtr href;
+ String href;
- LinkNode(bool is_image, NonnullOwnPtr text, NonnullOwnPtr href)
+ LinkNode(bool is_image, NonnullOwnPtr text, String href)
: is_image(is_image)
, text(move(text))
, href(move(href))