Table of contents
The system automatically creates a Table of contents for each organization (as well for to other sets of pages containing a template TOC) containing the tree of all its sub-pages, at a location like the following:
https://culturaitaliana.org/wiki/[organization name]/Table of contents
The Table of contents (which can contain an arbitrary number of nested sub-pages) can be interactively edited through the related form (pages can be shown/hidden and rearranged) and is used as reference to create the organization's page on the front-end, in such a way that it includes only the pages selected in the TOC and in the desired order, together with a specular navigation panel.
Currently (November 2020) the system is designed in such a way that a TOC can be put within any set of pages a data consumer wants to display on any front-end, and is not limited to the pages of the organizations themselves. We plan to use such feature, for instance, to create a directory of authors and books, either with a general TOC, or (preferably, as the number of authors and works grows) with a TOC for each author (a general TOC, however, might coexist with others specific, provided that the queries are handled correctly through the APIs, while an optimal solution for a data consumer who wants to display a page with all the authors and their books, at the same time keeping the individual TOCs of a manageable size on the back-end, would be just to retrieve all the required specific TOCs, and then to combine them together either in "realt-time" or with some pre-processing operation).
Also, because where the page language is not directly specified on the back-end (for instance through an annotated semantic property, or using the language code suffix on the page title as foreseen by the template Languages --- ***Attention, currently, on November 2020, we are not using such methodologies, and management of multiple languages might have to be adjusted to fit all needs) the system will try to detect it using some external libraries, we plan to extend the Table of content's form in order to allow to set the page language through its related form when the language detection has failed (the script has been set to accept only high indexes of confidence, therefore rather than indicating a wrong language, it will omit the information). This way, the menu on the top right on the front-end, allowing to filter the contents by languages, will always contain the complete set of languages, and all the articles in a given language will be included/excluded consistently from the navigation. Below, is the table of contents of the root pages of this wiki, as appears once rendered, and when edited through the related form (by design, it excludes all the organization's related pages).
Here is an example of a TOC (without nested pages) once rendered
And here of a TOC while edited through the related form (items can be rearranged and selected/deselected, and that will be matched on the front-end)
Here is an example of a more complex TOC, with nested pages
and when edited through the related form
(nested pages can be rearranged on the same level only)