]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - IkiWiki/Plugin/wmd.pm
initial stab at getting wmd-new working
[git.ikiwiki.info.git] / IkiWiki / Plugin / wmd.pm
1 #!/usr/bin/perl
2 package IkiWiki::Plugin::wmd;
4 use warnings;
5 use strict;
6 use IkiWiki 3.00;
8 sub import {
9         add_underlay("wmd");
10         hook(type => "getsetup", id => "wmd", call => \&getsetup);
11         hook(type => "formbuilder_setup", id => "wmd", call => \&formbuilder_setup);
12 }
14 sub getsetup () {
15         return
16                 plugin => {
17                         safe => 1,
18                         rebuild => 0,
19                         section => "web",
20                 },
21 }
23 sub formbuilder_setup (@) {
24         my %params=@_;
25         my $form=$params{form};
27         return if ! defined $form->field("do");
28         
29         return unless $form->field("do") eq "edit" ||
30                         $form->field("do") eq "create" ||
31                         $form->field("do") eq "comment";
32         
33         $form->tmpl_param("wmd_button_bar", "<div id=\"wmd-button-bar\" class=\"wmd-panel\"></div>\n");
35         $form->tmpl_param("wmd_preview", "<div id=\"wmd-preview\" class=\"wmd-panel\"></div>\n".
36                 include_javascript(undef, 1));
38         $form->field(name => "editcontent", class => "wmd-panel", id =>
39                 "wmd-input");
40 }
42 sub include_javascript ($;$) {
43         my $page=shift;
44         my $absolute=shift;
46         my $wmdjs=urlto("wmd/wmd.js", $page, $absolute);
47         my $showdownjs=urlto("wmd/showdown.js", $page, $absolute);
49         return <<"EOF"
50 <script type="text/javascript">
51 wmd_options = {
52         output: "Markdown"
53 };
54 </script>
55 <script src="$showdownjs" type="text/javascript"></script>
56 <script src="$wmdjs" type="text/javascript"></script>
57 EOF
58 }
60 1