12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * Copyright (c) 2019-2020, Sergey Bugaev <bugaevc@serenityos.org>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
- #include <AK/StringBuilder.h>
- #include <LibMarkdown/Paragraph.h>
- namespace Markdown {
- String Paragraph::render_to_html() const
- {
- StringBuilder builder;
- builder.append("<p>");
- bool first = true;
- for (auto& line : m_lines) {
- if (!first)
- builder.append(' ');
- first = false;
- builder.append(line.text().render_to_html());
- }
- builder.append("</p>\n");
- return builder.build();
- }
- String Paragraph::render_for_terminal(size_t) const
- {
- StringBuilder builder;
- bool first = true;
- for (auto& line : m_lines) {
- if (!first)
- builder.append(' ');
- first = false;
- builder.append(line.text().render_for_terminal());
- }
- builder.append("\n\n");
- return builder.build();
- }
- OwnPtr<Paragraph::Line> Paragraph::Line::parse(Vector<StringView>::ConstIterator& lines)
- {
- if (lines.is_end())
- return {};
- auto text = Text::parse(*lines++);
- if (!text.has_value())
- return {};
- return make<Paragraph::Line>(text.release_value());
- }
- }
|