PageNode.cpp 864 B

123456789101112131415161718192021222324252627282930313233343536
  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 NonnullRefPtrVector<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. ErrorOr<NonnullRefPtr<PageNode>> PageNode::help_index_page()
  25. {
  26. static NonnullRefPtr<PageNode> const help_index_page = TRY(try_make_ref_counted<PageNode>(sections[7 - 1], TRY(String::from_utf8("Help-index"sv))));
  27. return help_index_page;
  28. }
  29. }