2 # .txt as a wiki page type - links WikiLinks and URIs.
4 # Copyright (C) 2008 Gabriel McManus <gmcmanus@gmail.com>
5 # Licensed under the GNU General Public License, version 2 or later
7 package IkiWiki::Plugin::txt;
17 hook(type => "getsetup", id => "txt", call => \&getsetup);
18 hook(type => "filter", id => "txt", call => \&filter);
19 hook(type => "htmlize", id => "txt", call => \&htmlize);
20 hook(type => "htmlizeformat", id => "txt", call => \&htmlizeformat);
22 eval q{use URI::Find};
32 rebuild => 1, # format plugin
37 # We use filter to convert raw text to HTML
38 # (htmlize is called after other plugins insert HTML)
41 my $content = $params{content};
43 if (defined $pagesources{$params{page}} &&
44 $pagesources{$params{page}} =~ /\.txt$/) {
45 if ($pagesources{$params{page}} eq 'robots.txt' &&
46 $params{page} eq $params{destpage}) {
47 will_render($params{page}, 'robots.txt');
48 writefile('robots.txt', $config{destdir}, $content);
50 return txt2html($content);
59 encode_entities($content, "<>&");
61 my $finder = URI::Find->new(sub {
62 my ($uri, $orig_uri) = @_;
63 return qq|<a href="$uri">$orig_uri</a>|;
65 $finder->find(\$content);
67 return "<pre>" . $content . "</pre>";
70 # We need this to register the .txt file extension
73 return $params{content};
76 sub htmlizeformat ($$) {
80 if ($format eq 'txt') {
81 return txt2html($content);