Skip to content

Commit

Permalink
Add index page to the sidebar when it's the only page
Browse files Browse the repository at this point in the history
Automatically include the index page in the documentation sidebar when it is the only page present. This ensures the sidebar is not empty for a single-page documentation site, providing a more user-friendly experience.
  • Loading branch information
caendesilva committed Nov 26, 2023
1 parent 34eaffb commit ec54e19
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ protected function generate(): void
$this->items->put($route->getRouteKey(), NavItem::fromRoute($route));
}
});

// If there are no pages other than the index page, we add it to the sidebar so that it's not empty
if ($this->items->count() === 0 && DocumentationPage::home() !== null) {
$this->items->push(NavItem::fromRoute(DocumentationPage::home()));
}
}

public function hasGroups(): bool
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,31 @@ public function test_is_group_active_for_index_page_with_no_groups()
$this->assertFalse(DocumentationSidebar::create()->isGroupActive('foo'));
}

public function test_index_page_added_to_sidebar_when_it_is_the_only_page()
{
Filesystem::touch('_docs/index.md');
$sidebar = DocumentationSidebar::create();

$this->assertCount(1, $sidebar->items);
$this->assertEquals(
collect([NavItem::fromRoute(Routes::get('docs/index'))]),
$sidebar->items
);
}

public function test_index_page_not_added_to_sidebar_when_other_pages_exist()
{
$this->createTestFiles(1);
Filesystem::touch('_docs/index.md');
$sidebar = DocumentationSidebar::create();

$this->assertCount(1, $sidebar->items);
$this->assertEquals(
collect([NavItem::fromRoute(Routes::get('docs/test-0'))]),
$sidebar->items
);
}

protected function createTestFiles(int $count = 5): void
{
for ($i = 0; $i < $count; $i++) {
Expand Down

0 comments on commit ec54e19

Please sign in to comment.