X-Git-Url: https://scripts.mit.edu/gitweb/www/ikiwiki.git/blobdiff_plain/532d4b0d5f40bd76f76b6b24da9e06f48bbdcf81..73af360e994306c1d0b14a69a4aa04750e61f0ef:/IkiWiki/Plugin/txt.pm diff --git a/IkiWiki/Plugin/txt.pm b/IkiWiki/Plugin/txt.pm index a4df54b55..3aad5fa07 100644 --- a/IkiWiki/Plugin/txt.pm +++ b/IkiWiki/Plugin/txt.pm @@ -10,36 +10,44 @@ use warnings; use strict; use IkiWiki 2.00; use HTML::Entities; -require URI::Find; + +my $findurl=0; sub import { - hook(type => "filter", id => "txt", call => \&filter); - hook(type => "htmlize", id => "txt", call => \&htmlize); + hook(type => "filter", id => "txt", call => \&filter); + hook(type => "htmlize", id => "txt", call => \&htmlize); + + eval q{use URI::Find}; + if (! $@) { + $findurl=1; + } } # We use filter to convert raw text to HTML # (htmlize is called after other plugins insert HTML) sub filter (@) { - my %params = @_; - my $content = $params{content}; - - if ($pagesources{$params{page}} =~ /.txt$/) { - encode_entities($content); - my $finder = URI::Find->new( - sub { - my($uri, $orig_uri) = @_; - return qq|$orig_uri|; - }); - $finder->find(\$content); - $content = "
" . $content . ""; - } - return $content; + my %params = @_; + my $content = $params{content}; + + if (defined $pagesources{$params{page}} && $pagesources{$params{page}} =~ /\.txt$/) { + encode_entities($content); + if ($findurl) { + my $finder = URI::Find->new(sub { + my ($uri, $orig_uri) = @_; + return qq|$orig_uri|; + }); + $finder->find(\$content); + } + $content = "
" . $content . ""; + } + + return $content; } # We need this to register the .txt file extension sub htmlize (@) { - my %params=@_; - return $params{content}; + my %params=@_; + return $params{content}; } 1