X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=demo%2Fhtml%2Fwebify.pl;fp=demo%2Fhtml%2Fwebify.pl;h=e0d08f9b7883b40c8369f0144b1b0c82330fb135;hb=39ec1247a71f61152a4a7f502a30f06a3896c5da;hp=0000000000000000000000000000000000000000;hpb=06be459be4f5f6a7c6ff878e84f355fb2575caa8;p=gnuplot diff --git a/demo/html/webify.pl b/demo/html/webify.pl new file mode 100755 index 0000000..e0d08f9 --- /dev/null +++ b/demo/html/webify.pl @@ -0,0 +1,104 @@ +#!/usr/bin/perl -w +# +# Convert a single gnuplot demo script to a web page +# Usage: +# webify xxx +# +# Reads xxx.dem and creates xxx.html along with associated +# png images output to xxx..png +# +# If gpsavediff is present also create a set of scripts +# xxx..gnu corresponding to the minimal set of commands +# needed to generate that png image. +# +# If gnuplot_demo.css is present, link to it as a stylesheet. +# +# Ethan A Merritt +# December 2003 +# +# EAM Jan 2004 +# use gpsavediff if available +# link to gnuplot_demo.css if available +# +# EAM Aug 2005 +# If DEMOTERM is present as an environmental variable, then use +# set term DEMOTERM +# rather than the default terminal settings +# E.g. (for image demo) +# setenv DEMOTERM "png truecolor enhanced font arial 8 transparent size 420,320" +# ./webify.pl image +# +use Env qw(DEMOTERM GNUPLOT_LIB); + +use HTML::Entities; + +require "ctime.pl"; + +# Use the in-tree copy of gnuplot if there is one + my $gnuplot = ( -x "../../src/gnuplot" ) ? "../../src/gnuplot" : "gnuplot" ; + + my $date = &ctime(time); + my $plot = 1; + +# input and output files + open(IN, "<$GNUPLOT_LIB/$ARGV[0].dem") or die "can't open $GNUPLOT_LIB/$ARGV[0].dem"; + open(OUT, ">$ARGV[0].html") or die "can't open $ARGV[0].html"; + +# open pipe to gnuplot and set terminal type + open(GNUPLOT, "|$gnuplot") or die "can't find gnuplot"; + if ((defined $ENV{DEMOTERM}) && $DEMOTERM ne "") { + print GNUPLOT "set term $DEMOTERM\n"; + } else { + print GNUPLOT "set term png enhanced font arial 8 transparent size 420,320\n"; + } + print GNUPLOT "set output \"$ARGV[0].$plot.png\"\n"; + +# find out if gpsavediff is available in current path + my $savescripts = T; + {local $^W=0; $savescripts = open(FOO, "|gpsavediff") } + close FOO if ($savescripts); + +# Boiler plate header + print OUT "\n\ngnuplot demo script: $ARGV[0].dem \n"; + print OUT "\n" + if (-e "gnuplot_demo.css"); + print OUT "\n"; + print OUT "\n

gnuplot demo script: $ARGV[0].dem

\n"; + print OUT "autogenerated by webify.pl on $date"; + +# try to find gnuplot version + $version = `$gnuplot --version`; + print OUT "\n
gnuplot version $version"; + print OUT "
\n"; + +# Start processing + print OUT "\"\"\n"; + print OUT "
\n";
+
+	while () {
+		if (/^pause -1/) {
+			if ($savescripts) {
+			    print OUT "

Click here ", + "for minimal script to generate this plot

\n"; + print GNUPLOT "save \"| gpsavediff > $ARGV[0].$plot.gnu\"\n"; + } + print OUT "
\n
\n
\n"; + $plot++; + print OUT "\"\"\n"; + print OUT "
\n";
+			print GNUPLOT "set output \"$ARGV[0].$plot.png\"\n";
+		} elsif (/^pause/) {
+			print GNUPLOT "set output \"$ARGV[0].$plot.png\"\n";
+		} else {
+			print OUT HTML::Entities::encode($_);
+			print GNUPLOT;
+		}
+	}
+
+# Amazingly enough, that's it.
+# Unlink leftover empty plot before leaving.
+	close GNUPLOT;
+	unlink("$ARGV[0].$plot.png");
+	print OUT "
\n"; + print OUT "\n\n"; +