Commit de2dd77
[BUGFIX] Exclude orphan pages from next/prev navigation (#1138)
## Summary
This PR fixes the issue where orphan pages (marked with `:orphan:`
directive) are incorrectly included in the next/previous navigation
chain, causing broken navigation links.
Resolves: #1137
## Changes
### Core Fix (`TwigExtension.php`)
- Added `isOrphanDocument()` helper method to detect if a document entry
corresponds to an orphan page
- Modified `getPagerLinks()` to:
- Return only the "top" link for orphan pages (no prev/next)
- Exclude orphan targets from prev/next links
- Modified `getPrevNextLinks()` to:
- Return empty array for orphan pages
- Exclude orphan targets from the navigation links
### Test Updates
Updated expected output files to reflect the corrected behavior:
- `next-prev-by-toctree/expected/i.html` - orphan page no longer has
prev/next links
- `next-prev-by-toctree/expected/three/pi.html` - orphan page no longer
has prev/next links
- `next-prev-by-toctree/expected/four.html` - no longer links to orphan
`i.html`
- `changelog/expected/Index.html` - no longer links to orphan
`Changelog-12.html`
- `changelog/expected/Changelog/12.0/Index.html` - no longer has prev
link to orphan
- `main-menu-json/expected/index.html` - no longer links to orphan
`mainMenu.json.html`
## Test Plan
- [x] `vendor/bin/phpunit --filter next-prev-by-toctree` passes
- [x] `vendor/bin/phpunit tests/Integration/IntegrationTest.php` passes
(108 tests, all assertions pass)
- [x] PHP syntax check passes
## Before/After
**Before:** Clicking "Next" on docs.typo3.org/Home/Overview.html leads
to WikiLanding.html → mainMenu.json.html (404)
**After:** Orphan pages are excluded from navigation chain, preventing
broken links
Co-authored-by: Lina Wolf <48202465+linawolf@users.noreply.github.com>1 parent 5a47b33 commit de2dd77
File tree
7 files changed
+85
-75
lines changed- packages/typo3-docs-theme/src/Twig
- tests/Integration/tests-full
- changelog/expected
- Changelog/12.0
- next-prev-by-toctree/expected
- three
7 files changed
+85
-75
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
| 651 | + | |
| 652 | + | |
651 | 653 | | |
652 | | - | |
653 | | - | |
654 | | - | |
655 | | - | |
656 | | - | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
657 | 685 | | |
658 | 686 | | |
659 | 687 | | |
| |||
727 | 755 | | |
728 | 756 | | |
729 | 757 | | |
| 758 | + | |
| 759 | + | |
730 | 760 | | |
731 | | - | |
732 | | - | |
733 | | - | |
734 | | - | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
735 | 785 | | |
736 | 786 | | |
737 | 787 | | |
| |||
753 | 803 | | |
754 | 804 | | |
755 | 805 | | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
756 | 831 | | |
757 | 832 | | |
758 | 833 | | |
| |||
Lines changed: 1 addition & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| |||
278 | 277 | | |
279 | 278 | | |
280 | 279 | | |
281 | | - | |
| 280 | + | |
282 | 281 | | |
283 | 282 | | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | 283 | | |
291 | 284 | | |
292 | 285 | | |
| |||
Lines changed: 0 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| |||
242 | 241 | | |
243 | 242 | | |
244 | 243 | | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | 244 | | |
256 | 245 | | |
257 | 246 | | |
| |||
Lines changed: 0 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| |||
178 | 177 | | |
179 | 178 | | |
180 | 179 | | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | 180 | | |
192 | 181 | | |
193 | 182 | | |
| |||
Lines changed: 0 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| |||
165 | 164 | | |
166 | 165 | | |
167 | 166 | | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | 167 | | |
175 | 168 | | |
176 | 169 | | |
| |||
Lines changed: 0 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
26 | 24 | | |
27 | 25 | | |
28 | 26 | | |
| |||
158 | 156 | | |
159 | 157 | | |
160 | 158 | | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | 159 | | |
178 | 160 | | |
179 | 161 | | |
| |||
Lines changed: 0 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| |||
157 | 156 | | |
158 | 157 | | |
159 | 158 | | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | 159 | | |
171 | 160 | | |
172 | 161 | | |
| |||
0 commit comments