diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-04-04 17:27:48 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-04-04 17:27:48 -0400 |
commit | 8e92468eae9ac0ab8161a0c71ff6c6a0a8aef07a (patch) | |
tree | 9e26465e0ca98a5f3cbc6c72a0cace4bf83b93db /IkiWiki/Plugin/wmd.pm | |
parent | 78a69e5bd632eb86ef8135e9c1d05d2c48b43362 (diff) | |
parent | 08fda4c9d374de1d3de3172a192d4d915d3dc0c1 (diff) | |
download | ikiwiki-8e92468eae9ac0ab8161a0c71ff6c6a0a8aef07a.tar ikiwiki-8e92468eae9ac0ab8161a0c71ff6c6a0a8aef07a.tar.gz |
Merge branch 'master'
Conflicts:
doc/ikiwiki-makerepo.mdwn
Diffstat (limited to 'IkiWiki/Plugin/wmd.pm')
-rw-r--r-- | IkiWiki/Plugin/wmd.pm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/wmd.pm b/IkiWiki/Plugin/wmd.pm new file mode 100644 index 000000000..9ddd237ab --- /dev/null +++ b/IkiWiki/Plugin/wmd.pm @@ -0,0 +1,52 @@ +#!/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, + }, +} + +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->field("do") eq "comment"; + + $form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n". + include_javascript(undef, 1)); +} + +sub include_javascript ($;$) { + my $page=shift; + my $absolute=shift; + + my $wmdjs=urlto("wmd/wmd.js", $page, $absolute); + return <<"EOF" +<script type="text/javascript"> +wmd_options = { + output: "Markdown" +}; +</script> +<script src="$wmdjs" type="text/javascript"></script> +EOF +} + +1 |