svg-graph 1.0.5 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/History.txt +18 -0
- data/README.markdown +90 -6
- data/Rakefile +26 -14
- data/lib/SVG/Graph/Bar.rb +2 -2
- data/lib/SVG/Graph/BarBase.rb +25 -24
- data/lib/SVG/Graph/BarHorizontal.rb +1 -1
- data/lib/SVG/Graph/ErrBar.rb +189 -0
- data/lib/SVG/Graph/Graph.rb +141 -64
- data/lib/SVG/Graph/Line.rb +1 -1
- data/lib/SVG/Graph/Pie.rb +76 -49
- data/lib/SVG/Graph/Plot.rb +2 -2
- data/lib/SVG/Graph/Schedule.rb +18 -19
- data/lib/SVG/Graph/TimeSeries.rb +26 -22
- data/lib/svggraph.rb +12 -10
- data/test/test_svg_graph.rb +48 -6
- metadata +41 -136
- data.tar.gz.sig +0 -2
- data/Manifest.txt +0 -56
- data/build.xml +0 -143
- data/dist.xml.in +0 -46
- data/images/bar.png +0 -0
- data/images/bar.svg +0 -76
- data/images/bar.svgz +0 -0
- data/images/barhorizontal.png +0 -0
- data/images/barhorizontal.svg +0 -76
- data/images/barhorizontal.svgz +0 -0
- data/images/line.png +0 -0
- data/images/line.svg +0 -80
- data/images/line.svgz +0 -0
- data/images/pie.png +0 -0
- data/images/pie.svg +0 -70
- data/images/pie.svgz +0 -0
- data/images/plot.png +0 -0
- data/images/plot.svg +0 -131
- data/images/plot.svgz +0 -0
- data/images/schedule.png +0 -0
- data/images/schedule.svg +0 -67
- data/images/timeseries.png +0 -0
- data/images/timeseries.svg +0 -179
- data/images/timeseries.svgz +0 -0
- data/index.xml +0 -281
- data/install.rb +0 -161
- data/screenshots.xml +0 -148
- data/style/common.xsl +0 -37
- data/style/release_html.xsl +0 -169
- data/style/release_txt.xsl +0 -25
- data/svg-graph.gemspec +0 -58
- data/test/data.txt +0 -4
- data/test/plot.rb +0 -51
- data/test/schedule.rb +0 -43
- data/test/single.rb +0 -33
- data/test/test.rb +0 -54
- data/test/test_data_point.rb +0 -67
- data/test/test_plot.rb +0 -282
- data/test/timeseries.rb +0 -58
- metadata.gz.sig +0 -1
data/images/timeseries.svgz
DELETED
Binary file
|
data/index.xml
DELETED
@@ -1,281 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
3
|
-
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
4
|
-
<article>
|
5
|
-
<title>SVG::Graph</title>
|
6
|
-
|
7
|
-
<subtitle>@ANT_VERSION@</subtitle>
|
8
|
-
|
9
|
-
<articleinfo>
|
10
|
-
<date>@ANT_DATE@</date>
|
11
|
-
|
12
|
-
<author>
|
13
|
-
<firstname>Sean</firstname>
|
14
|
-
|
15
|
-
<surname>Russell</surname>
|
16
|
-
|
17
|
-
<email>serATgermaneHYPHENsoftwareDOTcom</email>
|
18
|
-
</author>
|
19
|
-
</articleinfo>
|
20
|
-
|
21
|
-
<sect1>
|
22
|
-
<title>What is it?</title>
|
23
|
-
|
24
|
-
<para>SVG:::Graph is a pure Ruby library for generating charts, which are
|
25
|
-
a type of graph where the values of one axis are not scalar. SVG::Graph
|
26
|
-
has a verry similar API to the Perl library SVG::TT::Graph, and the
|
27
|
-
resulting charts also look the same. This isn't surprising, because
|
28
|
-
SVG::Graph started as a loose port of SVG::TT::Graph, although the
|
29
|
-
internal code no longer resembles the Perl original at all.</para>
|
30
|
-
|
31
|
-
<para>SVG::Graph isn't only for charts. With version 0.4.0, support for
|
32
|
-
Plot charts was added, so scalar data may now be charted.</para>
|
33
|
-
</sect1>
|
34
|
-
|
35
|
-
<sect1>
|
36
|
-
<title>What's new?</title>
|
37
|
-
<para>You can find that out in the <ulink
|
38
|
-
url='changelog.html'>change log.</ulink></para>
|
39
|
-
</sect1>
|
40
|
-
|
41
|
-
<sect1>
|
42
|
-
<title>Screenshot</title>
|
43
|
-
|
44
|
-
<para>Gotta have one.</para>
|
45
|
-
|
46
|
-
<mediaobject>
|
47
|
-
<imageobject>
|
48
|
-
<imagedata fileref="images/pie.svg" format="SVG" />
|
49
|
-
</imageobject>
|
50
|
-
</mediaobject>
|
51
|
-
|
52
|
-
<para>Here's a PNG version of the above image for the
|
53
|
-
SVG-challenged:</para>
|
54
|
-
|
55
|
-
<mediaobject>
|
56
|
-
<imageobject>
|
57
|
-
<imagedata fileref="images/pie.png" format="PNG" />
|
58
|
-
</imageobject>
|
59
|
-
</mediaobject>
|
60
|
-
|
61
|
-
<para>The SVG version is <emphasis>much</emphasis> cooler. <ulink
|
62
|
-
url="screenshots.html">More screenshots are available</ulink>.</para>
|
63
|
-
</sect1>
|
64
|
-
|
65
|
-
<sect1>
|
66
|
-
<title>Why use it?</title>
|
67
|
-
|
68
|
-
<para>If you're a Ruby programmer, you can't use SVG::TT::Graph directly.
|
69
|
-
This package is for you.</para>
|
70
|
-
|
71
|
-
<para>If you want one of the features that this package has that the Perl
|
72
|
-
version doesn't, and you don't mind doing your graph code in Ruby, then
|
73
|
-
this package is for you.</para>
|
74
|
-
|
75
|
-
<para>If you want to generate SVGs that aren't CSS styled (and work with
|
76
|
-
more SVG renderers), use this package.</para>
|
77
|
-
|
78
|
-
<para>If you're a Perl wienie or you have something against Ruby, use
|
79
|
-
SVG::TT::Graph. If it doesn't provide you with the features you want, hack
|
80
|
-
it yourself.</para>
|
81
|
-
</sect1>
|
82
|
-
|
83
|
-
<sect1>
|
84
|
-
<title>Getting it</title>
|
85
|
-
|
86
|
-
<para>The source archives contain the example script(s) and an install
|
87
|
-
script. Documentation must be downloaded separately.<itemizedlist>
|
88
|
-
<listitem>
|
89
|
-
<para><ulink
|
90
|
-
url="http://www.germane-software.com/archives/svg_graph_@ANT_VERSION@.tgz">Gzipped
|
91
|
-
sources</ulink></para>
|
92
|
-
</listitem>
|
93
|
-
|
94
|
-
<listitem>
|
95
|
-
<para><ulink
|
96
|
-
url="http://www.germane-software.com/archives/svg_graph_api_@ANT_VERSION@.tgz">Gzipped
|
97
|
-
documentation</ulink></para>
|
98
|
-
</listitem>
|
99
|
-
|
100
|
-
<listitem>
|
101
|
-
<para><ulink
|
102
|
-
url="http://www.germane-software.com/archives/svg_graph_@ANT_VERSION@.zip">Zipped
|
103
|
-
sources</ulink></para>
|
104
|
-
</listitem>
|
105
|
-
|
106
|
-
<listitem>
|
107
|
-
<para><ulink
|
108
|
-
url="http://www.germane-software.com/archives/svg_graph_api_@ANT_VERSION@.zip">Zipped
|
109
|
-
documentation</ulink></para>
|
110
|
-
</listitem>
|
111
|
-
</itemizedlist></para>
|
112
|
-
</sect1>
|
113
|
-
|
114
|
-
<sect1>
|
115
|
-
<title>Why?</title>
|
116
|
-
|
117
|
-
<para>The SVG::TT:Graph package is just fine. It lacked a couple of
|
118
|
-
features that I wanted, and it was in Perl<footnote>
|
119
|
-
<para>Perl is from Hell. The language is bad enough, but working with
|
120
|
-
the package system -- CPAN, etc. -- is an exercize in masochism. I'd
|
121
|
-
rather chew on glass.</para>
|
122
|
-
</footnote>, so I re-implemented it.</para>
|
123
|
-
|
124
|
-
<para>SVG::Graph is not a straight port of SVG::TT::Graph, because the
|
125
|
-
Perl version uses templates, and I don't believe that this is a job for
|
126
|
-
templates. Templates are great when you have lots of context containing a
|
127
|
-
little bit of evaluated code, but the Graph classes are mostly code with a
|
128
|
-
little SVG; therefore, it makes more sense (and is a hell of a lot more
|
129
|
-
readable) to have the SVG embedded in the code rather than vice versa.
|
130
|
-
However, some of the logic was directly cut and paste out of
|
131
|
-
SVG::TT::Graph, as was the entire CSS code and chunks of the
|
132
|
-
documentation, and the part of the API that the user sees is almost
|
133
|
-
identical to the original.</para>
|
134
|
-
|
135
|
-
<para>In version 0.2.0 I completely refactored the code to make it more
|
136
|
-
modular. As a result, the core Graph class contains most of the graph
|
137
|
-
drawing primatives, and the specializations (Bar, BarHorizontal, Line,
|
138
|
-
Pie, etc.) only draw the plot itself. This results in many fewer lines of
|
139
|
-
code, and that code is more robust. SVG::TT::Graph re-implemented most of
|
140
|
-
the code for every plot type, whereas SVG::Graph reuses most of the
|
141
|
-
code.</para>
|
142
|
-
|
143
|
-
<para>I intend SVG::Graph to have more features than SVG::TT::Graph, which
|
144
|
-
is the main reason for the re-implementation. One such feature is the
|
145
|
-
ability to change the stacking of the data sets. For instance, SVG::Graph
|
146
|
-
allows you to place the data bars from multiple data sets on the same
|
147
|
-
graph side-by-side, rather than overlapping.</para>
|
148
|
-
|
149
|
-
<para>SVG::Graph also has an option to disable CSS styling of the graphs.
|
150
|
-
This has a number of consequences, both positive and negative. The SVGs
|
151
|
-
generated can be larger without CSS, and they are harder to dynamically
|
152
|
-
style (you can't use your own styles with CSS disabled). However, a number
|
153
|
-
of SVG renderers do not support or do not fully support CSS in SVG (KSVG
|
154
|
-
in Konqueror and librsvg, for instance). Adobe and Batik both support CSS,
|
155
|
-
so if those are your targets, you can use CSS. For maximum compatability,
|
156
|
-
disable CSS with the :no_css attriibute.</para>
|
157
|
-
|
158
|
-
<para>The currently supported graph types are:</para>
|
159
|
-
|
160
|
-
<itemizedlist>
|
161
|
-
<listitem>
|
162
|
-
<para>Bar</para>
|
163
|
-
</listitem>
|
164
|
-
|
165
|
-
<listitem>
|
166
|
-
<para>BarHorizontal</para>
|
167
|
-
</listitem>
|
168
|
-
|
169
|
-
<listitem>
|
170
|
-
<para>Line</para>
|
171
|
-
</listitem>
|
172
|
-
|
173
|
-
<listitem>
|
174
|
-
<para>Pie</para>
|
175
|
-
</listitem>
|
176
|
-
|
177
|
-
<listitem>
|
178
|
-
<para>Plot (this is scalar data)</para>
|
179
|
-
</listitem>
|
180
|
-
|
181
|
-
<listitem>
|
182
|
-
<para>TimeSeries (also scalar data, with one axis being dates)</para>
|
183
|
-
</listitem>
|
184
|
-
|
185
|
-
<listitem>
|
186
|
-
<para>Schedule (scalar time range data, with non-scalar Y axis)</para>
|
187
|
-
</listitem>
|
188
|
-
</itemizedlist>
|
189
|
-
</sect1>
|
190
|
-
|
191
|
-
<sect1>
|
192
|
-
<title>Dependancies</title>
|
193
|
-
|
194
|
-
<para>REXML 3.0+, or Ruby 1.8+. If you want to use the SVG compression
|
195
|
-
feature, which generates zlib compressed SVGs, you must also have the Ruby
|
196
|
-
zlib library installed.</para>
|
197
|
-
</sect1>
|
198
|
-
|
199
|
-
<sect1>
|
200
|
-
<title>Usage</title>
|
201
|
-
|
202
|
-
<para>There's API documentation available, either <ulink
|
203
|
-
url="http://www.germane-software.com/software/SVG/SVG::Graph/doc">online</ulink>
|
204
|
-
or for <ulink
|
205
|
-
url="http://www.germane-software.com/archive/svg_graph_api_@ANT_VERSION@.tgz">download</ulink>.
|
206
|
-
Or, you can use rdoc to generate it yourself. The API documentation is
|
207
|
-
pretty comprehensive (Leo Lapworth did a really good job on the docs, and
|
208
|
-
I stole most of them), and there's an example application in the main
|
209
|
-
directory.</para>
|
210
|
-
</sect1>
|
211
|
-
|
212
|
-
<sect1>
|
213
|
-
<title>Notes</title>
|
214
|
-
|
215
|
-
<sect2>
|
216
|
-
<title>SVG feature support</title>
|
217
|
-
|
218
|
-
<para>Some SVG renderers (librsvg) do not understand CSS. This is a
|
219
|
-
problem with Perl's SVG::TT::Graph, because <emphasis>all</emphasis> of
|
220
|
-
the styling of the charts it generates is done with CSS. SVG::Graph is
|
221
|
-
able to inline the styles, rendering graphs that are compatible with
|
222
|
-
more viewers.</para>
|
223
|
-
|
224
|
-
<para>The Pie chart uses the feGaussianBlur filter to generate the
|
225
|
-
shadow, whiich is also unsupperted by some renderers (librsvg). The
|
226
|
-
shadow will not look as smooth on those displays, although it will
|
227
|
-
render.</para>
|
228
|
-
</sect2>
|
229
|
-
|
230
|
-
<sect2>
|
231
|
-
<title>Sizes</title>
|
232
|
-
|
233
|
-
<para>The bar charts PNGs tend to be smaller than the uncompressed SVGs.
|
234
|
-
In the best case (for PNG), the PNG is 66% of the size of the
|
235
|
-
uncompressed SVG.</para>
|
236
|
-
|
237
|
-
<para>For line and pie charts, which are a little more visually complex,
|
238
|
-
the SVGs are smaller than the PNGs. In the best case, the PNG is 130%
|
239
|
-
the size of the SVG. In the worst case, the PNG is 220% the size of the
|
240
|
-
uncompressed SVG.</para>
|
241
|
-
|
242
|
-
<para>The compressed SVGs are always much smaller than the PNGs. In the
|
243
|
-
best case (a vertical bar chart), the PNG is 4.4 times the size of the
|
244
|
-
compressed SVG, and in the worst case (for a pie chart), it is over 12
|
245
|
-
times the size of the compressed SVG.</para>
|
246
|
-
|
247
|
-
<para>These values were measured with inline styled SVGs, and the PNGs
|
248
|
-
were reduced to 8-bit, indexed images, and were crushed with
|
249
|
-
pngcrush.</para>
|
250
|
-
</sect2>
|
251
|
-
</sect1>
|
252
|
-
|
253
|
-
<sect1>
|
254
|
-
<title>Bugs</title>
|
255
|
-
|
256
|
-
<para>SVG::Graph probably contains bugs. In fact, it is probably mostly
|
257
|
-
bugs, held together with some working code around them. In particular,
|
258
|
-
SVG::Graph is probably really intolerant of *your* bugs, and is likely
|
259
|
-
entirely unhelpful in helping you track down problems. We can only pray
|
260
|
-
that this situation improves<footnote>
|
261
|
-
<para>Prayer is much more effective when accompanied by sums of cash
|
262
|
-
sent to the author.</para>
|
263
|
-
</footnote>.</para>
|
264
|
-
|
265
|
-
<para>There is a <ulink
|
266
|
-
url="http://www.germane-software.com/cgi-bin/roundup/svg-graph">bug and
|
267
|
-
feature request database</ulink>; use this, and please create a user
|
268
|
-
account if you don't have one, so that I can email you if I have
|
269
|
-
questions. Alternatively, post anonymously, and check the database
|
270
|
-
often.</para>
|
271
|
-
</sect1>
|
272
|
-
|
273
|
-
<sect1>
|
274
|
-
<title>Repository</title>
|
275
|
-
|
276
|
-
<para>The sourcecode repository is a <ulink
|
277
|
-
url="http://subversion.tigris.org">Subversion</ulink> repository, located
|
278
|
-
<ulink
|
279
|
-
url="http://www.germane-software.com/repositories/public/SVG">here</ulink>.</para>
|
280
|
-
</sect1>
|
281
|
-
</article>
|
data/install.rb
DELETED
@@ -1,161 +0,0 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
|
-
################################################################################
|
3
|
-
# #
|
4
|
-
# Name: install.rb #
|
5
|
-
# Author: Sean E Russell <ser@germane-software.com> #
|
6
|
-
# Version: $Id: $
|
7
|
-
# Date: *2002-174 #
|
8
|
-
# Description: #
|
9
|
-
# This is a generic installation script for pure ruby sources. Features #
|
10
|
-
# include: #
|
11
|
-
# * Clean uninstall #
|
12
|
-
# * Installation into an absolute path #
|
13
|
-
# * Installation into a temp path (useful for systems like Portage) #
|
14
|
-
# * Noop mode, for testing #
|
15
|
-
# To set for a different system, change the SRC directory to point to the #
|
16
|
-
# package name / source directory for the project. #
|
17
|
-
# #
|
18
|
-
################################################################################
|
19
|
-
|
20
|
-
# CHANGE THIS
|
21
|
-
SRC = ['SVG' ]
|
22
|
-
STRIP = ''
|
23
|
-
SETVERSION = 'SVG'
|
24
|
-
SRCVERSION = '@ANT_VERSION@'
|
25
|
-
DATE = '@ANT_DATE@'
|
26
|
-
|
27
|
-
################################################################################
|
28
|
-
# CHANGE NOTHING BELOW THIS LINE
|
29
|
-
|
30
|
-
Dir.chdir ".." if Dir.pwd =~ /bin.?$/
|
31
|
-
|
32
|
-
require 'getoptlong'
|
33
|
-
require 'rbconfig'
|
34
|
-
require 'ftools'
|
35
|
-
require 'find'
|
36
|
-
|
37
|
-
opts = GetoptLong.new( [ '--uninstall', '-u', GetoptLong::NO_ARGUMENT],
|
38
|
-
[ '--destdir', '-d', GetoptLong::REQUIRED_ARGUMENT ],
|
39
|
-
[ '--target', '-t', GetoptLong::REQUIRED_ARGUMENT ],
|
40
|
-
[ '--concurrent', '-c', GetoptLong::NO_ARGUMENT],
|
41
|
-
[ '--help', '-h', GetoptLong::NO_ARGUMENT],
|
42
|
-
[ '--noop', '-n', GetoptLong::NO_ARGUMENT])
|
43
|
-
|
44
|
-
|
45
|
-
destdir = File.join(Config::CONFIG['sitedir'],
|
46
|
-
"#{Config::CONFIG['MAJOR']}.#{Config::CONFIG['MINOR']}")
|
47
|
-
|
48
|
-
uninstall = false
|
49
|
-
prepend = nil
|
50
|
-
help = false
|
51
|
-
opts.each do |opt,arg|
|
52
|
-
case opt
|
53
|
-
when '--concurrent'
|
54
|
-
CONCURRENT = true
|
55
|
-
when '--destdir'
|
56
|
-
prepend = arg
|
57
|
-
when '--uninstall'
|
58
|
-
uninstall = true
|
59
|
-
when '--target'
|
60
|
-
destdir = arg
|
61
|
-
when '--help'
|
62
|
-
help = true
|
63
|
-
when '--noop'
|
64
|
-
NOOP = true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
destdir = File.join prepend, destdir if prepend
|
69
|
-
|
70
|
-
def transmogrify( dir )
|
71
|
-
dir = dir.sub( /^#{STRIP}\//, '' )
|
72
|
-
if defined? CONCURRENT
|
73
|
-
dir.sub( /#{SETVERSION}/, "#{SETVERSION}-#{SRCVERSION}")
|
74
|
-
else
|
75
|
-
dir
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
if help
|
80
|
-
puts "Installs #{SRC.inspect}.\nUsage: #$0 [[-u] [-n] [-c] [-t <dir>|-d <dir>]|-h]"
|
81
|
-
puts " -u --uninstall\n Uninstalls the package"
|
82
|
-
puts " -c --concurrent\n Install concurrently, IE, into"
|
83
|
-
for d in SRC
|
84
|
-
puts " #{destdir}/#{transmogrify( d )}"
|
85
|
-
end
|
86
|
-
puts " The default behavior is to upgrade the current installation,"
|
87
|
-
puts " by installing into"
|
88
|
-
for d in SRC
|
89
|
-
puts " #{destdir}/#{transmogrify( d )}"
|
90
|
-
end
|
91
|
-
puts " -t --target\n Installs the software at an absolute location, EG:"
|
92
|
-
puts " #$0 -t /usr/local/lib/ruby"
|
93
|
-
puts " will put the software directly underneath /usr/local/lib/ruby;"
|
94
|
-
for d in SRC
|
95
|
-
puts " /usr/local/lib/ruby/#{transmogrify( d )}"
|
96
|
-
end
|
97
|
-
puts " -d --destdir\n Installs the software at a relative location, EG:"
|
98
|
-
puts " #$0 -d /tmp"
|
99
|
-
puts " will put the software under tmp, using your ruby environment."
|
100
|
-
for d in SRC
|
101
|
-
puts " /tmp#{destdir}/#{transmogrify( d )}"
|
102
|
-
end
|
103
|
-
puts " -n --noop\n Don't actually do anything; just print out what it"
|
104
|
-
puts " would do."
|
105
|
-
exit 0
|
106
|
-
end
|
107
|
-
|
108
|
-
def install destdir
|
109
|
-
puts "Installing in #{destdir}"
|
110
|
-
begin
|
111
|
-
for src in SRC
|
112
|
-
Find.find(src) { |file|
|
113
|
-
dstfile = transmogrify( file )
|
114
|
-
next if file =~ /CVS|\.svn/
|
115
|
-
dst = File.join( destdir, dstfile )
|
116
|
-
if defined? NOOP
|
117
|
-
puts ">> #{dst}" if file =~ /\.rb$/
|
118
|
-
else
|
119
|
-
File.makedirs( File.dirname(dst) )
|
120
|
-
File.install(file, dst, 0644, true) if file =~ /\.rb$/
|
121
|
-
end
|
122
|
-
}
|
123
|
-
end
|
124
|
-
rescue
|
125
|
-
puts $!
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
def uninstall destdir
|
130
|
-
puts "Uninstalling in #{destdir}"
|
131
|
-
begin
|
132
|
-
puts "Deleting:"
|
133
|
-
dirs = []
|
134
|
-
Find.find(File.join(destdir,SRC)) do |file|
|
135
|
-
file.sub!( /#{SRC}/, "#{SRC}-#{SRCVERSION}") if defined? CONCURRENT
|
136
|
-
if defined? NOOP
|
137
|
-
puts "-- #{file}" if File.file? file
|
138
|
-
else
|
139
|
-
File.rm_f file,true if File.file? file
|
140
|
-
end
|
141
|
-
dirs << file if File.directory? file
|
142
|
-
end
|
143
|
-
dirs.sort { |x,y|
|
144
|
-
y.length <=> x.length
|
145
|
-
}.each { |d|
|
146
|
-
if defined? NOOP
|
147
|
-
puts "-- #{d}"
|
148
|
-
else
|
149
|
-
puts d
|
150
|
-
Dir.delete d
|
151
|
-
end
|
152
|
-
}
|
153
|
-
rescue
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
if uninstall
|
158
|
-
uninstall destdir
|
159
|
-
else
|
160
|
-
install destdir
|
161
|
-
end
|
data/screenshots.xml
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
3
|
-
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
4
|
-
<article>
|
5
|
-
<title>Screenshots</title>
|
6
|
-
|
7
|
-
<sect1>
|
8
|
-
<title>SVGs</title>
|
9
|
-
|
10
|
-
<para>Here are the SVG screenshots in all their glory. KSVG doesn't handle
|
11
|
-
CSS properly yet, and neither does librsvg. Adobe and Batik both
|
12
|
-
do.<mediaobject>
|
13
|
-
<imageobject>
|
14
|
-
<imagedata fileref="images/bar.svg" format="SVG" />
|
15
|
-
</imageobject>
|
16
|
-
|
17
|
-
<caption>
|
18
|
-
<para>SVG::Chart::Bar</para>
|
19
|
-
</caption>
|
20
|
-
</mediaobject><mediaobject>
|
21
|
-
<imageobject>
|
22
|
-
<imagedata fileref="images/barhorizontal.svg" format="SVG" />
|
23
|
-
</imageobject>
|
24
|
-
|
25
|
-
<caption>
|
26
|
-
<para>SVG::Chart::BarHorizontal</para>
|
27
|
-
</caption>
|
28
|
-
</mediaobject><mediaobject>
|
29
|
-
<imageobject>
|
30
|
-
<imagedata fileref="images/line.svg" format="SVG" />
|
31
|
-
</imageobject>
|
32
|
-
|
33
|
-
<caption>
|
34
|
-
<para>SVG::Chart::Line</para>
|
35
|
-
</caption>
|
36
|
-
</mediaobject><mediaobject>
|
37
|
-
<imageobject>
|
38
|
-
<imagedata fileref="images/pie.svg" format="SVG" />
|
39
|
-
</imageobject>
|
40
|
-
|
41
|
-
<caption>
|
42
|
-
<para>SVG::Chart::Pie</para>
|
43
|
-
</caption>
|
44
|
-
</mediaobject><mediaobject>
|
45
|
-
<imageobject>
|
46
|
-
<imagedata fileref="images/plot.svg" format="SVG" />
|
47
|
-
</imageobject>
|
48
|
-
|
49
|
-
<caption>
|
50
|
-
<para>SVG::Chart::Plot</para>
|
51
|
-
</caption>
|
52
|
-
</mediaobject><mediaobject>
|
53
|
-
<imageobject>
|
54
|
-
<imagedata fileref="images/timeseries.svg" format="SVG" />
|
55
|
-
</imageobject>
|
56
|
-
|
57
|
-
<caption>
|
58
|
-
<para>SVG::Chart::TimeSeries</para>
|
59
|
-
</caption>
|
60
|
-
</mediaobject><mediaobject>
|
61
|
-
<imageobject>
|
62
|
-
<imagedata fileref="images/schedule.svg" format="SVG" />
|
63
|
-
</imageobject>
|
64
|
-
|
65
|
-
<caption>
|
66
|
-
<para>SVG::Chart::Schedule</para>
|
67
|
-
</caption>
|
68
|
-
</mediaobject></para>
|
69
|
-
</sect1>
|
70
|
-
|
71
|
-
<sect1>
|
72
|
-
<title>PNGs</title>
|
73
|
-
|
74
|
-
<para>Here are the icky, bitmapped PNGs. PNG is a beautiful file format,
|
75
|
-
don't get me wrong; but it is best for things that vector graphics
|
76
|
-
<emphasis>aren't</emphasis> good at, such as pictures.</para>
|
77
|
-
|
78
|
-
<mediaobject>
|
79
|
-
<imageobject>
|
80
|
-
<imagedata fileref="images/bar.png" format="PNG" />
|
81
|
-
</imageobject>
|
82
|
-
|
83
|
-
<caption>
|
84
|
-
<para>SVG::Chart::Bar</para>
|
85
|
-
</caption>
|
86
|
-
</mediaobject>
|
87
|
-
|
88
|
-
<mediaobject>
|
89
|
-
<imageobject>
|
90
|
-
<imagedata fileref="images/barhorizontal.png" format="PNG" />
|
91
|
-
</imageobject>
|
92
|
-
|
93
|
-
<caption>
|
94
|
-
<para>SVG::Chart::BarHorizontal</para>
|
95
|
-
</caption>
|
96
|
-
</mediaobject>
|
97
|
-
|
98
|
-
<mediaobject>
|
99
|
-
<imageobject>
|
100
|
-
<imagedata fileref="images/line.png" format="PNG" />
|
101
|
-
</imageobject>
|
102
|
-
|
103
|
-
<caption>
|
104
|
-
<para>SVG::Chart::Line</para>
|
105
|
-
</caption>
|
106
|
-
</mediaobject>
|
107
|
-
|
108
|
-
<mediaobject>
|
109
|
-
<imageobject>
|
110
|
-
<imagedata fileref="images/pie.png" format="PNG" />
|
111
|
-
</imageobject>
|
112
|
-
|
113
|
-
<caption>
|
114
|
-
<para>SVG::Chart::Pie</para>
|
115
|
-
</caption>
|
116
|
-
</mediaobject>
|
117
|
-
|
118
|
-
<mediaobject>
|
119
|
-
<imageobject>
|
120
|
-
<imagedata fileref="images/plot.png" format="PNG" />
|
121
|
-
</imageobject>
|
122
|
-
|
123
|
-
<caption>
|
124
|
-
<para>SVG::Chart::Plot</para>
|
125
|
-
</caption>
|
126
|
-
</mediaobject>
|
127
|
-
|
128
|
-
<mediaobject>
|
129
|
-
<imageobject>
|
130
|
-
<imagedata fileref="images/timeseries.png" format="PNG" />
|
131
|
-
</imageobject>
|
132
|
-
|
133
|
-
<caption>
|
134
|
-
<para>SVG::Chart::TimeSeries</para>
|
135
|
-
</caption>
|
136
|
-
</mediaobject>
|
137
|
-
|
138
|
-
<mediaobject>
|
139
|
-
<imageobject>
|
140
|
-
<imagedata fileref="images/schedule.png" format="PNG" />
|
141
|
-
</imageobject>
|
142
|
-
|
143
|
-
<caption>
|
144
|
-
<para>SVG::Chart::Schedule</para>
|
145
|
-
</caption>
|
146
|
-
</mediaobject>
|
147
|
-
</sect1>
|
148
|
-
</article>
|