Summary:Information about Hierarchical Groups
Categories:Hierarchy, PageNaming

Questions answered by this recipe

How come PmWiki doesn't have hierarchical groups? Are there any recipes that provide them?


Information about Hierarchical Groups

Cluster   Group-clustering recipe.
Hg   Produce Hierarchical groups like effects on your site
Subgroup Markup   Add one level of subpage using [[,subpage]] markup
Hierarchical Groups   Why PmWiki doesn't use hierarchical or nested groups

Here is a brief table comparing/contrasting Hg/Cluster as both are very similar recipes, and use almost identical syntax:

Hierarchical Group FeaturesHgCluster
Hierarchical groupfooters, headers, attributes, css, and configYesYes
Name-based clusteringNoYes
Subgroup, Subname, and index page variablesYesYes
Built in Group Titles page variablesYesYes
Absolute, Relative, & Descendent Link shortcutsYesYes
Automatic Bread Crumb markupYesYes
Bread Crumb AliasingYesYes
Generalized hierarchical page variablesYesYes
Built in CleanUrls capabilityYesNo
Link prefixing & virtual wikisYesNo

Definitions and notes:

Hierarchical groupfooter, headers, attributes, css, and config
Causes these various features of group Kingdom to be passed down to Kingdom-Animal-Canine except where specifically overwritten at a lower level.
Name-based clustering
Pages can be clustered as well as groups. Kingdom-Animal-Canine.Dog and Kingdom-Animal-Canine.Dog-Terrier can be part of the same cluster.
Subgroup, Subname, and index page variables
Uses notation like $g3 and $n2 to refer to the various subparts of the page name. $g0 and $n0 are an index of how many parts there are in the group or name respectively.
Built in Group Titles page variables
This feature gives you a $grouptitle page variable for use on your page. In Hg you can set up a single Site.GroupTitles page and use text variables to define group titles (if not set, Hg returns the last subgroup). Cluster look for titles in various group locations according to rules in the GroupTitle recipe.
Absolute, Relative, & Descendent Link shortcuts
Introduces special shortcut notations to the links markup (*, ^, -) that make it easier to refer to other link locations in the pagename hierarchy.
Automatic Bread Crumb markup
Allows you to put a simple markup on your page (or skin) that will produce a pretty, clickable breadcrumb. ie: Kingdom > Animal > Canine. Cluster includes a special function to simplify inserting the breadcrumb into the skin. In either you can turn on or off inclusion of the name in the breadcrumb.
Bread Crumb Aliasing
In Hg, a Site.HgBreadCrumbs page is used to control how each element in the breadcrumb display appears, whether or not it appears, or to insert any alternate markup desired--using simple text variables. In Cluster, the breadcrumb can be set to display either the subgroup name, or the subgroup titles.
Generalized hierarchical page variables
Allows you to create an unlimited number of hierarchical page elements. By default Hg has $SideBar and $SideMenu. Cluster has $ClusterSideBar and $ClusterRightBar. Generalizing this allows you to easily create additional elements in your config file.
Built in CleanUrls capability
This automatically changes how links appear from Kingdom-Animal-Canine.Dog to Kingdom/Animal/Canine/Dog. Can be combined with Url rewriting to eliminate the pmwiki.php?n= part. It is disabled by default in Hg.
Link prefixing & virtual wikis
Suppose for example you had groups like Profiles-Id-Caveman and Profiles-Id-Kathryn. By setting a link prefix in the Profiles-Id config page, Caveman and Kathryn would both become virtual top level wiki's with links like [[Hobbies.PmWiki]] automatically being invisibly converted to [[Profiles-Id-{$AuthId}-Hobbies.PmWiki]], and links like [[PmWiki]] being converted to [[Profiles-Id-{$AuthId}.PmWiki]]. There is an escape sequence for links to other parts of the site.



See Discussion at HierarchicalGroups-Talk

User notes? : If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.