| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package Template::Plugin::GoogleLaTeX; | 
| 2 |  |  |  |  |  |  |  | 
| 3 | 2 |  |  | 2 |  | 359764 | use strict; use warnings; | 
|  | 2 |  |  | 2 |  | 5 |  | 
|  | 2 |  |  |  |  | 78 |  | 
|  | 2 |  |  |  |  | 11 |  | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 110 |  | 
| 4 |  |  |  |  |  |  | our $VERSION = '0.03'; | 
| 5 |  |  |  |  |  |  |  | 
| 6 | 2 |  |  | 2 |  | 2124 | use Template::Plugin::Filter; | 
|  | 2 |  |  |  |  | 11079 |  | 
|  | 2 |  |  |  |  | 74 |  | 
| 7 | 2 |  |  | 2 |  | 19 | use base qw( Template::Plugin::Filter ); | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 157 |  | 
| 8 |  |  |  |  |  |  |  | 
| 9 | 2 |  |  | 2 |  | 2073 | use URI::Escape; | 
|  | 2 |  |  |  |  | 3483 |  | 
|  | 2 |  |  |  |  | 186 |  | 
| 10 | 2 |  |  | 2 |  | 18 | use constant API_URL => 'http://chart.apis.google.com/chart?cht=tx'; | 
|  | 2 |  |  |  |  | 4 |  | 
|  | 2 |  |  |  |  | 185 |  | 
| 11 |  |  |  |  |  |  |  | 
| 12 | 2 |  |  |  |  | 971 | use constant IMG_ATTRS => [ qw( | 
| 13 |  |  |  |  |  |  | src id name class style alt title longdesc align width height border | 
| 14 |  |  |  |  |  |  | hspace vspace usemap ismap lang dir onclick ondblclick onmousedown | 
| 15 |  |  |  |  |  |  | onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown | 
| 16 |  |  |  |  |  |  | onkeyup | 
| 17 | 2 |  |  | 2 |  | 13 | ) ]; | 
|  | 2 |  |  |  |  | 3 |  | 
| 18 |  |  |  |  |  |  |  | 
| 19 |  |  |  |  |  |  | sub init { | 
| 20 | 2 |  |  | 2 | 1 | 5171 | my $self = shift; | 
| 21 | 2 |  |  |  |  | 23 | $self->{ _DYNAMIC} = 1; | 
| 22 |  |  |  |  |  |  |  | 
| 23 |  |  |  |  |  |  | # first arg can specify filter name | 
| 24 | 2 |  | 50 |  |  | 28 | $self->install_filter($self->{ _ARGS }->[0] || 'latex'); | 
| 25 |  |  |  |  |  |  |  | 
| 26 | 2 |  |  |  |  | 99 | return $self; | 
| 27 |  |  |  |  |  |  | } | 
| 28 |  |  |  |  |  |  |  | 
| 29 |  |  |  |  |  |  | sub filter { | 
| 30 | 2 |  |  | 2 | 1 | 197 | my ($self, $text, $args, $config) = @_; | 
| 31 |  |  |  |  |  |  |  | 
| 32 | 2 |  |  |  |  | 5 | my %config = %{ $self->merge_config($config) }; | 
|  | 2 |  |  |  |  | 12 |  | 
| 33 | 2 |  |  |  |  | 22 | my %qs; | 
| 34 |  |  |  |  |  |  |  | 
| 35 | 2 |  |  |  |  | 7 | $qs{chl} = uri_escape( $text ); | 
| 36 |  |  |  |  |  |  |  | 
| 37 | 2 | 50 |  |  |  | 73 | if ( defined (my $h = $config{height} ) ) { | 
| 38 | 0 | 0 |  |  |  | 0 | if ( defined ( my $w = $config{width} ) ) { | 
| 39 | 0 |  |  |  |  | 0 | $qs{chs} ="${h}x${w}" | 
| 40 |  |  |  |  |  |  | } | 
| 41 |  |  |  |  |  |  | else { | 
| 42 | 0 |  |  |  |  | 0 | $qs{chs} = $h; | 
| 43 |  |  |  |  |  |  | } | 
| 44 |  |  |  |  |  |  | } | 
| 45 |  |  |  |  |  |  |  | 
| 46 | 2 | 50 |  |  |  | 10 | if ( defined ( my $fill = $config{fill} ) ) { | 
| 47 | 0 |  |  |  |  | 0 | $qs{chf} = $fill; | 
| 48 |  |  |  |  |  |  | } | 
| 49 |  |  |  |  |  |  |  | 
| 50 | 2 | 50 |  |  |  | 7 | if ( defined ( my $color = $config{color} ) ) { | 
| 51 | 0 |  |  |  |  | 0 | $qs{chco} = $color; | 
| 52 |  |  |  |  |  |  | } | 
| 53 |  |  |  |  |  |  |  | 
| 54 | 2 |  |  |  |  | 26 | $config{src} = join('&', | 
| 55 |  |  |  |  |  |  | $self->API_URL, | 
| 56 |  |  |  |  |  |  | ( | 
| 57 |  |  |  |  |  |  | map sprintf(q{%s=%s}, $_, $qs{$_}), keys %qs | 
| 58 |  |  |  |  |  |  | ), | 
| 59 |  |  |  |  |  |  | ); | 
| 60 |  |  |  |  |  |  |  | 
| 61 | 2 |  |  |  |  | 4 | my @attrs = grep defined( $config{$_} ), @{ $self->IMG_ATTRS }; | 
|  | 2 |  |  |  |  | 28 |  | 
| 62 |  |  |  |  |  |  |  | 
| 63 | 2 |  |  |  |  | 12 | my $out = join(' ', | 
| 64 |  |  |  |  |  |  | ' ![]()  | 
| 65 |  |  |  |  |  |  | ( | 
| 66 |  |  |  |  |  |  | map sprintf(q{%s="%s"}, $_, $config{$_}), @attrs | 
| 67 |  |  |  |  |  |  | ), | 
| 68 |  |  |  |  |  |  | ); | 
| 69 | 2 | 100 |  |  |  | 10 | $out .= $config{xhtml} ? '/>' : '>'; | 
| 70 | 2 |  |  |  |  | 20 | return $out; | 
| 71 |  |  |  |  |  |  |  | 
| 72 |  |  |  |  |  |  | } | 
| 73 |  |  |  |  |  |  |  | 
| 74 |  |  |  |  |  |  | "Template::Plugin::GoogleLaTeX" | 
| 75 |  |  |  |  |  |  | __END__ |