README.md
1# Acharts Plugin for DokuWiki
2
3The `achart` plugin for DokuWiki makes it easy to insert interactive data charts rendered by [APEXCHARTS.JS](http://www.apexcharts.com/).
4
5This plugin accepts the same JavaScript object that ApexCharts takes to generate a chart. Any chart describable by a static JavaScript object is supported. All types of charts natively supported by ApexCharts can be rendered.
6
7[js-yaml v4.1.0](https://github.com/nodeca/js-yaml)
8
9[ApexCharts v3.28.2](https://github.com/apexcharts/apexcharts.js)
10
11## Installation
12The latest ZIP package of this plugin can be downloaded [here](http://github.com/karl257/dokuwiki-plugin-achart/zipball/master).
13
14If you install this plugin manually, make sure it is installed in `lib/plugins/achart/` - if the folder is called different it may not work.
15
16Please refer to the [DokuWiki document](http://www.dokuwiki.org/plugins) for additional info on how to install plugins in DokuWiki.
17
18Here are a few screenshots of the rendered charts:
19
20![Line Chart with Annotations](https://i.imgur.com/HvWG7Lk.png)
21
22![Bar chart](https://i.imgur.com/h3TPT0D.png)
23
24![Pie chart](https://i.imgur.com/qS26V9z.png)
25
26For more examples, check the [Examples](https://apexcharts.com/javascript-chart-demos).
27
28## Usage
29
30### Data from a local file
31
32```
33<achart url=:wiki:convertcsv.csv height=320px align=center>
34{
35 chart: {
36 height: 350,
37 type: 'bar',
38 },
39 dataLabels: {
40 enabled: false
41 },
42 title: {
43 text: "Ajax Example",
44 }
45}
46</achart>
47```
48
49### Data from a remote file
50```
51<achart url=https://gist.github.com/karl257/6e799cc0d8a5e47ac11d97672a6890dc/raw/0a80ea7ff3b89d0f376aec0eff0d817550b32334/convertcsv.csv height=320px align=center>
52{
53 chart: {
54 height: 350,
55 type: 'bar',
56 },
57 dataLabels: {
58 enabled: false
59 },
60 title: {
61 text: "From web",
62 }
63}
64</achart>
65```
66
67### Add data directly
68
69```
70var options = {
71 chart: {
72 width: 380,
73 type: 'pie',
74 toolbar: { show: true,tools: { download: true } },
75 },
76 labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],
77 series: [44, 55, 13, 43, 22],
78 responsive: [{
79 breakpoint: 480,
80 options: {
81 chart: {
82 width: 200
83 },
84 legend: {
85 position: 'bottom'
86 }
87 }
88 }]
89}
90```
91This plugin accepts the same JavaScript object that the `new ApexCharts()` function of ApexCharts takes to render a chart. To include a chart in your DokuWiki page, simply wrap such a JavaScript object with a `<achart>` tag.
92
93To render a pie chart for example:
94```
95<achart>
96{
97 chart: {
98 width: 380,
99 type: 'pie',
100 toolbar: { show: true,tools: { download: true } },
101 },
102 labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],
103 series: [44, 55, 13, 43, 22],
104 responsive: [{
105 breakpoint: 480,
106 options: {
107 chart: {
108 width: 200
109 },
110 legend: {
111 position: 'bottom'
112 }
113 }
114 }]
115}
116</achart>
117```
118
119Also note that you can include comments in the snippet, both styles (`//` and `/* */`) are supported.
120
121The major restriction is that the JavaScript object must be **static**, i.e. it cannot include function calls or function expressions, for security reasons.
122
123## Options
124The `<achart>` tag can carry optional attributes to customize the appearance of the chart. The attributes are separated by spaces, each specified in the format of `name=value`. Valid attributes are:
125
126| Name | Description |
127|:--------:|:----------- |
128| `width` | Width of the chart, specified in CSS format, e.g. 50% or 320px. |
129| `height` | Height of the chart, in the same format as `width`. |
130| `align` | Chart alignment, can be `left`, `right` or `center`. |
131
132For instance to make your chart occupying half width of its container and floated to the right:
133```
134<achart align="right" width=50% >
135 {
136 ...
137 }
138</achart>
139```
140
141## Thanks
142This plugin is based on [dokuwiki-plugin-c3chart](https://github.com/jasonxxu/dokuwiki-plugin-c3chart) created by @jasonxxu and inspired by [dokuwiki-plugin-amchart](https://github.com/35niavlys/dokuwiki-plugin-amchart) created by @35niavlys, Special thanks to them.
143
144## More examples ##
145Visit [apexcharts.com](https://apexcharts.com/javascript-chart-demos/)
146
147## Todo
148
149Support Pdf and ODT export
150
151## License
152Copyright (C) Karl Nickel
153
154This program is free software; you can redistribute it and/or modify
155it under the terms of the GNU General Public License as published by
156the Free Software Foundation; version 2 of the License
157
158This program is distributed in the hope that it will be useful,
159but WITHOUT ANY WARRANTY; without even the implied warranty of
160MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
161GNU General Public License for more details.
162
163See the COPYING file in your DokuWiki folder for details
164