Paragraph.cpp 947 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright (c) 2019-2020, Sergey Bugaev <bugaevc@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/StringBuilder.h>
  7. #include <LibMarkdown/Paragraph.h>
  8. #include <LibMarkdown/Visitor.h>
  9. namespace Markdown {
  10. String Paragraph::render_to_html(bool tight) const
  11. {
  12. StringBuilder builder;
  13. if (!tight)
  14. builder.append("<p>");
  15. builder.append(m_text.render_to_html());
  16. if (!tight)
  17. builder.append("</p>");
  18. builder.append('\n');
  19. return builder.build();
  20. }
  21. String Paragraph::render_for_terminal(size_t) const
  22. {
  23. StringBuilder builder;
  24. builder.append(" ");
  25. builder.append(m_text.render_for_terminal());
  26. builder.append("\n\n");
  27. return builder.build();
  28. }
  29. RecursionDecision Paragraph::walk(Visitor& visitor) const
  30. {
  31. RecursionDecision rd = visitor.visit(*this);
  32. if (rd != RecursionDecision::Recurse)
  33. return rd;
  34. return m_text.walk(visitor);
  35. }
  36. }