use CGI::Kwiki; use CGI::Kwiki::Formatter; use constant DEBUG => 1; sub CGI::Kwiki::Formatter::wiki_link_format { my ($self, $text) = @_; return qq~$text~ unless $self->driver->database->exists($text); return qq~$text~ unless $self->is_readable($text); return qq~$text~; } use strict; use warnings; publish_static('/webdirectory/manual'); sub publish_static { my $outdir = shift or die "must specify outdir"; die "can't read/write to $outdir or it's not a directory : $!" unless -d $outdir and -r _ and -w _; my $driver = CGI::Kwiki::load_driver(); $driver->load_class('display'); for my $page( $driver->database->pages ){ print STDERR "processing $page\n" if DEBUG; my $outfile = "$outdir/$page.html"; my $wiki_text = $driver->database->load( $page ); my $formatted = $driver->formatter->process($wiki_text); open OUTFH, '>', $outfile or die "can't clobber $outfile $! "; ### unless you modify your templates like I, you ought to modify all links ### using HTML::Parser to remove references to admin.cgi, blog.cgi ... my $templatedoutput = $driver->display->template->process( [qw(display_body)], display => $formatted, is_editable => 0, ); my $trashcan = qq(); $templatedoutput =~ s/$trashcan/ /gm; my $fulldoc = $Admin->Template_Canner($templatedoutput,"$page"); print OUTFH $fulldoc; close OUTFH; } }