From: Joey Hess Date: Wed, 25 Jun 2008 00:33:03 +0000 (-0400) Subject: initial version X-Git-Tag: 2.51~44 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3f6d3f3be8ec64a07636a38f0c9f95e4211a3128;p=ikiwiki.git initial version --- diff --git a/IkiWiki/Plugin/plaintext.pm b/IkiWiki/Plugin/plaintext.pm new file mode 100644 index 000000000..eaa2725b9 --- /dev/null +++ b/IkiWiki/Plugin/plaintext.pm @@ -0,0 +1,45 @@ +#!/usr/bin/perl +# Plaintext as a wiki page type - links WikiLinks and URIs. +# +# Copyright (C) 2008 Gabriel McManus +# Licensed under the GNU General Public License, version 2 or later + +package IkiWiki::Plugin::plaintext; + +use warnings; +use strict; +use IkiWiki 2.00; +use HTML::Entities; +require URI::Find; + +sub import { + hook(type => "filter", id => "txt", call => \&filter); + hook(type => "htmlize", id => "txt", call => \&htmlize); +} + +# 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; +} + +# We need this to register the .txt file extension +sub htmlize (@) { + my %params=@_; + return $params{content}; +} + +1