Hi everyone,
It’s time to dive deeper into the documentation navigation, so here is the third batch of proposals - a continuation of the discussion started in XWiki.org Documentation Reorganization (batch 2).
Note that when I say “We” or “Our” below, I mean @vmassol , @paulinebessoles and myself, as we worked together on this proposal.
Looking forward to your feedback!
Proposal 6: LiveDatas
Use LiveDatas at the following places:
- At the top level of the documentation provide a big LiveData table listing all doc pages, with filterable columns for type and target (and last reviewed probably too).
- Use this LD in all landing pages (see below Proposal 8 for landing pages) (user guide, dev guide, admin guide, etc).
- Also use this LD in all doc pages for listing children pages (Even if XWiki offers the option to view a page’s children as a LiveTable via the ‘More Actions’ → ‘Children’ menu, we felt that this is not sufficient for users. It’s more helpful for them to see the children listed directly on the page in a LiveTable)
- Implementation note: Use a XSheet bound to the doc XClass to automatically add a section at the end of pages, entitled “Additional Topics”.
Proposal 7: Navigation Tree
The navigation tree in the wiki principal documentation:
Option 1:
├─ Documentation
│ ├─ User Guide
│ ├─ ├─ Page view
│ ├─ ├─ ├─ Tutorials
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ View a page
│ ├─ ├─ ├─ ├─ View page comments
│ ├─ ├─ ├─ ├─ View page attachments
│ ├─ ├─ ├─ ├─ View page history
│ ├─ ├─ ├─ ├─ View page information
│ ├─ ├─ ├─ References
│ ├─ ├─ ├─ ├─ User actions available on a page
│ ├─ ├─ Page creation
│ ├─ ├─ ├─ Tutorials
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Create a page by using the Add page action
│ ├─ ├─ ├─ ├─ Create a page by using a wanted link
│ ├─ ├─ ├─ ├─ Create a page by entering directly the URL of the new page
│ ├─ ├─ ├─ References
│ ├─ ├─ ├─ ├─ ...
│ ├─ ├─ ├─ Explanations
│ ├─ ├─ ├─ ├─ Creating: Simple vs. Advanced
│ ├─ ├─ Page edition
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Edit a page using in-place editor
│ ├─ ├─ ├─ ├─ Edit a page using the in-line form editor
│ ├─ ├─ ├─ ├─ Edit a page using section editing
│ ├─ ├─ ├─ ├─ Edit a page using the wiki editor
│ ├─ ├─ ├─ ├─ Edit a page using the class editor
│ ├─ ├─ ├─ ├─ Edit a page using the object editor
│ ├─ ├─ ├─ References
│ ├─ ├─ ├─ ├─ Common edit actions
│ ├─ ├─ ├─ ├─ Page authors
│ ├─ ├─ ├─ Explanations
│ ├─ ├─ ├─ ├─ Section editing limitations (generated heading ids, include/display macros)
│ ├─ ├─ ├─ ├─ What is the Standalone WYSIWYG Editor
│ ├─ ├─ ├─ ├─ Page title vs Page name
│ ├─ ├─ ├─ ├─ Editing: Simple vs. Advanced
│ ├─ ├─ ├─ ├─ Page syntaxes
│ ├─ ├─ ├─ ├─ Edition conflicts
│ ├─ ├─ ├─ ├─ Page force editing
│ ├─ ├─ Page notifications
│ ├─ ├─ Page source
│ ├─ ├─ Page attachments
│ ├─ ├─ Page history
│ ├─ ├─ Page information
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Choose a page syntax / convert between syntaxes
│ ├─ ├─ ├─ ├─ Edit page default language
│ ├─ ├─ Page children
│ ├─ ├─ Page printing
│ ├─ ├─ Page export
│ ├─ ├─ Page comments & annotations
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Comment a page
│ ├─ ├─ ├─ ├─ Delete a comment
│ ├─ ├─ Page refactoring
│ ├─ ├─ ├─ Tutorials
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Delete a page
│ ├─ ├─ ├─ ├─ Restore a page
│ ├─ ├─ ├─ ├─ Copy a page
│ ├─ ├─ ├─ ├─ Move a page
│ ├─ ├─ ├─ ├─ Rename a page
│ ├─ ├─ ├─ Explanations
│ ├─ ├─ ├─ ├─ Limitations of renaming a page
│ ├─ ├─ Page tagging
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Create a tag
│ ├─ ├─ ├─ ├─ Delete a tag
│ ├─ ├─ ├─ ├─ Tag cloud
│ ├─ ├─ Page liking
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Like a page
│ ├─ Administrator Guide
│ ├─ ├─ Page edition
│ ├─ ├─ ├─ Tutorials
│ ├─ ├─ ├─ ├─ ...
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ Configure the default editor
│ ├─ ├─ Subject #2
│ ├─ ├─ ├─ ...
│ ├─ ├─ Subject #3
│ ├─ ├─ ├─ ...
│ ├─ Developer Guide
│ ├─ ├─ Application creation
│ ├─ ├─ ├─ Tutorials
│ ├─ ├─ ├─ ├─ Creating a FAQ application
│ ├─ ├─ ├─ How-to
│ ├─ ├─ ├─ ├─ ...
│ ├─ ├─ Subject #2
│ ├─ ├─ ├─ ...
│ ├─ ├─ Subject #3
│ ├─ ├─ ├─ ...
-
Explanations:
- By target user first, then by subject, then by type (see also Diátaxis in complex hierarchies - Diátaxis)
- Each tree node with children is a landing page with explanations, some highlighted docs where it makes sense, and a LD with content based on the Documentation XClass and filtered to match the target + type.
-
Pros:
- Nice navigation
-
Cons:
- Manual navigation, hard to maintain
- We have too many subjects (probably hundreds) and it’ll be hard for users to navigate the tree to find a topic (we can only display like 15-20 entries at once in the tree)
Option 2:
├─ Documentation
│ ├─ User Guide
| ├─ ├─ Tutorials <-- landing page listing all user guide tutorials
│ ├─ ├─ ├─ List 5 tutorials to highlight
│ ├─ ├─ ├─ More...
│ ├─ ├─ How-to
│ ├─ ├─ References
│ ├─ ├─ Explanations
│ ├─ Administrator Guide
| ├─ ├─ Tutorials
│ ├─ ├─ How-to
│ ├─ ├─ References
│ ├─ ├─ Explanations
│ ├─ ├─ Page edition
│ ├─ Developer Guide
| ├─ ├─ Tutorials
│ ├─ ├─ How-to
│ ├─ ├─ References
│ ├─ ├─ Explanations
-
Pros:
- Simple navigation
- Fixed tree size that can be open fully at all times
- No maintenance!
-
Cons:
- Readers will use the LDs to navigate (is it a problem?)
Note: Our preference goes to option 2 (list only some highlights) since there are too many subjects to display at once.
Nav for Extensions
Option 1: A tree
The navigation tree in the change request application page (example):
├─ Subject #1 - CR creation
├─ ├─ Tutorials
├─ ├─ How-to
├─ ├─ ├─ Create a CR
├─ Subject #2 - Manage approvers
├─ Subject #3 - Review CR
Option 2: A LD
Other Navigation Improvements and Cleanup
Also, introduce a left nav panel for the doc home page, for consistency and easiness of nav.
In order to achieve a clean navigation tree/breadcrumb, we need to:
-
To hide:
-
To remove:
- Remove https://www.xwiki.org/xwiki/bin/view/Main/Forge (too hard to explain and unnecessary nowadays)
- Remove Test space
-
To move:
- Contribute → to main wiki
- Surveys pages → under Feedback page
- Drafts ->under Contributing (create Contributing space and hide it in the nav)
As an upcoming improvement, when Cristal is ready to move to xwiki.org web site, the “Documentation” top menu link will be replaced by a dropdown where both XS and Cristal are listed.
More generally the goal is to have the nav look like what’s listed above.
Proposal 8: Landing Pages
- Add a “Landing page” type to the Doc XClass (see proposal 4). The rationale is that we could have used a “Reference” type for these pages but we don’t want to display them when the reader is looking for reference pages as we don’t think the reader will expect to find them listed.
- Have a template for Landing Pages with the following structure:
- A quick description of what the reader will find under that landing page
- A short list of pages we want to highlight (e.g. see the “Navigation Tree”- option 2 proposal above), displayed in blocks (similar to Sponsored Extensions on exo for the L&F)
- A LD listing all doc pages that the landing page represents. Examples:
- For the top level “Documentation” landing page, display all doc pages having a Doc XClass (for XS only, don’t display non-budled-in-XS extensions by default at least)
- For the “User Guide” landing page, display all doc pages having a Doc XClass with a target of “user” (for XS only, don’t display non-budled-in-XS extensions by default at least)
- For the “User Guide/Howto” landing page, display all doc pages having a Doc XClass with a target of “user” and a type of “howto” (for XS only, don’t display non-budled-in-XS extensions by default at least)
- For each Extension landing page, display all doc pages having a Doc XClass and that are children of that Extension page