Summary: How to create a sidebar menu which expands to show sublevel (group) items using conditional markup only
Status: Stable
Prerequisites: pmwiki-2.0
Votes: 5

Not to be confused with ExpandingMenu.


How can I create a compact sidebar menu which expands to show sublevel items when clicking on first level items?


Make sure the skin you use can display first and second level list elements.

Build your Sidebar embracing selected list elements in an (:if group $Groupname :) ... (:if:) conditional directive. These will be displayed only if the page belongs to the specified group. This is most useful to hide second level list elements when not in their group. The sidebar menu must be structured in groups, so that secondary elements point to pages in a group, and an intro page link appears at the top. That gives the effect of opening up the group links when clicked on the intro page link.

Example SideBar

*[[GroupOne/GroupOne]] (:if group GroupOne:)
**[[GroupOne/Page3]] (:if:)
*[[GroupTwo/GroupTwo]] (:if group GroupTwo:)
**[[GroupTwo/Page6]] (:if:)
*PmWiki (:if group PmWiki:)
** [[PmWiki/Installation | Download and Install]]
** [[PmWiki/Tips For Editing]]
** [[PmWiki/Documentation Index]]
** [[PmWiki/FAQ]] (:if:)

To avoid having each group edit the Main.SideBar you can expand on this idea and allow each group to have its own SideBar-Menu page conditionally included like this:

Example SideBar

(:if group GroupOne:)(:include {$Group}.SideBar-Menu:)(:if:)
(:if group GroupTwo:)(:include {$Group}.SideBar-Menu:)(:if:)
(:if group PmWiki:)(:include {$Group}.SideBar-Menu:)(:if:)

Example Group.SideBar-Menu Note: You do not have to fully qualify the group pages.


  • This recipe was last tested on PmWiki version: 2beta26
  • This recipe requires at least PmWiki version: 2

See also



See discussion at ExpandingMenus-Talk