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);