8cc5a7951d3575e67b221ca312993fff158bae20
[ikiwiki.git] / IkiWiki / Plugin / textile.pm
1 #!/usr/bin/perl
2 # By mazirian; GPL license
3 # Textile markup
4
5 package IkiWiki::Plugin::textile;
6
7 use warnings;
8 use strict;
9 use IkiWiki 3.00;
10 use Encode;
11
12 sub import {
13         hook(type => "getsetup", id => "textile", call => \&getsetup);
14         hook(type => "htmlize", id => "txtl", call => \&htmlize, longname => "Textile");
15 }
16
17 sub getsetup () {
18         return
19                 plugin => {
20                         safe => 1,
21                         rebuild => 1, # format plugin
22                 },
23 }
24
25 sub htmlize (@) {
26         my %params=@_;
27         my $content = decode_utf8(encode_utf8($params{content}));
28
29         eval q{use Text::Textile};
30         return $content if $@;
31         return Text::Textile::textile($content);
32 }
33
34 1