From 3f6d3f3be8ec64a07636a38f0c9f95e4211a3128 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 24 Jun 2008 20:33:03 -0400 Subject: [PATCH] initial version --- IkiWiki/Plugin/plaintext.pm | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 IkiWiki/Plugin/plaintext.pm 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 -- 2.44.0