diff options
-rw-r--r-- | IkiWiki/Plugin/wmd.pm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/wmd.pm b/IkiWiki/Plugin/wmd.pm new file mode 100644 index 000000000..074e1df6f --- /dev/null +++ b/IkiWiki/Plugin/wmd.pm @@ -0,0 +1,45 @@ +#!/usr/bin/perl +package IkiWiki::Plugin::wmd; + +use warnings; +use strict; +use IkiWiki 3.00; +use POSIX; +use Encode; + +sub import { + add_underlay("wmd"); + hook(type => "getsetup", id => "wmd", call => \&getsetup); + hook(type => "formbuilder_setup", id => "wmd", call => \&formbuilder_setup); +} + +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => 1, + }, +} + +sub formbuilder_setup (@) { + my %params=@_; + my $form=$params{form}; + + return if ! defined $form->field("do"); + + return unless (($form->field("do") eq "edit") || + ($form->field("do") eq "create")); + + $form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n".include_javascript(undef, 1)); +} + +sub include_javascript ($;$) { + my $page=shift; + my $absolute=shift; + + return '<script src="'.urlto("wmd.js", $page, $absolute). + '" type="text/javascript"></script>'."\n"; +} + +1 + |