foreach my $data (values %guids) {
next unless $data->{page};
+ next if $data->{expired};
$config{aggregateinternal} = 0;
my $oldname = pagefile($data->{page});
+ my $oldoutput = $config{destdir}."/".IkiWiki::htmlpage($data->{page});
$config{aggregateinternal} = 1;
my $newname = pagefile($data->{page});
else {
debug("$oldname not found");
}
+ if (-e $oldoutput) {
+ debug("removing output file $oldoutput");
+ unlink($oldoutput) || error ("$!");
+ }
}
savestate();
# aggregateinternal
The `aggregateinternal` mode moves pages aggregated by the aggregate plugin
-so that the `aggregateinternal` option can be endabled
+so that the `aggregateinternal` option can be enabled.
# indexdb
in those PageSpecs. For example, if the PageSpec was `foo/*`, it should
be changed to `internal(foo/*)`. This has to be done because internal
pages are not matched by regular globs.
-2. Use [[ikiwiki-transition]] to move all existing aggregated `.html`
- files. The command to run is `ikiwiki-transition aggregateinternal $srcdir`,
- or if you have changed the `htmlext` option to something other than "html",
- `ikiwiki-transition aggregateinternal $srcdir $htmlext`
+2. Use [[ikiwiki-transition]] to rename all existing aggregated `.html`
+ files in the input directory, and delete the corresponding files from
+ the output directory. The command to run is
+ `ikiwiki-transition aggregateinternal $setupfile`
3. Turn on `aggregateinternal` in the setup file and rebuild the wiki.
> I've patched ikiwiki-transition to have an aggregateinternal mode.
> See my aggregateinternal branch, again.
-> "ikiwiki-transition aggregateinternal $srcdir $htmlext" moves the pages around,
+> "ikiwiki-transition aggregateinternal $setupfile" moves the pages around,
> although it doesn't update the pagespecs (I wouldn't know how...) --[[smcv]]
[[patch]]
}
sub aggregateinternal {
- $config{srcdir} = shift;
- $config{wikistatedir} = $config{srcdir}."/.ikiwiki";
- $config{htmlext} = (shift or "html");
-
+ require IkiWiki::Setup;
require IkiWiki::Plugin::aggregate;
+ %config = (IkiWiki::defaultconfig(), IkiWiki::Setup::load(shift));
+ IkiWiki::checkconfig();
+
IkiWiki::Plugin::aggregate::migrate_to_internal();
print "... now add aggregateinternal => 1 to your .setup file\n";
print STDERR " prefix_directives file\n";
print STDERR " indexdb srcdir\n";
print STDERR " hashpassword srcdir\n";
- print STDERR " aggregateinternal srcdir [htmlext]\n";
+ print STDERR " aggregateinternal setupfile\n";
exit 1;
}