blah
[ikiwiki.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index 2815a8e1dd666cb7685c6b7da8382464c3f41aac..a5327dac53310256f5beed0a5dd76e3eab82f957 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -26,6 +26,7 @@ my $url="";
 my $cgiurl="";
 my $historyurl="";
 my $svn=1;
+my $anonok=0;
 
 sub usage { #{{{
        die "usage: ikiwiki [options] source templates dest\n";
@@ -242,7 +243,7 @@ sub backlinks ($) { #{{{
        return @links;
 } #}}}
        
-sub parentlinks ($) {
+sub parentlinks ($) { #{{{
        my $page=shift;
        
        my @ret;
@@ -259,7 +260,7 @@ sub parentlinks ($) {
                $path.="../";
        }
        return @ret;
-}
+} #}}}
 
 sub indexlink () { #{{{
        return "<a href=\"$url\">$wikiname</a>/ ";
@@ -418,7 +419,8 @@ sub rcs_recentchanges ($) { #{{{
                                $when=concise(ago(time - str2time($3)));
                        }
                        elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/(.+)$/) {
-                               push @pages, pagename($1) if length $1;
+                               push @pages, { link => htmllink("", pagename($1), 1) }
+                                       if length $1;
                        }
                        elsif ($state eq 'header' && /^$/) {
                                $state='body';
@@ -588,7 +590,7 @@ sub gen_wrapper ($$) { #{{{
                error("$this doesn't seem to be executable");
        }
 
-       my @params=($srcdir, $destdir, "--wikiname=$wikiname");
+       my @params=($srcdir, $templatedir, $destdir, "--wikiname=$wikiname");
        push @params, "--verbose" if $verbose;
        push @params, "--rebuild" if $rebuild;
        push @params, "--nosvn" if !$svn;
@@ -596,6 +598,7 @@ sub gen_wrapper ($$) { #{{{
        push @params, "--url=$url" if $url;
        push @params, "--cgiurl=$cgiurl" if $cgiurl;
        push @params, "--historyurl=$historyurl" if $historyurl;
+       push @params, "--anonok" if $anonok;
        my $params=join(" ", @params);
        my $call='';
        foreach my $p ($this, $this, @params) {
@@ -655,29 +658,18 @@ EOF
        exit 0;
 } #}}}
 
-sub cgi_recentchanges ($) { #{{{
+sub html_recentchanges ($) { #{{{
        my $q=shift;
        
-       
-       
-       my $list="<ul>\n";
-       foreach my $change (rcs_recentchanges(100)) {
-               $list.="<li>";
-               $list.=join(", ", map { htmllink("", $_, 1) } @{$change->{pages}});
-               $list.="<br>\n";
-               $list.="changed ".$change->{when}." by ".
-                      htmllink("", $change->{user}, 1).
-                      ": <i>".$change->{message}."</i>\n";
-               $list.="</li>\n";
-       }
-       $list.="</ul>\n";
-               
-       print $q->header,
-             $q->start_html("RecentChanges"),
-             $q->h1(indexlink()." RecentChanges"),
-             $list,
-             $q->end_form,
-             $q->end_html;
+       my $template=HTML::Template->new(
+               filename => "$templatedir/recentchanges.tmpl");
+       $template->param(
+               title => "RecentChanges",
+               indexlink => $url,
+               wikiname => $wikiname,
+               changelog => [rcs_recentchanges(100)],
+       );
+       print $q->header, $template->output;
 } #}}}
 
 sub cgi_signin ($$) { #{{{
@@ -802,7 +794,7 @@ sub cgi () { #{{{
                return;
        }
        
-       if (! defined $session->param("name") || $do eq 'signin') {
+       if ((! $anonok && ! defined $session->param("name")) || $do eq 'signin') {
                cgi_signin($q, $session);
                return;
        }
@@ -936,6 +928,7 @@ if (grep /^-/, @ARGV) {
                "rebuild" => \$rebuild,
                "wrapper" => \$wrapper,
                "svn!" => \$svn,
+               "anonok!" => \$anonok,
                "cgi" => \$cgi,
                "url=s" => \$url,
                "cgiurl=s" => \$cgiurl,