PageNode.cpp 934 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2019-2020, Sergey Bugaev <bugaevc@serenityos.org>
  3. * Copyright (c) 2022, the SerenityOS developers.
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #include "PageNode.h"
  8. #include "SectionNode.h"
  9. #include <AK/RefPtr.h>
  10. namespace Manual {
  11. Node const* PageNode::parent() const
  12. {
  13. return m_section.ptr();
  14. }
  15. ErrorOr<Span<NonnullRefPtr<Node const>>> PageNode::children() const
  16. {
  17. static Vector<NonnullRefPtr<Node const>> empty_vector;
  18. return empty_vector.span();
  19. }
  20. ErrorOr<String> PageNode::path() const
  21. {
  22. return TRY(String::formatted("{}/{}.md", TRY(m_section->path()), m_page));
  23. }
  24. unsigned PageNode::section_number() const
  25. {
  26. return m_section->section_number();
  27. }
  28. ErrorOr<NonnullRefPtr<PageNode>> PageNode::help_index_page()
  29. {
  30. static NonnullRefPtr<PageNode> const help_index_page = TRY(try_make_ref_counted<PageNode>(sections[7 - 1], "Help-index"_string));
  31. return help_index_page;
  32. }
  33. }