!1 The SubWiki: Organizing !-FitNesse-! Pages into Hierarchies !2 Why Do We Need Page Hierachies? FitNesse, you recall, is a [[wiki][EditingFitNessePages]], but more than a normal one! A normal wiki is a collection of pages with a flat structure. All the pages are peers. FitNesse, on the other hand, is meant to manage many projects. We'd like each project to have its own wiki hierarchy so that name collisions can be avoided, fixture code can be found easily, etc. We might even need hierarchies within those hierarchies. For example, project one and project two each have their own [[Test suites][SubPage-!'' markup language syntax. When a sub-page is displayed, any unqualified links are assumed to be at the current level. If you want to access a global page, you need to precede the link with a dot. For example, from where we are now on this page, the link !-RecentChanges-! is really a link to !-.FitNesse.RecentChanges-! (which does not exist), whereas the link .RecentChanges is a link to the global page that contains the list of most recently changed pages. !3 Navigating through Sub Wikis * TheĀ '''!contentsĀ '''widget will create a list of all the immediate child pages of a parent page. * Absolute references look like this: !-.TopPage.MyPage.YourPage-! where !-TopPage-! is at the highest level. * Relative references look like this: !-YourPage.MyPage.HisPage-! where !-YourPage-! is a sibling of the page that holds the reference. * Sub page references look like this: !->ChildPage.GrandChildPage-! where !-ChildPage-! is a child of the page that holds the reference. * Backwards Search References look like this: !-<AncestorPage.SomePage-! where !-AncestorPage-! is a parent, grandparent, or somewhere up the parent chain. You can use this to search backwards through the page hierarchy until you find the named page. !3 [[!-Test Suites-!][