Lots of people (including me) find Forrest's menus frustratingly limited.
- There's an artificial distinction between 'menus' (non-clickable
titles) and 'menu-items', which are clickable links. There must be a
strict interleaving of menus and menu-items.
- Following on from the above, it isn't possible to say "this node
should stay closed until I click on it".
These are limitations of the book.xml format (which site.xml generates on
So I was thinking, how about we ditch book.xml, and instead use Maven's
tag doing nothing.
- links with a common prefix (/reference/) must be duplicated.
On this topic, I think we need to draw a distinction between:
1) the menu "data model", which we should represent by an intermediate
menu XML format (let's call this menu.xml).
2) the XML format (book.xml, site.xml, navigation.xml) that the user
So just as faqs, howtos and Docbook are transformed to our intermediate
doc-v11 content format, we'd have site.xml, navigation.xml etc.,
transformed into an intermediate menu.xml format.
This intermediate menu format 1) is transformed directly into a HTML
menu. We'd have:
User --> navigation.xml ---> menu.xml ---> HTML
menu.xml is our 'contract' with skin designers, just as site.xml and
friends are our contract with users. Separating out these two contracts
is nice, because now we can (in theory) have a proliferation of menu
site.xml Fancy DHTML menu
User --> navigation.xml ---> menu.xml --->
I like it mostly because:
- there's no menu/menu-item distinction
- the 'collapse' attribute would let us scratch a major itch of having
- we move closer to out-the-box support for Maven projects
Things I don't like:
- there's this
+ CSS menu
menu.xml isn't publicly visible, and can be verbose and even redundant as