master
joey 2006-03-10 04:28:06 +00:00
parent 2877f69895
commit 198c2d9c45
4 changed files with 30 additions and 15 deletions

View File

@ -1,5 +1,5 @@
all:
./ikiwiki doc html
./ikiwiki doc html --wikiname="ikiwiki"
clean:
rm -rf html

View File

@ -1,7 +0,0 @@
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.

View File

@ -1,9 +1,14 @@
[[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
@ -31,6 +36,5 @@ ikiwiki also supports making one page that is a [[SubPage]] of another.
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]].

24
ikiwiki
View File

@ -14,11 +14,25 @@ BEGIN {
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;
@ -331,6 +345,10 @@ sub refresh () {
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