1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:27:44 +00:00

LibMarkdown: Add render_for_raw_print methods to Node derived classes

This method will be used by the package manager code to render an actual
Port's name to raw text as it is stored as relative URL currently in the
AvailablePorts.md file.
This commit is contained in:
Liav A 2023-07-20 14:43:39 +03:00 committed by Andrew Kaster
parent 8073c615af
commit 22737b70bc
2 changed files with 52 additions and 0 deletions

View file

@ -34,6 +34,11 @@ void Text::EmphasisNode::render_for_terminal(StringBuilder& builder) const
}
}
void Text::EmphasisNode::render_for_raw_print(StringBuilder& builder) const
{
child->render_for_raw_print(builder);
}
size_t Text::EmphasisNode::terminal_length() const
{
return child->terminal_length();
@ -62,6 +67,11 @@ void Text::CodeNode::render_for_terminal(StringBuilder& builder) const
builder.append("\e[22m"sv);
}
void Text::CodeNode::render_for_raw_print(StringBuilder& builder) const
{
code->render_for_raw_print(builder);
}
size_t Text::CodeNode::terminal_length() const
{
return code->terminal_length();
@ -85,6 +95,10 @@ void Text::BreakNode::render_for_terminal(StringBuilder&) const
{
}
void Text::BreakNode::render_for_raw_print(StringBuilder&) const
{
}
size_t Text::BreakNode::terminal_length() const
{
return 0;
@ -104,6 +118,11 @@ void Text::TextNode::render_to_html(StringBuilder& builder) const
builder.append(escape_html_entities(text));
}
void Text::TextNode::render_for_raw_print(StringBuilder& builder) const
{
builder.append(text);
}
void Text::TextNode::render_for_terminal(StringBuilder& builder) const
{
if (collapsible && (text == "\n" || text.is_whitespace())) {
@ -158,6 +177,11 @@ void Text::LinkNode::render_to_html(StringBuilder& builder) const
}
}
void Text::LinkNode::render_for_raw_print(StringBuilder& builder) const
{
text->render_for_raw_print(builder);
}
void Text::LinkNode::render_for_terminal(StringBuilder& builder) const
{
bool is_linked = href.contains("://"sv);
@ -198,6 +222,13 @@ void Text::MultiNode::render_to_html(StringBuilder& builder) const
}
}
void Text::MultiNode::render_for_raw_print(StringBuilder& builder) const
{
for (auto& child : children) {
child->render_for_raw_print(builder);
}
}
void Text::MultiNode::render_for_terminal(StringBuilder& builder) const
{
for (auto& child : children) {
@ -236,6 +267,11 @@ void Text::StrikeThroughNode::render_to_html(StringBuilder& builder) const
builder.append("</del>"sv);
}
void Text::StrikeThroughNode::render_for_raw_print(StringBuilder& builder) const
{
striked_text->render_for_raw_print(builder);
}
void Text::StrikeThroughNode::render_for_terminal(StringBuilder& builder) const
{
builder.append("\e[9m"sv);
@ -269,6 +305,13 @@ DeprecatedString Text::render_to_html() const
return builder.to_deprecated_string().trim(" \n\t"sv);
}
DeprecatedString Text::render_for_raw_print() const
{
StringBuilder builder;
m_node->render_for_raw_print(builder);
return builder.to_deprecated_string().trim(" \n\t"sv);
}
DeprecatedString Text::render_for_terminal() const
{
StringBuilder builder;