diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-07-07 18:28:27 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-07-07 18:28:27 +0000 |
commit | 0f22d66c965d7f2a3e4698de7ddf992efebf6c42 (patch) | |
tree | ff23d91c038143b34c9550c59f3b945d2455f0c0 /IkiWiki/Plugin | |
parent | 723ebda4760d7e6bb848f1b1d39706f441d3f209 (diff) |
* Add wikitext markup plugin, which supports ".wiki" pages written in the
original wiki syntax, CamelCase links and all.
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r-- | IkiWiki/Plugin/wikitext.pm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/wikitext.pm b/IkiWiki/Plugin/wikitext.pm new file mode 100644 index 000000000..310b86724 --- /dev/null +++ b/IkiWiki/Plugin/wikitext.pm @@ -0,0 +1,30 @@ +#!/usr/bin/perl +# WikiText markup +package IkiWiki::Plugin::wikitext; + +use warnings; +use strict; +use Text::WikiFormat; + +sub import { #{{{ + IkiWiki::hook(type => "filter", id => "wiki", call => \&filter); + IkiWiki::hook(type => "htmlize", id => "wiki", call => \&htmlize); +} # }}} + +sub filter (@) { #{{{ + my %params=@_; + + # Make CamelCase links work by promoting them to fullfledged + # WikiLinks. This regexp is based on the one in Text::WikiFormat. + $params{content}=~s#(?<![["/>=])\b((?:[A-Z][a-z0-9]\w*){2,})#[[$1]]#g; + + return $params{content}; +} #}}} + +sub htmlize ($) { #{{{ + my $content = shift; + + return Text::WikiFormat::format($content, undef, { implicit_links => 0 }); +} # }}} + +1 |