summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2010-04-17 12:20:50 -0400
committerJoey Hess <joey@gnu.kitenet.net>2010-04-17 12:20:50 -0400
commitc769a33392c4dedbabfb1fa1fda5c8bb30b84c78 (patch)
tree1b7eb92c38710057197b08c0f04912417d13d0b6
parentc6c03768da90df0d7474edce09c2abf2a7e32052 (diff)
autoindex: Switch to using %wikistate instead of abusing $pagestate{index}.
-rw-r--r--IkiWiki/Plugin/autoindex.pm20
-rw-r--r--debian/changelog2
-rw-r--r--doc/todo/auto-create_tag_pages_according_to_a_template.mdwn3
3 files changed, 19 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm
index 555856b11..c71d73349 100644
--- a/IkiWiki/Plugin/autoindex.pm
+++ b/IkiWiki/Plugin/autoindex.pm
@@ -61,8 +61,16 @@ sub refresh () {
}
my %deleted;
- if (ref $pagestate{index}{autoindex}{deleted}) {
- %deleted=%{$pagestate{index}{autoindex}{deleted}};
+ if (ref $wikistate{autoindex}{deleted}) {
+ %deleted=%{$wikistate{autoindex}{deleted}};
+ }
+ elsif (ref $pagestate{index}{autoindex}{deleted}) {
+ # compatability code
+ %deleted=%{$pagestate{index}{autoindex}{deleted}};
+ delete $pagestate{index}{autoindex};
+ }
+
+ if (keys %deleted) {
foreach my $dir (keys %deleted) {
# remove deleted page state if the deleted page is re-added,
# or if all its subpages are deleted
@@ -71,7 +79,7 @@ sub refresh () {
delete $deleted{$dir};
}
}
- $pagestate{index}{autoindex}{deleted}=\%deleted;
+ $wikistate{autoindex}{deleted}=\%deleted;
}
my @needed;
@@ -82,10 +90,10 @@ sub refresh () {
# This page must have just been deleted, so
# don't re-add it. And remember it was
# deleted.
- if (! ref $pagestate{index}{autoindex}{deleted}) {
- $pagestate{index}{autoindex}{deleted}={};
+ if (! ref $wikistate{autoindex}{deleted}) {
+ $wikistate{autoindex}{deleted}={};
}
- ${$pagestate{index}{autoindex}{deleted}}{$dir}=1;
+ ${$wikistate{autoindex}{deleted}}{$dir}=1;
}
else {
push @needed, $dir;
diff --git a/debian/changelog b/debian/changelog
index d65ffffd7..4721c5309 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -58,6 +58,8 @@ ikiwiki (3.20100415) UNRELEASED; urgency=low
an iffy thing.
* Use above to fix up timestamps on docwiki, as well as ensure that
timestamps on basewiki files shipped in the deb are sane.
+ * autoindex: Switch to using %wikistate instead of abusing
+ $pagestate{index}.
-- Joey Hess <joeyh@debian.org> Sun, 04 Apr 2010 12:17:11 -0400
diff --git a/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn b/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
index 8fc97578c..49da3c80c 100644
--- a/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
+++ b/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
@@ -239,6 +239,9 @@ wrong direction.
>>>>>> Aha! Having looked at [[plugins/write]] again, it turns out that what this
>>>>>> feature should really use is `%wikistate`, I think? :-) --[[smcv]]
+>>>>>>> Ah, indeed, that came after I wrote autoindex. I've fixed autoindex to
+>>>>>>> use it. --[[Joey]]
+
>>>>> Ok, now I know what you mean. --[[David_Riebenbauer]]
>>> * `autoindex` forgets that a page was deleted when that page is