aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-03-07 14:33:11 -0500
committerJoey Hess <joey@gnu.kitenet.net>2009-03-07 14:33:11 -0500
commite7d2da564145d4ad05c3dcbe9d71bbf091243b91 (patch)
treeb1e37a5eecce060e01633d6eb13a8ed04ab2eb40 /IkiWiki
parentdc4b6b1a42e810d1608245f2997b642782361c0a (diff)
downloadikiwiki-e7d2da564145d4ad05c3dcbe9d71bbf091243b91.tar
ikiwiki-e7d2da564145d4ad05c3dcbe9d71bbf091243b91.tar.gz
wmd plugin from willu
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/wmd.pm45
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
+