]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Render.pm
revert broken parentlinks fix, which was broken, explain why
[ikiwiki.git] / IkiWiki / Render.pm
index 1449b8931cc9ebf364d0daf7841f1d7577c358b6..ddd14692230a749b0cee57b6396279e4f236e9bd 100644 (file)
@@ -74,7 +74,7 @@ sub parentlinks ($) { #{{{
        foreach my $dir (reverse split("/", $page)) {
                if (! $skip) {
                        $path.="../";
-                       unshift @ret, { url => "$path$dir.html", page => pagetitle($dir) };
+                       unshift @ret, { url => $path.htmlpage($dir), page => pagetitle($dir) };
                }
                else {
                        $skip=0;
@@ -129,37 +129,16 @@ sub preprocess ($$$;$) { #{{{
 
 sub add_depends ($$) { #{{{
        my $page=shift;
-       my $globlist=shift;
+       my $pagespec=shift;
        
        if (! exists $depends{$page}) {
-               $depends{$page}=$globlist;
+               $depends{$page}=$pagespec;
        }
        else {
-               $depends{$page}=globlist_merge($depends{$page}, $globlist);
+               $depends{$page}=pagespec_merge($depends{$page}, $pagespec);
        }
 } # }}}
 
-sub globlist_merge ($$) { #{{{
-       my $a=shift;
-       my $b=shift;
-
-       my $ret="";
-       # Only add negated globs if they are not matched by the other globlist.
-       foreach my $i ((map { [ $a, $_ ] } split(" ", $b)), 
-                      (map { [ $b, $_ ] } split(" ", $a))) {
-               if ($i->[1]=~/^!(.*)/) {
-                       if (! globlist_match($1, $i->[0])) {
-                               $ret.=" ".$i->[1];
-                       }
-               }
-               else {
-                       $ret.=" ".$i->[1];
-               }
-       }
-       
-       return $ret;
-} #}}}
-
 sub genpage ($$$) { #{{{
        my $page=shift;
        my $content=shift;
@@ -201,14 +180,20 @@ sub genpage ($$$) { #{{{
                content => $content,
                backlinks => [backlinks($page)],
                mtime => displaytime($mtime),
-               styleurl => styleurl($page),
+               baseurl => baseurl($page),
        );
 
        run_hooks(pagetemplate => sub {
                shift->(page => $page, destpage => $page, template => $template);
        });
        
-       return $template->output;
+       $content=$template->output;
+
+       run_hooks(format => sub {
+               $content=shift->($content);
+       });
+
+       return $content;
 } #}}}
 
 sub check_overwrite ($$) { #{{{
@@ -373,6 +358,7 @@ sub refresh () { #{{{
                        debug("new page $page") unless exists $pagectime{$page};
                        push @add, $file;
                        $links{$page}=[];
+                       $pagecase{lc $page}=$page;
                        $pagesources{$page}=$file;
                        if ($config{getctime} && -e "$config{srcdir}/$file") {
                                $pagectime{$page}=rcs_getctime("$config{srcdir}/$file");
@@ -441,7 +427,7 @@ FILE:               foreach my $file (@files) {
                                foreach my $file (keys %rendered, @del) {
                                        next if $f eq $file;
                                        my $page=pagename($file);
-                                       if (globlist_match($page, $depends{$p})) {
+                                       if (pagespec_match($page, $depends{$p})) {
                                                debug("rendering $f, which depends on $page");
                                                render($f);
                                                $rendered{$f}=1;