diff --git a/navigation/plan.yml b/navigation/plan.yml index dd98699..fac1da3 100644 --- a/navigation/plan.yml +++ b/navigation/plan.yml @@ -914,6 +914,11 @@ Packages: up: status/README.md up_label: Package status menu_changes: + - pages: + - README.md + label: Start + target: '#quick-start' + remove: true - pages: - docs/installation/debian.md - docs/installation/ubuntu.md diff --git a/tests/test_navigation.py b/tests/test_navigation.py index cd21e89..56e6b20 100644 --- a/tests/test_navigation.py +++ b/tests/test_navigation.py @@ -69,6 +69,17 @@ def test_control_repository_uses_declared_navigation(self): self.assertIn('One physical prose paragraph.', guide) self.assertEqual(page_headers(repo, check=True), []) + def test_packages_root_removes_start_button(self): + repo = self.fixture('Packages') + root = repo / 'README.md' + root.write_text(root.read_text() + '\nStart\n') + (repo / 'docs/media/menu/start.svg').write_text(_menu_svg('Start', 160)) + page_headers(repo) + self.assertNotIn('href="#quick-start"', root.read_text()) + self.assertNotIn('alt="Start"', root.read_text()) + self.assertIn('href="docs/README.md#page-overview"', root.read_text()) + self.assertEqual(page_headers(repo, check=True), []) + def test_plan_chains_and_label_limit(self): validate_plan(self.plan) invalid = copy.deepcopy(self.plan) diff --git a/tools/snodec_sync/navigation.py b/tools/snodec_sync/navigation.py index 6dcccc4..f0532aa 100644 --- a/tools/snodec_sync/navigation.py +++ b/tools/snodec_sync/navigation.py @@ -58,7 +58,7 @@ def validate_plan(plan): seen.add(path) path = active[path]['up'] for change in config.get('menu_changes', []): - if any(p not in active for p in change['pages']): + if any(p != 'README.md' and p not in active for p in change['pages']): raise ValueError(f'{name}: menu change references an undeclared page')