projects
/
ikiwiki.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
56fd145
)
bugfixes
author
joey
<joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 10 Mar 2006 06:48:02 +0000
(06:48 +0000)
committer
joey
<joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 10 Mar 2006 06:48:02 +0000
(06:48 +0000)
ikiwiki
patch
|
blob
|
history
diff --git
a/ikiwiki
b/ikiwiki
index c57c2e50798797ef109337ccb7f63ab6bfede6b9..2808ccc78eab6074c2c8d1a23f8d2f775cee2f91 100755
(executable)
--- a/
ikiwiki
+++ b/
ikiwiki
@@
-172,6
+172,8
@@
sub htmllink ($$) {
return $link if $page eq $bestlink;
return $link if $page eq $bestlink;
+ # TODO BUG: %renderedfiles may not have it, if the linked to page
+ # was also added and isn't yet rendered!
if (! grep { $_ eq $bestlink } values %renderedfiles) {
$bestlink=htmlpage($bestlink);
}
if (! grep { $_ eq $bestlink } values %renderedfiles) {
$bestlink=htmlpage($bestlink);
}
@@
-214,8
+216,11
@@
sub linkbacks ($$) {
my @links;
foreach my $p (keys %links) {
my @links;
foreach my $p (keys %links) {
- if (grep {
$_
eq $page } @{$links{$p}}) {
+ if (grep {
length $_ && bestlink($p, $_)
eq $page } @{$links{$p}}) {
my $href=File::Spec->abs2rel(htmlpage($p), dirname($page));
my $href=File::Spec->abs2rel(htmlpage($p), dirname($page));
+ # TODO: if $p is joey/foo/bar and
+ # the $page is joey/foo/baz, make the link text
+ # just be "bar".
push @links, "<a href=\"$href\">$p</a>";
}
}
push @links, "<a href=\"$href\">$p</a>";
}
}
@@
-289,8
+294,8
@@
sub loadindex () {
my $page=pagename($file);
$pagesources{$page}=$file;
$oldpagemtime{$page}=$mtime;
my $page=pagename($file);
$pagesources{$page}=$file;
$oldpagemtime{$page}=$mtime;
- $links{$page}=[@links];
$oldlinks{$page}=[@links];
$oldlinks{$page}=[@links];
+ $links{$page}=[@links];
$renderedfiles{$page}=$rendered;
}
close IN;
$renderedfiles{$page}=$rendered;
}
close IN;
@@
-361,6
+366,7
@@
sub refresh () {
prune($destdir."/".$renderedfiles{$page});
delete $renderedfiles{$page};
$oldpagemtime{$page}=0;
prune($destdir."/".$renderedfiles{$page});
delete $renderedfiles{$page};
$oldpagemtime{$page}=0;
+ delete $pagesources{$page};
}
}
}
}
@@
-374,18
+380,15
@@
sub refresh () {
render($file);
$rendered{$file}=1;
}
render($file);
$rendered{$file}=1;
}
- elsif ($rebuild) {
- debug("rebuilding unchanged file $file");
- render($file);
- $rendered{$file}=1;
- }
}
# if any files were added or removed, check to see if each page
# needs an update due to linking to them
}
# if any files were added or removed, check to see if each page
# needs an update due to linking to them
+ # TODO: inefficient; pages may get rendered above and again here;
+ # problem is the bestlink may have changes and we won't know until
+ # now
if (@add || @del) {
FILE: foreach my $file (@files) {
if (@add || @del) {
FILE: foreach my $file (@files) {
- next if $rendered{$file};
my $page=pagename($file);
foreach my $f (@add, @del) {
my $p=pagename($f);
my $page=pagename($file);
foreach my $f (@add, @del) {
my $p=pagename($f);
@@
-393,6
+396,7
@@
FILE: foreach my $file (@files) {
if (bestlink($page, $link) eq $p) {
debug("rendering $file, which links to $p");
render($file);
if (bestlink($page, $link) eq $p) {
debug("rendering $file, which links to $p");
render($file);
+ $rendered{$file}=1;
next FILE;
}
}
next FILE;
}
}
@@
-408,19
+412,23
@@
FILE: foreach my $file (@files) {
if (%rendered) {
my %linkchanged;
foreach my $file (keys %rendered, @del) {
if (%rendered) {
my %linkchanged;
foreach my $file (keys %rendered, @del) {
- my $pagename=pagename($file);
- if (exists $links{$pagename}) {
- foreach my $link (@{$links{$pagename}}) {
- if (! exists $oldlinks{$pagename} ||
- ! grep { $_ eq $link } @{$oldlinks{$pagename}}) {
+ my $page=pagename($file);
+ if (exists $links{$page}) {
+ foreach my $link (@{$links{$page}}) {
+ $link=bestlink($page, $link);
+ if (length $link &&
+ ! exists $oldlinks{$page} ||
+ ! grep { $_ eq $link } @{$oldlinks{$page}}) {
$linkchanged{$link}=1;
}
}
}
$linkchanged{$link}=1;
}
}
}
- if (exists $oldlinks{$pagename}) {
- foreach my $link (@{$oldlinks{$pagename}}) {
- if (! exists $links{$pagename} ||
- ! grep { $_ eq $link } @{$links{$pagename}}) {
+ if (exists $oldlinks{$page}) {
+ foreach my $link (@{$oldlinks{$page}}) {
+ $link=bestlink($page, $link);
+ if (length $link &&
+ ! exists $links{$page} ||
+ ! grep { $_ eq $link } @{$links{$page}}) {
$linkchanged{$link}=1;
}
}
$linkchanged{$link}=1;
}
}
@@
-436,6
+444,6
@@
FILE: foreach my $file (@files) {
}
}
}
}
-loadindex();
+loadindex()
unless $rebuild
;
refresh();
saveindex();
refresh();
saveindex();