]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
rename plugins/asymptote.mdwn to plugins/contrib/asymptote.mdwn
authorhttp://smcv.pseudorandom.co.uk/ <smcv@web>
Tue, 27 Nov 2012 12:54:21 +0000 (08:54 -0400)
committeradmin <admin@branchable.com>
Tue, 27 Nov 2012 12:54:21 +0000 (08:54 -0400)
doc/plugins/asymptote.mdwn [deleted file]
doc/plugins/contrib/asymptote.mdwn [new file with mode: 0644]

diff --git a/doc/plugins/asymptote.mdwn b/doc/plugins/asymptote.mdwn
deleted file mode 100644 (file)
index 31bf0b1..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-[[!template id=plugin name=asymptote author="[[PeterSimons]]"]]
-[[!tag type/widget]]
-
-This plugin provides the [[ikiwiki/directive/asymptote]]
-[[ikiwiki/directive]] which allows embedding
-[asymptote](http://asymptote.sourceforge.net/) diagrams in a page.
-
-Security implications: asymptote has functions for reading files and
-other dangerous stuff, so enabling this plugin means that everyone who
-can edit your Wiki can also read any file from your hard drive thats
-accessible to the user running Ikiwiki. 
-
-[[!if test="enabled(asymptote)" then="""
-An example diagram:
-
-[[!asymptote src="""
-import geometry;
-unitsize(1cm);
-triangle t = triangle((0,0), (4,0), (0.5,2));
-show(La="$D$", Lb="$E$", Lc="", t);
-dot(t.A^^t.B^^t.C);
-point pD = midpoint(t.BC); dot(pD);
-point pE = midpoint(t.AC); dot(pE);
-draw(pD--pE);
-
-point A_ = (pD-t.A)*2+t.A; dot("$A'$", A_, NE);
-draw(t.B--A_--t.C, dashed);
-draw(t.A--A_, dashed);
-
-point E_ = midpoint(line(t.B,A_)); dot(Label("$E'$", E_, E));
-draw(E_--pD, dashed);
-"""]]
-"""]]
-
-This plugin uses the [[!cpan Digest::SHA]] perl module.
-
-The full source code is:
-
-        #! /usr/bin/perl
-
-        package IkiWiki::Plugin::asymptote;
-        use warnings;
-        use strict;
-        use Digest::MD5 qw(md5_hex);
-        use File::Temp qw(tempdir);
-        use HTML::Entities;
-        use Encode;
-        use IkiWiki 3.00;
-
-        sub import {
-                hook(type => "getsetup", id => "asymptote", call => \&getsetup);
-                hook(type => "preprocess", id => "asymptote", call => \&preprocess);
-        }
-
-        sub getsetup () {
-                return
-                        plugin => {
-                                safe => 1,
-                                rebuild => undef,
-                                section => "widget",
-                        },
-        }
-
-        sub preprocess (@) {
-                my %params = @_;
-
-                my $code = $params{src};
-                if (! defined $code && ! length $code) {
-                        error gettext("missing src attribute");
-                }
-                return create($code, \%params);
-        }
-
-        sub create ($$$) {
-                # This function calls the image generating function and returns
-                # the <img .. /> for the generated image.
-                my $code = shift;
-                my $params = shift;
-
-                my $digest = md5_hex(Encode::encode_utf8($code));
-
-                my $imglink= $params->{page} . "/$digest.png";
-                my $imglog =  $params->{page} .  "/$digest.log";
-                will_render($params->{page}, $imglink);
-                will_render($params->{page}, $imglog);
-
-                my $imgurl=urlto($imglink, $params->{destpage});
-                my $logurl=urlto($imglog, $params->{destpage});
-
-                if (-e "$config{destdir}/$imglink" ||
-                    gen_image($code, $digest, $params->{page})) {
-                        return qq{<img src="$imgurl}
-                                .(exists $params->{alt} ? qq{" alt="} . $params->{alt} : qq{})
-                                .qq{" class="asymptote" />};
-                }
-                else {
-                        error qq{<a href="$logurl">}.gettext("failed to generate image from code")."</a>";
-                }
-        }
-
-        sub gen_image ($$$$) {
-                # Actually creates the image.
-                my $code = shift;
-                my $digest = shift;
-                my $imagedir = shift;
-
-                my $tmp = eval { create_tmp_dir($digest) };
-                if (! $@ &&
-                    writefile("$digest.asy", $tmp, $code) &&
-                    writefile("$imagedir/$digest.png", $config{destdir}, "") &&
-                    system("asy -render=2 -offscreen -f png -o $config{destdir}/$imagedir/$digest.png $tmp/$digest.asy &>$tmp/$digest.log") == 0
-                   ) {
-                        return 1;
-                }
-                else {
-                        # store failure log
-                        my $log="";
-                        {
-                                if (open(my $f, '<', "$tmp/$digest.log")) {
-                                        local $/=undef;
-                                        $log = <$f>;
-                                        close($f);
-                                }
-                        }
-                        writefile("$digest.log", "$config{destdir}/$imagedir", $log);
-
-                        return 0;
-                }
-        }
-
-        sub create_tmp_dir ($) {
-                # Create a temp directory, it will be removed when ikiwiki exits.
-                my $base = shift;
-
-                my $template = $base.".XXXXXXXXXX";
-                my $tmpdir = tempdir($template, TMPDIR => 1, CLEANUP => 1);
-                return $tmpdir;
-        }
-
-        1
-
diff --git a/doc/plugins/contrib/asymptote.mdwn b/doc/plugins/contrib/asymptote.mdwn
new file mode 100644 (file)
index 0000000..31bf0b1
--- /dev/null
@@ -0,0 +1,141 @@
+[[!template id=plugin name=asymptote author="[[PeterSimons]]"]]
+[[!tag type/widget]]
+
+This plugin provides the [[ikiwiki/directive/asymptote]]
+[[ikiwiki/directive]] which allows embedding
+[asymptote](http://asymptote.sourceforge.net/) diagrams in a page.
+
+Security implications: asymptote has functions for reading files and
+other dangerous stuff, so enabling this plugin means that everyone who
+can edit your Wiki can also read any file from your hard drive thats
+accessible to the user running Ikiwiki. 
+
+[[!if test="enabled(asymptote)" then="""
+An example diagram:
+
+[[!asymptote src="""
+import geometry;
+unitsize(1cm);
+triangle t = triangle((0,0), (4,0), (0.5,2));
+show(La="$D$", Lb="$E$", Lc="", t);
+dot(t.A^^t.B^^t.C);
+point pD = midpoint(t.BC); dot(pD);
+point pE = midpoint(t.AC); dot(pE);
+draw(pD--pE);
+
+point A_ = (pD-t.A)*2+t.A; dot("$A'$", A_, NE);
+draw(t.B--A_--t.C, dashed);
+draw(t.A--A_, dashed);
+
+point E_ = midpoint(line(t.B,A_)); dot(Label("$E'$", E_, E));
+draw(E_--pD, dashed);
+"""]]
+"""]]
+
+This plugin uses the [[!cpan Digest::SHA]] perl module.
+
+The full source code is:
+
+        #! /usr/bin/perl
+
+        package IkiWiki::Plugin::asymptote;
+        use warnings;
+        use strict;
+        use Digest::MD5 qw(md5_hex);
+        use File::Temp qw(tempdir);
+        use HTML::Entities;
+        use Encode;
+        use IkiWiki 3.00;
+
+        sub import {
+                hook(type => "getsetup", id => "asymptote", call => \&getsetup);
+                hook(type => "preprocess", id => "asymptote", call => \&preprocess);
+        }
+
+        sub getsetup () {
+                return
+                        plugin => {
+                                safe => 1,
+                                rebuild => undef,
+                                section => "widget",
+                        },
+        }
+
+        sub preprocess (@) {
+                my %params = @_;
+
+                my $code = $params{src};
+                if (! defined $code && ! length $code) {
+                        error gettext("missing src attribute");
+                }
+                return create($code, \%params);
+        }
+
+        sub create ($$$) {
+                # This function calls the image generating function and returns
+                # the <img .. /> for the generated image.
+                my $code = shift;
+                my $params = shift;
+
+                my $digest = md5_hex(Encode::encode_utf8($code));
+
+                my $imglink= $params->{page} . "/$digest.png";
+                my $imglog =  $params->{page} .  "/$digest.log";
+                will_render($params->{page}, $imglink);
+                will_render($params->{page}, $imglog);
+
+                my $imgurl=urlto($imglink, $params->{destpage});
+                my $logurl=urlto($imglog, $params->{destpage});
+
+                if (-e "$config{destdir}/$imglink" ||
+                    gen_image($code, $digest, $params->{page})) {
+                        return qq{<img src="$imgurl}
+                                .(exists $params->{alt} ? qq{" alt="} . $params->{alt} : qq{})
+                                .qq{" class="asymptote" />};
+                }
+                else {
+                        error qq{<a href="$logurl">}.gettext("failed to generate image from code")."</a>";
+                }
+        }
+
+        sub gen_image ($$$$) {
+                # Actually creates the image.
+                my $code = shift;
+                my $digest = shift;
+                my $imagedir = shift;
+
+                my $tmp = eval { create_tmp_dir($digest) };
+                if (! $@ &&
+                    writefile("$digest.asy", $tmp, $code) &&
+                    writefile("$imagedir/$digest.png", $config{destdir}, "") &&
+                    system("asy -render=2 -offscreen -f png -o $config{destdir}/$imagedir/$digest.png $tmp/$digest.asy &>$tmp/$digest.log") == 0
+                   ) {
+                        return 1;
+                }
+                else {
+                        # store failure log
+                        my $log="";
+                        {
+                                if (open(my $f, '<', "$tmp/$digest.log")) {
+                                        local $/=undef;
+                                        $log = <$f>;
+                                        close($f);
+                                }
+                        }
+                        writefile("$digest.log", "$config{destdir}/$imagedir", $log);
+
+                        return 0;
+                }
+        }
+
+        sub create_tmp_dir ($) {
+                # Create a temp directory, it will be removed when ikiwiki exits.
+                my $base = shift;
+
+                my $template = $base.".XXXXXXXXXX";
+                my $tmpdir = tempdir($template, TMPDIR => 1, CLEANUP => 1);
+                return $tmpdir;
+        }
+
+        1
+