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