X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/aa2b3b8f637d0f3abe2ebf3845a22781ffd83c72..f3bec255e4f62f31bf7b2f99d941c79e1fe93559:/IkiWiki/Plugin/googlecalendar.pm diff --git a/IkiWiki/Plugin/googlecalendar.pm b/IkiWiki/Plugin/googlecalendar.pm index c99563d95..9e09d7dbb 100644 --- a/IkiWiki/Plugin/googlecalendar.pm +++ b/IkiWiki/Plugin/googlecalendar.pm @@ -3,44 +3,53 @@ package IkiWiki::Plugin::googlecalendar; use warnings; use strict; -use IkiWiki; -use IPC::Open2; +use IkiWiki 2.00; -sub import { #{{{ - IkiWiki::hook(type => "preprocess", id => "googlecalendar", +sub import { + hook(type => "getsetup", id => "googlecalendar", + call => \&getsetup); + hook(type => "preprocess", id => "googlecalendar", call => \&preprocess); - IkiWiki::hook(type => "format", id => "googlecalendar", + hook(type => "format", id => "googlecalendar", call => \&format); -} # }}} +} -sub preprocess (@) { #{{{ +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => undef, + }, +} + +sub preprocess (@) { my %params=@_; # Parse the html, looking for the url to embed for the calendar. # Avoid XSS attacks.. my ($url)=$params{html}=~m#iframe\s+src="http://www\.google\.com/calendar/embed\?([^"<>]+)"#; if (! defined $url || ! length $url) { - return "[[googlecalendar failed to find url in html]]"; + error gettext("failed to find url in html") } my ($height)=$params{html}=~m#height="(\d+)"#; my ($width)=$params{html}=~m#width="(\d+)"#; return "
"; -} # }}} +} -sub format (@) { #{{{ +sub format (@) { my %params=@_; $params{content}=~s/
<\/div>/gencal($1,$2,$3)/eg; return $params{content}; -} # }}} +} -sub gencal ($$$) { #{{{ +sub gencal ($$$) { my $url=shift; my $height=shift; my $width=shift; return qq{}; -} #}}} +} 1