]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/inline.pm
calendar: Tune archive_pagespec to only match pages, not other files.
[ikiwiki.git] / IkiWiki / Plugin / inline.pm
index 0436497420489a93964cdfc47d31abc34a17b9e2..715a3d6523cfcee4e57c125425d19cfdab110298 100644 (file)
@@ -329,12 +329,17 @@ sub preprocess_inline (@) {
        if (! $feedonly) {
                my $template;
                if (! $raw) {
+                       # cannot use wiki pages as templates; template not sanitized due to
+                       # format hook hack
                        eval {
                                $template=template_depends($params{template}.".tmpl", $params{page},
                                        blind_cache => 1);
                        };
-                       if (! $@ || ! $template) {
-                               error sprintf(gettext("nonexistant template %s"), $params{template});
+                       if ($@) {
+                               error gettext("failed to process template:")." $@";
+                       }
+                       if (! $template) {
+                               error sprintf(gettext("template %s not found"), $params{template}.".tmpl");
                        }
                }
                my $needcontent=$raw || (!($archive && $quick) && $template->query(name => 'content'));
@@ -353,10 +358,11 @@ sub preprocess_inline (@) {
                                $template->param(pageurl => urlto($page, $params{destpage}));
                                $template->param(inlinepage => $page);
                                $template->param(title => pagetitle(basename($page)));
-                               $template->param(ctime => displaytime($pagectime{$page}, $params{timeformat}));
+                               $template->param(ctime => displaytime($pagectime{$page}, $params{timeformat}, 1));
                                $template->param(mtime => displaytime($pagemtime{$page}, $params{timeformat}));
                                $template->param(first => 1) if $page eq $list[0];
                                $template->param(last => 1) if $page eq $list[$#list];
+                               $template->param(html5 => $config{html5});
        
                                if ($actions) {
                                        my $file = $pagesources{$page};
@@ -470,6 +476,13 @@ sub get_inline_content ($$) {
                       filter($page, $destpage,
                       readfile(srcfile($file))))));
                $nested--;
+               if (isinternal($page)) {
+                       # make inlined text of internal pages searchable
+                       run_hooks(indexhtml => sub {
+                               shift->(page => $page, destpage => $page,
+                                       content => $ret);
+                       });
+               }
        }
        
        if ($cached_destpage ne $destpage) {
@@ -495,16 +508,6 @@ sub date_822 ($) {
        return $ret;
 }
 
-sub date_3339 ($) {
-       my $time=shift;
-
-       my $lc_time=POSIX::setlocale(&POSIX::LC_TIME);
-       POSIX::setlocale(&POSIX::LC_TIME, "C");
-       my $ret=POSIX::strftime("%Y-%m-%dT%H:%M:%SZ", gmtime($time));
-       POSIX::setlocale(&POSIX::LC_TIME, $lc_time);
-       return $ret;
-}
-
 sub absolute_urls ($$) {
        # sucky sub because rss sucks
        my $content=shift;