rename tex to teximg

master
joey 2007-08-23 21:19:21 +00:00
parent 27d029113f
commit 8c31a01efa
5 changed files with 39 additions and 34 deletions

View File

@ -2,7 +2,7 @@
# Licensed under GPL v2 or greater # Licensed under GPL v2 or greater
# (c) 2007 Patrick Winnertz <patrick.winnertz@skolelinux.org> # (c) 2007 Patrick Winnertz <patrick.winnertz@skolelinux.org>
package IkiWiki::Plugin::tex; package IkiWiki::Plugin::teximg;
use warnings; use warnings;
use strict; use strict;
use Digest::MD5 qw(md5_hex); use Digest::MD5 qw(md5_hex);
@ -11,7 +11,7 @@ use URI::Escape qw(uri_escape);
use IkiWiki 2.00; use IkiWiki 2.00;
sub import { #{{{ sub import { #{{{
hook(type => "preprocess", id => "tex", call => \&preprocess); hook(type => "preprocess", id => "teximg", call => \&preprocess);
} #}}} } #}}}
sub preprocess (@) { #{{{ sub preprocess (@) { #{{{
@ -27,14 +27,14 @@ sub preprocess (@) { #{{{
my $code = $params{code}; my $code = $params{code};
if (! defined $code && ! length $code) { if (! defined $code && ! length $code) {
return "[[tex ".gettext("missing tex code"). "]]"; return "[[teximg ".gettext("missing tex code"). "]]";
} }
if (check($code)) { if (check($code)) {
return create($code, check_height($height), \%params); return create($code, check_height($height), \%params);
} }
else { else {
return "[[tex ".gettext("code includes disallowed latex commands"). "]]"; return "[[teximg ".gettext("code includes disallowed latex commands"). "]]";
} }
} #}}} } #}}}
@ -70,7 +70,7 @@ sub create ($$$) { #{{{
my $digest = md5_hex($code, $height); my $digest = md5_hex($code, $height);
my $teximgdir = "/teximages"; my $teximgdir = "/teximag";
my $imglink = "$teximgdir/$digest.png"; my $imglink = "$teximgdir/$digest.png";
my $imglog = "$teximgdir/$digest.log"; my $imglog = "$teximgdir/$digest.log";
will_render($params->{destpage}, $imglink); will_render($params->{destpage}, $imglink);
@ -89,10 +89,12 @@ sub create ($$$) { #{{{
if (-e "$config{destdir}/$imglink" || if (-e "$config{destdir}/$imglink" ||
gen_image($code, $height, $digest, $teximgdir)) { 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 { 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>]]";
} }
} #}}} } #}}}

2
debian/changelog vendored
View File

@ -46,7 +46,7 @@ ikiwiki (2.6) UNRELEASED; urgency=low
* Add proper Homepage field to Debian package (needs uber-new dpkg). * Add proper Homepage field to Debian package (needs uber-new dpkg).
* Add monotone support, contributed by William Uther. * Add monotone support, contributed by William Uther.
* Avoid ugly gettext messages if LANG is empty. Closes: #439035 * 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. Contributed by Patrick Winnertz as a GSoC project.
* Call the formbuilder hook for the edit page. * Call the formbuilder hook for the edit page.
* Call decode_form_utf8 before running formbuilder_setup hooks. * Call decode_form_utf8 before running formbuilder_setup hooks.

View File

@ -1,25 +0,0 @@
[[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.

View File

@ -0,0 +1,25 @@
[[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.

View File

@ -167,13 +167,16 @@ Okay, the last version of the tex plugin for ikiwiki can be downloaded [here](ht
> fixed a bug (the first time it was run, it tried to write the png file > 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. > 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? > whatever documentation people who know tex will expect to see?
Okay, I'll fill this up today I think with information about the plugin Okay, I'll fill this up today I think with information about the plugin
Done. Is that docu fine with you? 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 > 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 > array to use qr//, which is much clearer, but it needs to be tested that