To ease usage of the OOo wiki, some rules should be helpful, to achieve
- that URLs of interest can be guessed,
- that an author knows where to locate his/her page and how to categorize it,
- that ideally no redundant information (e.g. lists of something need to maintained).
For filling organizational pages, the DPL (Dynamic Page List) extension comes at hand. Uno organizational pages are populated with the help of DPL.
Every page is
- either an overview page, providing the logical (and partly locational) coherence (e.g. project pages) while also providing links to subtopics, or
- a container page, basically listing articles of a particular type touching a set of particular topics, or
- a content page, describing something in details.
The Uno content pages are organized in a way, assuming that every article
- has exactly one type (e.g. an article may be an tutorial, or a specification),
- touches one or more topics (e.g. Java or C++ or Development), and
- belongs to exactly one project respectively module (e.g. Binary Uno or Java Uno).
Currently used types are:
- Spec - Specification.
- Impl - Description of an Implementation.
- Test - Description of a Test for an Implemenation.
- Effort - Something which is in the works.
- Article - An informative article about a particular topic.
- Tutorial - A Tutorial explaining something.
- Analysis - An Analysis.
- Module - Description of a source code module.
- Project - Entry page of an accepted OOo project.
- Proposal - A page proposing a change.
- Meta - A page describing a type or a topic.
- Term - A particular term.
Currently used topics are:
- Cpp - Pages related to C++.
- Java - Pages related to Java.
- Uno:<impl> - e.g. Uno:Java for Java Uno or Uno:Cpp for C++ Uno.
Pages need to be distributed to where they belong. AFAIK Wikipedia uses a flat structure, basically putting all pages side by side. As OOo is already partitioned by its accepted projects, IMHO pages should be distributed to their projects.
Also, pages have exactly one type. Natural approach again IMHO is, to differentiate pages by their type and to distribute them into appropriate folders. E.g. into "Specifications" or "Modules". Natural choice for organizing pages is the wiki subpage feature. That means that the organization of the OOo wiki in general (at least wrt the accepted projects) should follow the following approach:
- <Project>/Modules/<module a>
- <Project>/Modules/<module b>
- <Project>/Specifications/<spec. a>
Tutorials often provide code snippets to teach a particular thing of interest. The Uno tutorials separate these snippets into dedicated pages which than get included by the tutorial. This allows to show the snippet not only in multiple tutorials, but to also make it available as example usages e.g. of a particular API.
Container pages are created with help of DPL. E.g.
- Uno - Project page for the UDK accepted project.
- Uno/Modules - Overview page listing all modules belonging to Uno.
- Uno/Specifications - Overview page listing all specifications belonging to Uno.
- Uno/Binary - Sub project for the Uno Binary language binding.
- Uno/Binary/Modules - overview page for modules belonging to Binary Uno.
- Uno/Binary/Modules/remotebridges - Page describing the remotebridges module.
- Uno/Binary/Modules/registry - Page describing the jurt module.
- Uno/Binary/Specifications - overview page listing specifications belonging to Binary Uno.
- Uno/Binary/Implementations - overview page listing specifications belonging to Binary Uno.
- Uno/Cpp - Sub project for the Uno C++ language binding.
- Uno/Cpp/Modules - overview page for modules belonging to C++ Uno.
- Uno/Cpp/Modules/SALhelper - Page describing the salhelper module.
- Uno/Cpp/Modules/CPPUhelper - Page describing the cppuhelper module.
- Uno/Cpp/Specifications - overview page listing specifications belonging to C++ Uno.
- Uno/Cpp/Implementations - overview page listing specifications belonging to C++ Uno.
- Uno/Java - Sub project for the Uno Java language binding.
- Uno/Java/Modules - overview page for modules belonging to Java Uno.
- Uno/Java/Modules/ridljar - Page describing the ridljar module.
- Uno/Java/Modules/JURT - Page describing the jurt module.
- Uno/Java/Specifications - overview page listing specifications belonging to Java Uno.
- Uno/Java/Implementations - overview page listing specifications belonging to Java Uno.
- Uno/PyUno - Sub project for the Uno Python language binding.