xref: /plugin/vegalite/README.md (revision 39296c152262818f39e69de7d96cd8763dc158f7)
1e66c86a2SRobert Weinmeister# Vega-Lite Plugin for DokuWiki
2e66c86a2SRobert Weinmeister
3e66c86a2SRobert WeinmeisterThis is a plugin for [DokuWiki](https://www.dokuwiki.org/dokuwiki). It provides support for the interactive graphing tool [Vega-Lite](https://vega.github.io/vega-lite/). Vega-Lite is a JavaScript based interactive graphing tool using  concise, declarative JSON syntax to create diagrams dynamically.
4e66c86a2SRobert Weinmeister
5e66c86a2SRobert Weinmeister1. [Installation](#installation)
6e66c86a2SRobert Weinmeister2. [Basic example](#basic-example)
7e66c86a2SRobert Weinmeister3. [Further Functionality](#further-functionality)
8e66c86a2SRobert Weinmeister4. [Configuration and Settings](#configuration-and-settings)
9e66c86a2SRobert Weinmeister5. [Known Problems](#known-problems)
10e66c86a2SRobert Weinmeister6. [License](#license)
11e66c86a2SRobert Weinmeister
12e66c86a2SRobert Weinmeister## Installation
13e66c86a2SRobert Weinmeister
14e66c86a2SRobert WeinmeisterInstall the plugin using the [Dokuwiki Plugin Manager](https://www.dokuwiki.org/plugin:plugin). Refer to [Plugins](https://www.dokuwiki.org/plugins|Plugins) on how to install plugins manually.
15e66c86a2SRobert Weinmeister
16e66c86a2SRobert Weinmeister⚠️ The plugin requires PHP 8.0+ to function properly.
17e66c86a2SRobert Weinmeister
18e66c86a2SRobert Weinmeister## Basic example
19e66c86a2SRobert Weinmeister
20e66c86a2SRobert WeinmeisterProvide the Vega-Lite data enclosed by the ```<vegalite>``` tags:
21e66c86a2SRobert Weinmeister
22e66c86a2SRobert Weinmeister    <vegalite>
23e66c86a2SRobert Weinmeister    {
24e66c86a2SRobert Weinmeister        "$schema": "https://vega.github.io/schema/vega-lite/v6.json",
25e66c86a2SRobert Weinmeister        "description": "A simple bar chart with embedded data.",
26e66c86a2SRobert Weinmeister        "data": {
27e66c86a2SRobert Weinmeister            "values": [
28e66c86a2SRobert Weinmeister            {"a": "A", "b": 28}, {"a": "B", "b": 55}, {"a": "C", "b": 43},
29e66c86a2SRobert Weinmeister            {"a": "D", "b": 91}, {"a": "E", "b": 81}, {"a": "F", "b": 53},
30e66c86a2SRobert Weinmeister            {"a": "G", "b": 19}, {"a": "H", "b": 87}, {"a": "I", "b": 52}
31e66c86a2SRobert Weinmeister            ]
32e66c86a2SRobert Weinmeister        },
33e66c86a2SRobert Weinmeister        "mark": "bar",
34e66c86a2SRobert Weinmeister        "encoding": {
35e66c86a2SRobert Weinmeister            "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}},
36e66c86a2SRobert Weinmeister            "y": {"field": "b", "type": "quantitative"}
37e66c86a2SRobert Weinmeister        }
38e66c86a2SRobert Weinmeister    }
39e66c86a2SRobert Weinmeister    </vegalite>
40e66c86a2SRobert Weinmeister
41e66c86a2SRobert WeinmeisterThis will be rendered by the plugin and shown as:
42e66c86a2SRobert Weinmeister
43*39296c15SRobert Weinmeister![The diagram as provided by Vega-Lite](https://github.com/RobertWeinmeister/dokuwiki-vegalite/blob/main/example.png?raw=true)
44e66c86a2SRobert Weinmeister
45e66c86a2SRobert WeinmeisterVega-Lite supports multiple other graphs besides the shown bar chart, for more examples and details on the Vega-Lite syntax, see <https://vega.github.io/vega-lite/examples/>.
46e66c86a2SRobert Weinmeister
47e66c86a2SRobert Weinmeister## Further Functionality
48e66c86a2SRobert Weinmeister
49e66c86a2SRobert Weinmeister### Size Adjustmens
50e66c86a2SRobert Weinmeister
51e66c86a2SRobert WeinmeisterThe width and height of the container of the diagram can be adjusted using
52e66c86a2SRobert Weinmeister
53e66c86a2SRobert Weinmeister    <vegalite #width #height>
54e66c86a2SRobert Weinmeister
55e66c86a2SRobert Weinmeisterwhere #width and #height can take any value supported by CSS, for example:
56e66c86a2SRobert Weinmeister
57e66c86a2SRobert Weinmeister    <vegalite 100% 1cm>
58e66c86a2SRobert Weinmeister
59e66c86a2SRobert Weinmeister## Configuration and Settings
60e66c86a2SRobert Weinmeister
61e66c86a2SRobert WeinmeisterNo further configuration is required.
62e66c86a2SRobert Weinmeister
63e66c86a2SRobert Weinmeister### Version and Location
64e66c86a2SRobert Weinmeister
65e66c86a2SRobert WeinmeisterYou can choose which Vega/Vega-Lite/Vega-Embed versions you want to use:
66e66c86a2SRobert Weinmeister
67e66c86a2SRobert Weinmeister- The locally hosted versions (currently versions 6.2.0/6.4.3/7.1.0) or
68e66c86a2SRobert Weinmeister- the remotely hosted, currently available, latest version.
69e66c86a2SRobert Weinmeister
70e66c86a2SRobert Weinmeister## License
71e66c86a2SRobert Weinmeister
72e66c86a2SRobert WeinmeisterThis project is licensed under the GNU General Public License v2.0. See the [LICENSE](LICENSE) file for details.
73e66c86a2SRobert Weinmeister
74e66c86a2SRobert WeinmeisterVega, Vega-Lite and Vega-Embed are licensed under the BSD 3-Clause "New" or "Revised" License. See the [LICENSE VEGA](LICENSE%20LICENSE%20VEGA), [LICENSE VEGA-LITE](LICENSE%20LICENSE%20VEGA-LITE) and [LICENSE VEGA-EMBED](LICENSE%20LICENSE%20VEGA-EMBED) file for details.
75