wmd plugin from willu
authorJoey Hess <joey@gnu.kitenet.net>
Sat, 7 Mar 2009 19:33:11 +0000 (14:33 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Sat, 7 Mar 2009 19:33:11 +0000 (14:33 -0500)
IkiWiki/Plugin/wmd.pm [new file with mode: 0644]

diff --git a/IkiWiki/Plugin/wmd.pm b/IkiWiki/Plugin/wmd.pm
new file mode 100644 (file)
index 0000000..074e1df
--- /dev/null
@@ -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
+