+++ /dev/null
-IkiWiki is the engine driving this wiki, which exists to document ikiWiki.
-The [[index]] is where you'll find actual useful info about it.
-
-Why call it IkiWiki? Well, partly because I'm sure some people will find
-this a pretty Iky Wiki, since it's so different from other Wikis. Partly
-because "ikiwiki" is a nice palindrome. Partly because its design turns
-the usual design for a Wiki inside-out and backwards.
-[[Ikiwiki]] is a wiki compiler. It converts a directory full of wiki pages
+Ikiwiki is a wiki compiler. It converts a directory full of wiki pages
into html pages suitable for publishing on a website. Unlike a traditional
wiki, ikiwiki does not have its own means of storing page history, its own
markup language, or support for editing pages online.
-To use [[ikiwiki]] to set up a wiki, you will probably want to use it with a
+Why call it IkiWiki? Well, partly because I'm sure some people will find
+this a pretty Iky Wiki, since it's so different from other Wikis. Partly
+because "ikiwiki" is a nice palindrome. Partly because its design turns
+the usual design for a Wiki inside-out and backwards.
+
+To use ikiwiki to set up a wiki, you will probably want to use it with a
revision control system, such as [[Subversion]], for keeping track of past
versions of pages. ikiwiki can run as a Subversion post-commit hook, so
that each committed change to your wiki is immediatly compiled and
would consider it a full-fledged wiki.
All wikis are supposed to have a [[SandBox]], so this one does to.
-If you'd like to try editing pages on this wiki, do whatever you'd like in
-[[ikiwiki]] is developed by JoeyHess.
+ikiwiki is developed by [[JoeyHess]].
memoize('pagename');
memoize('bestlink');
-my ($srcdir)= shift =~ /(.*)/; # untaint
-my ($destdir)= shift =~ /(.*)/; # untaint
+sub usage {
+ die "usage: ikiwiki [options] source dest\n";
+}
+
my $link=qr/\[\[([^\s]+)\]\]/;
-my $verbose=1;
+my $verbose=0;
+my $rebuild=0;
my $wikiname="wiki";
+if (grep /^-/, @ARGV) {
+ eval {use Getopt::Long};
+ GetOptions(
+ "wikiname=s" => \$wikiname,
+ "verbose|v" => \$verbose,
+ "rebuild" => \$rebuild,
+ ) || usage();
+}
+usage() unless @ARGV == 2;
+my ($srcdir) = shift =~ /(.*)/; # untaint
+my ($destdir) = shift =~ /(.*)/; # untaint
my %links;
my %oldpagemtime;
debug("rendering changed file $file");
render($file);
}
+ elsif ($rebuild) {
+ debug("rebuilding unchanged file $file");
+ render($file);
+ }
}
# if any files were added or removed, check to see if each page