# Licensed under GPL v2 or greater
# (c) 2007 Patrick Winnertz <patrick.winnertz@skolelinux.org>
-package IkiWiki::Plugin::tex;
+package IkiWiki::Plugin::teximg;
use warnings;
use strict;
use Digest::MD5 qw(md5_hex);
use IkiWiki 2.00;
sub import { #{{{
- hook(type => "preprocess", id => "tex", call => \&preprocess);
+ hook(type => "preprocess", id => "teximg", call => \&preprocess);
} #}}}
sub preprocess (@) { #{{{
my $code = $params{code};
if (! defined $code && ! length $code) {
- return "[[tex ".gettext("missing tex code"). "]]";
+ return "[[teximg ".gettext("missing tex code"). "]]";
}
if (check($code)) {
return create($code, check_height($height), \%params);
}
else {
- return "[[tex ".gettext("code includes disallowed latex commands"). "]]";
+ return "[[teximg ".gettext("code includes disallowed latex commands"). "]]";
}
} #}}}
my $digest = md5_hex($code, $height);
- my $teximgdir = "/teximages";
+ my $teximgdir = "/teximag";
my $imglink = "$teximgdir/$digest.png";
my $imglog = "$teximgdir/$digest.log";
will_render($params->{destpage}, $imglink);
if (-e "$config{destdir}/$imglink" ||
gen_image($code, $height, $digest, $teximgdir)) {
- return qq{<img src="$imgurl" alt="}.uri_escape($code).qq{" class="teximage" />};
+ return qq{<img src="$imgurl" alt="}
+ .(exists $params{alt} ? $params{alt} : uri_escape($code))
+ .qq{" class="teximg" />};
}
else {
- return qq{[[tex <a href="$logurl">}.gettext("failed to generate image from code")."</a>]]";
+ return qq{[[teximg <a href="$logurl">}.gettext("failed to generate image from code")."</a>]]";
}
} #}}}
* Add proper Homepage field to Debian package (needs uber-new dpkg).
* Add monotone support, contributed by William Uther.
* Avoid ugly gettext messages if LANG is empty. Closes: #439035
- * Added tex plugin to generate images from latex code.
+ * Added teximg plugin to generate images from latex code.
Contributed by Patrick Winnertz as a GSoC project.
* Call the formbuilder hook for the edit page.
* Call decode_form_utf8 before running formbuilder_setup hooks.
+++ /dev/null
-[[template id=plugin name=tex author="[[PatrickWinnertz]]"]]
-[[tag type/chrome type/slow]]
-
-This plugin renders LaTeX formulas into images, which are rendered automatically when you save this site.
-
-Scaling of this images is of course also possible, possible heights are:
-
- 8,9,10,11,12,14,17,20
-
-But is also work if you pic e.g. another height. The best fitting height is then used to generate the image.
-
-#Here are some examples how to use this plugin:
-
- [[tex code="\ce{[Cu(NH3)3]^{2+}}"]]
- [[tex code="\frac{1}{2}"]]
- [[tex code="E = - \frac{Z^2 \cdot \mu \cdot e^4}{32\pi^2 \epsilon_0^2 \hbar^2 n^2}" ]]
-
-in order to scale this images use height=x:
-
- [[tex code="\ce{[Cu(NH3)3]^{2+}}" height="17"]]
- [[tex code="\ce{[Cu(NH3)3]^{2+}}" height="8"]]
-
-If no height is choosen the default height 12 is used.
-
-See [this site](http://www.der-winnie.de/opensource/gsoc2007) for rendered images.
\ No newline at end of file
--- /dev/null
+[[template id=plugin name=teximg author="[[PatrickWinnertz]]"]]
+[[tag type/chrome type/slow]]
+
+This plugin renders LaTeX formulas into images.
+
+## examples
+
+ \[[teximg code="\ce{[Cu(NH3)3]^{2+}}"]]
+ \[[teximg code="\frac{1}{2}"]]
+ \[[teximg code="E = - \frac{Z^2 \cdot \mu \cdot e^4}{32\pi^2 \epsilon_0^2 \hbar^2 n^2}" ]]
+
+To scale the image, use height=x:
+
+ \[[teximg code="\ce{[Cu(NH3)3]^{2+}}" height="17"]]
+ \[[teximg code="\ce{[Cu(NH3)3]^{2+}}" height="8"]]
+
+If no height is choosen the default height 12 is used. Valid heights are: 8, 9,
+10, 11, 12, 14, 17, 20. If another height is entered, the closest available
+height is used.
+
+To add an alt text to the image, use alt="text":
+
+ \[[teximg code="\frac{1}{2}" alt="1/2"]]
+
+See [this site](http://www.der-winnie.de/opensource/gsoc2007) for rendered images.
> fixed a bug (the first time it was run, it tried to write the png file
> before the teximages/ directory existed) and checked the result in.
>
-> Can you please flesh out [[plugins/tex]] with
+> Can you please flesh out [[plugins/teximg]] with
> whatever documentation people who know tex will expect to see?
Okay, I'll fill this up today I think with information about the plugin
Done. Is that docu fine with you?
+>> Perhaps add some documentation about the kind of tex code that can be
+>> used, or a link to some documentation so people who don't know latex
+>> well can figure this out?
> Also, please review my changes. In particular, I changed the @badthings
> array to use qr//, which is much clearer, but it needs to be tested that