Table of Contents
struct Plugin
Compatible with DokuWiki
- 2024-02-06 "Kaos" yes
- 2023-04-04 "Jack Jackrum" yes
- 2022-07-31 "Igor" no
- 2020-07-29 "Hogfather" no
Similar to data, data-au, json, jsoneditor, jsongendoc, jsontable, strata
Needed for bez, dirtylittlehelper, structacl, structat, structautolink, structcombolookup, structcondstyle, structgantt, structgeohash, structgroup, structgroup8, structgroupby, structinputstretch, structjoin, structnumber, structodt, structprogress, structpublish, structrowcolor, structsection, structstatus, structtasks, structtemplate, structtemplating, structupdate, swarmwebhook
Why “struct” instead of “data”?
This plugin draws heavy inspiration from the Data plugin. It basically tries to solve the same problem of assigning structured data to pages and build automatic aggregations from it.
So why another plugin? The data plugin proved to be very useful and versatile but had a few shortcomings:
- each page defined its own set of structured data
- there was no central way to ensure the structured data was consistent over multiple pages
- there was no easy way to modify the structured data set for multiple pages
- there was no validation for the data entered
Last not least this struct plugin is supported by the move plugin.
The Bureaucracy plugin helped with some of the points but not all of them. So Struct tries to rethink the Data plugin:
- structured data is classified in schemas
- a schema holds a set of fields
- fields have a specific type
- types control how the data is displayed and validated
- types have specific configuration within the schema
- schemas are managed centrally in an admin interface
- pages are assigned schemas through namespace patterns
- changing a schema changes it for all associated pages
- the structured data is no longer part of the page syntax
- data is only edited via a dedicated form within the standard editor or through inline editing
- it is possible to create global data not attached to any page 1)
- global data can be used as data source for lookup dropdowns
- serial data is a collection of data structures belonging to certain pages
- all crucial code is covered by automated tests
This allows for central management of wanted structured data while keeping the functionality of the data plugin.
Installation
External requirements: This plugin requires the following additional components that must be installed separately:
Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.
Usage
Please refer to the following pages to learn how to use the plugin:
-
-
- Aggregation Types
- Aggregation Control
Here a complete overview of all sub-pages to struct plugin.
Samples
Development
Change Log
- Merge pull request #704 from dokuwiki-translate/lang_update_801_17064… (2025-04-07 11:21)
- Merge pull request #730 from dokuwiki-translate/lang_update_1066_1740… (2025-03-25 08:36)
- translation update (2025-02-26 16:40)
- Version upped (2024-07-08 23:51)
- Merge pull request #707 from cosmocode/bot/autofix (2024-07-08 20:30)
- 🤖 Automatic code style fixes (2024-07-08 20:27)
- Fix cloud controls (2024-07-08 20:23)
- Version upped (2024-04-09 23:51)
Known Bugs and Issues
Please report bugs and issues at https://github.com/cosmocode/dokuwiki-plugin-struct/issues