* Fix absolute url munging in rss generation to support https, ftp, etc urls
[ikiwiki.git] / IkiWiki / Plugin / inline.pm
index c554774f6c23f1257d63a46bad8376d2e7eee82b..9a86aad0bfa4ad7bb8588abf984fc24032f4c349 100644 (file)
@@ -7,7 +7,8 @@ use strict;
 use IkiWiki;
 
 sub import { #{{{
-       IkiWiki::register_plugin("preprocess", "inline", \&IkiWiki::preprocess_inline);
+       IkiWiki::hook(type => "preprocess", id => "inline", 
+               call => \&IkiWiki::preprocess_inline);
 } # }}}
 
 # Back to ikiwiki namespace for the rest, this code is very much
@@ -58,10 +59,10 @@ sub preprocess_inline (@) { #{{{
        foreach my $page (blog_list($params{pages}, $params{show})) {
                next if $page eq $params{page};
                push @pages, $page;
-               $template->param(pagelink => htmllink($params{page}, $page));
+               $template->param(pagelink => htmllink($params{page}, $params{page}, $page));
                $template->param(content => get_inline_content($params{page}, $page))
                        if $params{archive} eq "no";
-               $template->param(ctime => scalar(gmtime($pagectime{$page})));
+               $template->param(ctime => displaytime($pagectime{$page}));
                $ret.=$template->output;
        }
        
@@ -99,7 +100,7 @@ sub get_inline_content ($$) { #{{{
        my $file=$pagesources{$page};
        my $type=pagetype($file);
        if ($type ne 'unknown') {
-               return htmlize($type, linkify(readfile(srcfile($file)), $parentpage));
+               return htmlize($type, preprocess($page, linkify($page, $parentpage, readfile(srcfile($file))), 1));
        }
        else {
                return "";
@@ -120,8 +121,8 @@ sub absolute_urls ($$) { #{{{
 
        $url=~s/[^\/]+$//;
        
-       $content=~s/<a\s+href="(?!http:\/\/)([^"]+)"/<a href="$url$1"/ig;
-       $content=~s/<img\s+src="(?!http:\/\/)([^"]+)"/<img src="$url$1"/ig;
+       $content=~s/<a\s+href="(?![^:]+:\/\/)([^"]+)"/<a href="$url$1"/ig;
+       $content=~s/<img\s+src="(?![^:]+:\/\/)([^"]+)"/<img src="$url$1"/ig;
        return $content;
 } #}}}