aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-13 23:10:45 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-13 23:10:45 +0000
commit88e8f08c8ffe61fbb3aa8d0fbf78a86c30c65543 (patch)
tree9ebd278a370af31a6591f176e774ee46a89a27e1 /doc
parent309c689b6b139e67459c41a5132c9afec0504d84 (diff)
downloadikiwiki-88e8f08c8ffe61fbb3aa8d0fbf78a86c30c65543.tar
ikiwiki-88e8f08c8ffe61fbb3aa8d0fbf78a86c30c65543.tar.gz
* Make the basewiki be full of symlinks to pages that should be the same
in the doc wiki. This will allow direct edits to alter the base wiki without manual munging.
Diffstat (limited to 'doc')
-rw-r--r--doc/blog.mdwn35
-rw-r--r--doc/favicon.icobin0 -> 393 bytes
-rw-r--r--doc/helponformatting.mdwn78
-rw-r--r--doc/local.css3
-rw-r--r--doc/markdown.mdwn10
-rw-r--r--doc/openid.mdwn34
-rw-r--r--doc/pagespec.mdwn71
-rw-r--r--doc/preprocessordirective.mdwn33
-rw-r--r--doc/sandbox.mdwn2
-rw-r--r--doc/shortcuts.mdwn18
-rw-r--r--doc/smileys.mdwn50
-rw-r--r--doc/smileys/alert.pngbin0 -> 220 bytes
-rw-r--r--doc/smileys/angry.pngbin0 -> 295 bytes
-rw-r--r--doc/smileys/attention.pngbin0 -> 164 bytes
-rw-r--r--doc/smileys/biggrin.pngbin0 -> 173 bytes
-rw-r--r--doc/smileys/checkmark.pngbin0 -> 133 bytes
-rw-r--r--doc/smileys/devil.pngbin0 -> 354 bytes
-rw-r--r--doc/smileys/frown.pngbin0 -> 168 bytes
-rw-r--r--doc/smileys/icon-error.pngbin0 -> 159 bytes
-rw-r--r--doc/smileys/icon-info.pngbin0 -> 177 bytes
-rw-r--r--doc/smileys/idea.pngbin0 -> 372 bytes
-rw-r--r--doc/smileys/ohwell.pngbin0 -> 167 bytes
-rw-r--r--doc/smileys/prio1.pngbin0 -> 153 bytes
-rw-r--r--doc/smileys/prio2.pngbin0 -> 159 bytes
-rw-r--r--doc/smileys/prio3.pngbin0 -> 154 bytes
-rw-r--r--doc/smileys/redface.pngbin0 -> 306 bytes
-rw-r--r--doc/smileys/sad.pngbin0 -> 299 bytes
-rw-r--r--doc/smileys/smile.pngbin0 -> 356 bytes
-rw-r--r--doc/smileys/smile2.pngbin0 -> 334 bytes
-rw-r--r--doc/smileys/smile3.pngbin0 -> 326 bytes
-rw-r--r--doc/smileys/smile4.pngbin0 -> 275 bytes
-rw-r--r--doc/smileys/star_off.pngbin0 -> 297 bytes
-rw-r--r--doc/smileys/star_on.pngbin0 -> 374 bytes
-rw-r--r--doc/smileys/thumbs-up.pngbin0 -> 118 bytes
-rw-r--r--doc/smileys/tired.pngbin0 -> 157 bytes
-rw-r--r--doc/smileys/tongue.pngbin0 -> 176 bytes
-rw-r--r--doc/style.css228
-rw-r--r--doc/subpage.mdwn11
-rw-r--r--doc/subpage/linkingrules.mdwn32
-rw-r--r--doc/wikiicons/diff.pngbin0 -> 219 bytes
-rw-r--r--doc/wikilink.mdwn23
41 files changed, 627 insertions, 1 deletions
diff --git a/doc/blog.mdwn b/doc/blog.mdwn
new file mode 100644
index 000000000..859fa6aaa
--- /dev/null
+++ b/doc/blog.mdwn
@@ -0,0 +1,35 @@
+You can turn any page on this wiki into a weblog by inserting a
+[[PreProcessorDirective]]. Like this:
+
+ \[[inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]
+
+Any pages that match the specified [[PageSpec]] (in the example, any
+[[SubPage]] of "blog") will be part of the blog, and the newest 10
+of them will appear in the page. Note that if files that are not pages
+match the [[PageSpec]], they will be included in the feed using RSS
+enclosures, which is useful for podcasting.
+
+The optional `rootpage` parameter tells the wiki that new posts to this blog
+should default to being [[SubPage]]s of "blog", and enables a form at the
+top of the blog that can be used to add new items.
+
+If you want your blog to have an archive page listing every post ever made
+to it, you can accomplish that like this:
+
+ \[[inline pages="blog/* and !*/Discussion" archive="yes"]]
+
+You can even create an automatically generated list of all the pages on the
+wiki, with the most recently added at the top, like this:
+
+ \[[inline pages="* and !*/Discussion" archive="yes"]]
+
+If you want to be able to add pages to a given blog feed by tagging them,
+you can do that too. To tag a page, just make it link to a page or pages
+that represent its tags. Then use the special link() [[PageSpec]] to match
+all pages that have a given tag:
+
+ \[[inline pages="link(life)"]]
+
+Or include some tags and exclude others:
+
+ \[[inline pages="link(debian) and !link(social)"]]
diff --git a/doc/favicon.ico b/doc/favicon.ico
new file mode 100644
index 000000000..354b627f0
--- /dev/null
+++ b/doc/favicon.ico
Binary files differ
diff --git a/doc/helponformatting.mdwn b/doc/helponformatting.mdwn
new file mode 100644
index 000000000..3a0ddb9f2
--- /dev/null
+++ b/doc/helponformatting.mdwn
@@ -0,0 +1,78 @@
+# Help on formatting text
+
+Text on this wiki is, by default, written in a form very close to how you
+might write text for an email message. This style of text formatting is
+called [[MarkDown]], and it works like this:
+
+Leave blank lines between paragraphs.
+
+You can \**emphasise*\* or \*\***strongly emphasise**\*\* text by placing it
+in single or double asterisks.
+
+To create a list, start each line with an asterisk:
+
+* "* this is my list"
+* "* another item"
+
+To make a numbered list, start each line with a number (any number will
+do) followed by a period:
+
+1. "1. first line"
+2. "2. second line"
+2. "2. third line"
+
+To create a header, start a line with one or more `#` characters followed
+by a space and the header text. The number of `#` characters controls the
+size of the header:
+
+# # h1
+## ## h2
+### ### h3
+#### #### h4
+##### ##### h5
+###### ###### h6
+
+You can also make the first two levels of heading by underlining text with
+equals or dash:
+
+heading 1
+=========
+
+ heading 1
+ =========
+
+heading 2
+---------
+
+ heading 2
+ ---------
+
+To create a horizontal rule, just write three or more dashes or stars on
+their own line:
+
+----
+
+To quote someone, prefix the quote with ">":
+
+> To be or not to be,
+> that is the question.
+
+To write a code block, indent each line with a tab or 4 spaces:
+
+ 10 PRINT "Hello, world!"
+ 20 GOTO 10
+
+To link to another page on the wiki, place the page's name inside double
+square brackets, so you would use `\[[WikiLink]]` to link to [[WikiLink]].
+
+To link to any other web page, or to an email address, you can just put the url in angle brackets: <<http://ikiwiki.kitenet.net>>, or you can use the form
+\[link text\]\(url\)
+
+----
+
+You can also use [[PreProcessorDirective]]s to do additional cool stuff.
+
+[[if test="enabled(smiley)" then="""
+Also, because this wiki has the smiley plugin enabled, you can
+insert [[smileys]] and some other useful symbols.
+"""]]
diff --git a/doc/local.css b/doc/local.css
new file mode 100644
index 000000000..a0dec8cfd
--- /dev/null
+++ b/doc/local.css
@@ -0,0 +1,3 @@
+/* ikiwiki local style sheet */
+
+/* Add local styling here, instead of modifying style.css. */
diff --git a/doc/markdown.mdwn b/doc/markdown.mdwn
new file mode 100644
index 000000000..317a17db9
--- /dev/null
+++ b/doc/markdown.mdwn
@@ -0,0 +1,10 @@
+[Markdown](http://daringfireball.net/projects/markdown/)
+is a minimal markup language that resembles plain text as used in
+email messages. It is the markup language used by this wiki by default.
+
+For documentation about the markdown syntax, see [[HelpOnFormatting]] and
+[Markdown: syntax](http://daringfireball.net/projects/markdown/syntax).
+
+Note that [[WikiLink]]s and [[PreProcessorDirective]]s are not part of the
+markdown syntax, and are the only bit of markup that this wiki handles
+internally.
diff --git a/doc/openid.mdwn b/doc/openid.mdwn
new file mode 100644
index 000000000..7c6d2bda7
--- /dev/null
+++ b/doc/openid.mdwn
@@ -0,0 +1,34 @@
+[[meta title="OpenID"]]
+
+[[template id=note text="""
+[[if test="enabled(openid)"
+ then="This wiki has OpenID **enabled**."
+ else="This wiki has OpenID **disabled**."]]
+"""]]
+
+[OpenID](http://openid.net) is a decentralized authentication mechanism
+that allows you to have one login that you can use on a growing number of
+websites.
+
+To sign up for an OpenID, visit one of the following identity providers:
+
+* [MyOpenID](https://www.myopenid.com/)
+* [GetOpenID](https://getopenid.com/)
+* [Videntity](http://videntity.org/)
+* [LiveJournal](http://www.livejournal.com/openid/)
+* or any of the many others out there..
+
+Your OpenID is the URL that you are given when you sign up.
+[[if test="enabled(openid)" then="""
+To sign in to this wiki using OpenID, just enter it in the OpenID field in the
+signin form. You do not need to give this wiki a password or go through any
+registration process when using OpenID.
+"""]]
+
+---
+
+It's also possible to make a page in the wiki usable as an OpenID url,
+by delegating it to an openid server. Here's an example of how to do that:
+
+ \[[meta link="http://www.myopenid.com/server" rel="openid.server"]]
+ \[[meta link="http://yourid.myopenid.com/" rel="openid.delegate"]]
diff --git a/doc/pagespec.mdwn b/doc/pagespec.mdwn
new file mode 100644
index 000000000..53519e7f0
--- /dev/null
+++ b/doc/pagespec.mdwn
@@ -0,0 +1,71 @@
+To select a set of pages, such as pages that are locked, pages
+whose commit emails you want subscribe to, or pages to combine into a
+blog, the wiki uses a PageSpec. This is an expression that matches
+a set of pages.
+
+The simplest PageSpec is a simple list of pages. For example, this matches
+any of the three listed pages:
+
+ foo or bar or baz
+
+More often you will want to match any pages that have a particular thing in
+their name. You can do this using a glob pattern. "`*`" stands for any part
+of a page name, and "`?`" for any single letter of a page name. So this
+matches all pages about music, and any [[SubPage]]s of the SandBox, but does
+not match the SandBox itself:
+
+ *music* or SandBox/*
+
+You can also prefix an item with "`!`" to skip pages that match it. So to
+match all pages except for Discussion pages and the SandBox:
+
+ * and !SandBox and !*/Discussion
+
+Some more elaborate limits can be added to what matches using any of these
+functions:
+
+* "`link(page)`" - match only pages that link to a given page
+* "`backlink(page)`" - match only pages that a given page links to
+* "`creation_month(month)`" - match only pages created on the given month
+* "`creation_day(mday)`" - or day of the month
+* "`creation_year(year)`" - or year
+* "`created_after(page)`" - match only pages created after the given page
+ was created
+* "`created_before(page)`" - match only pages created before the given page
+ was created
+
+For example, to match all pages in a blog that link to the page about music
+and were written in 2005:
+
+ blog/* and link(music) and creation_year(2005)
+
+More complex expressions can also be created, by using parentheses for
+grouping. For example, to match pages in a blog that are tagged with either
+of two tags, use:
+
+ blog/* and (link(tag/foo) or link(tag/bar))
+
+Note that page names in PageSpecs are matched against the absolute
+filenames of the pages in the wiki, so a pagespec "foo" used on page
+"a/b" will not match a page named "a/foo" or "a/b/foo". To match
+relative to the directory of the page containing the pagespec, you can
+use "./". For example, "./foo" on page "a/b" matches page "a/foo".
+
+## Old syntax
+
+The old PageSpec syntax was called a "GlobList", and worked differently in
+two ways:
+
+1. "and" and "or" were not used; any page matching any item from the list
+ matched.
+2. If an item was prefixed with "`!`", then no page matching that item
+ matched, even if it matched an earlier list item.
+
+For example, here is the old way to match all pages except for the SandBox
+and Discussion pages:
+
+ * !SandBox !*/Discussion
+
+Using this old syntax is still supported. However, the old syntax is
+deprecated and will be removed at some point, and using the new syntax is
+recommended.
diff --git a/doc/preprocessordirective.mdwn b/doc/preprocessordirective.mdwn
new file mode 100644
index 000000000..1e2332c09
--- /dev/null
+++ b/doc/preprocessordirective.mdwn
@@ -0,0 +1,33 @@
+Preprocessor directives are similar to a [[WikiLink]] in form, except they
+contain spaces and parameters. The general form is:
+
+ \[[directive param="value" param="value"]]
+
+This gets expanded before the rest of the page is processed, and can be used
+to transform the page in various ways.
+
+The quotes around values can be omitted if the value is a simple word.
+Also, some directives may use parameters without values, for example:
+
+ \[[tag foo]]
+
+Note that if a preprocessor directive has no parameters, a space still must
+be put after its name, to avoid confusion with a [[WikiLink]]. For example:
+
+ \[[pagecount ]]
+
+A preprocessor directive does not need to all be on one line, it can be
+wrapped to multiple lines if you like:
+
+ \[[directive foo="baldersnatch"
+ bar="supercalifragalisticexpealadocious" baz=11]]
+
+Also, multiple lines of *quoted* text can be used for a value.
+To allow quote marks inside the quoted text, delimit the block
+of text with triple-quotes:
+
+ \[[directive text="""
+ 1. "foo"
+ 2. "bar"
+ 3. "baz"
+ """]]
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 540d7296e..78d6e11c7 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -81,4 +81,4 @@ Ethan wants to make a [[sandbox/castle]] in the sand.
hi
-just testing \ No newline at end of file
+just testing
diff --git a/doc/shortcuts.mdwn b/doc/shortcuts.mdwn
new file mode 100644
index 000000000..f9d586bbf
--- /dev/null
+++ b/doc/shortcuts.mdwn
@@ -0,0 +1,18 @@
+This page controls what shortcut links the wiki supports.
+
+* [[shortcut name=google url="http://www.google.com/search?q=%s"]]
+* [[shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
+* [[shortcut name=debbug url="http://bugs.debian.org/%s" desc="bug #%s"]]
+* [[shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
+* [[shortcut name=debpkg url="http://packages.debian.org/%s"]]
+* [[shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
+* [[shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
+* [[shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
+* [[shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
+* [[shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
+* [[shortcut name=iki url="http://ikiwiki.kitenet.net/%s.html"]]
+* [[shortcut name=ljuser url="http://%s.livejournal.com/"]]
+
+To add a new shortcut, use the "shortcut" preprocessor directive. "%s" is
+replaced with the text passed to the named shortcut. The optional desc
+parameter controls the description of the link.
diff --git a/doc/smileys.mdwn b/doc/smileys.mdwn
new file mode 100644
index 000000000..e5377ced2
--- /dev/null
+++ b/doc/smileys.mdwn
@@ -0,0 +1,50 @@
+This page is used to control what smileys are supported by the wiki.
+Just write the text of a smiley to display it.
+
+* \:) [[smileys/smile.png]]
+* \:-) [[smileys/smile.png]]
+* \:D [[smileys/biggrin.png]]
+* \:-D [[smileys/biggrin.png]]
+* \B) [[smileys/smile2.png]]
+* \B-) [[smileys/smile2.png]]
+* \:)) [[smileys/smile3.png]]
+* \:-)) [[smileys/smile3.png]]
+* \;) [[smileys/smile4.png]]
+* \;-) [[smileys/smile4.png]]
+* \:\ [[smileys/ohwell.png]]
+* \:/ [[smileys/ohwell.png]]
+* \:-/ [[smileys/ohwell.png]]
+* \>:> [[smileys/devil.png]]
+* \X-( [[smileys/angry.png]]
+* \<:( [[smileys/frown.png]]
+* \:( [[smileys/sad.png]]
+* \:-( [[smileys/sad.png]]
+* \:-? [[smileys/tongue.png]]
+* \:o [[smileys/redface.png]]
+* \|) [[smileys/tired.png]]
+* \|-) [[smileys/tired.png]]
+* \{OK} [[smileys/thumbs-up.png]]
+* \{X} [[smileys/icon-error.png]]
+* \{i} [[smileys/icon-info.png]]
+* \(./) [[smileys/checkmark.png]]
+* \(!) [[smileys/idea.png]]
+* \[!] [[smileys/attention.png]]
+* \/!\ [[smileys/alert.png]]
+* \{*} [[smileys/star_on.png]]
+* \{o} [[smileys/star_off.png]]
+* \{1} [[smileys/prio1.png]]
+* \{2} [[smileys/prio2.png]]
+* \{3} [[smileys/prio3.png]]
+
+For example: {*} B) {*}
+
+----
+
+To change the supported smileys, just edit the lists on this page.
+Note that the format is important; each list item should start with the
+text that is turned into the smiley, escaped so that users can see what
+produces it, followed by a [[WikiLink]] to the image to display.
+
+/!\ Bear in mind that the link to the image needs to be written in a way that
+will work if it's copied to other pages on the wiki. So be sure to include the
+smileys directory in the path to the file.
diff --git a/doc/smileys/alert.png b/doc/smileys/alert.png
new file mode 100644
index 000000000..5bb87e33f
--- /dev/null
+++ b/doc/smileys/alert.png
Binary files differ
diff --git a/doc/smileys/angry.png b/doc/smileys/angry.png
new file mode 100644
index 000000000..05bc69f74
--- /dev/null
+++ b/doc/smileys/angry.png
Binary files differ
diff --git a/doc/smileys/attention.png b/doc/smileys/attention.png
new file mode 100644
index 000000000..7e064566d
--- /dev/null
+++ b/doc/smileys/attention.png
Binary files differ
diff --git a/doc/smileys/biggrin.png b/doc/smileys/biggrin.png
new file mode 100644
index 000000000..f71b42c11
--- /dev/null
+++ b/doc/smileys/biggrin.png
Binary files differ
diff --git a/doc/smileys/checkmark.png b/doc/smileys/checkmark.png
new file mode 100644
index 000000000..8869caa19
--- /dev/null
+++ b/doc/smileys/checkmark.png
Binary files differ
diff --git a/doc/smileys/devil.png b/doc/smileys/devil.png
new file mode 100644
index 000000000..8684c3970
--- /dev/null
+++ b/doc/smileys/devil.png
Binary files differ
diff --git a/doc/smileys/frown.png b/doc/smileys/frown.png
new file mode 100644
index 000000000..2999b55ea
--- /dev/null
+++ b/doc/smileys/frown.png
Binary files differ
diff --git a/doc/smileys/icon-error.png b/doc/smileys/icon-error.png
new file mode 100644
index 000000000..53b1055f6
--- /dev/null
+++ b/doc/smileys/icon-error.png
Binary files differ
diff --git a/doc/smileys/icon-info.png b/doc/smileys/icon-info.png
new file mode 100644
index 000000000..c08b08d74
--- /dev/null
+++ b/doc/smileys/icon-info.png
Binary files differ
diff --git a/doc/smileys/idea.png b/doc/smileys/idea.png
new file mode 100644
index 000000000..37bc02ddc
--- /dev/null
+++ b/doc/smileys/idea.png
Binary files differ
diff --git a/doc/smileys/ohwell.png b/doc/smileys/ohwell.png
new file mode 100644
index 000000000..a83adfbf5
--- /dev/null
+++ b/doc/smileys/ohwell.png
Binary files differ
diff --git a/doc/smileys/prio1.png b/doc/smileys/prio1.png
new file mode 100644
index 000000000..774d34d65
--- /dev/null
+++ b/doc/smileys/prio1.png
Binary files differ
diff --git a/doc/smileys/prio2.png b/doc/smileys/prio2.png
new file mode 100644
index 000000000..3c6fac54f
--- /dev/null
+++ b/doc/smileys/prio2.png
Binary files differ
diff --git a/doc/smileys/prio3.png b/doc/smileys/prio3.png
new file mode 100644
index 000000000..2d03e62ce
--- /dev/null
+++ b/doc/smileys/prio3.png
Binary files differ
diff --git a/doc/smileys/redface.png b/doc/smileys/redface.png
new file mode 100644
index 000000000..9a8739253
--- /dev/null
+++ b/doc/smileys/redface.png
Binary files differ
diff --git a/doc/smileys/sad.png b/doc/smileys/sad.png
new file mode 100644
index 000000000..68d9966cf
--- /dev/null
+++ b/doc/smileys/sad.png
Binary files differ
diff --git a/doc/smileys/smile.png b/doc/smileys/smile.png
new file mode 100644
index 000000000..b51b3ff49
--- /dev/null
+++ b/doc/smileys/smile.png
Binary files differ
diff --git a/doc/smileys/smile2.png b/doc/smileys/smile2.png
new file mode 100644
index 000000000..43ea05f9d
--- /dev/null
+++ b/doc/smileys/smile2.png
Binary files differ
diff --git a/doc/smileys/smile3.png b/doc/smileys/smile3.png
new file mode 100644
index 000000000..c690ccc2f
--- /dev/null
+++ b/doc/smileys/smile3.png
Binary files differ
diff --git a/doc/smileys/smile4.png b/doc/smileys/smile4.png
new file mode 100644
index 000000000..f8f5b523d
--- /dev/null
+++ b/doc/smileys/smile4.png
Binary files differ
diff --git a/doc/smileys/star_off.png b/doc/smileys/star_off.png
new file mode 100644
index 000000000..c5535c3de
--- /dev/null
+++ b/doc/smileys/star_off.png
Binary files differ
diff --git a/doc/smileys/star_on.png b/doc/smileys/star_on.png
new file mode 100644
index 000000000..ec5c03097
--- /dev/null
+++ b/doc/smileys/star_on.png
Binary files differ
diff --git a/doc/smileys/thumbs-up.png b/doc/smileys/thumbs-up.png
new file mode 100644
index 000000000..1faabace7
--- /dev/null
+++ b/doc/smileys/thumbs-up.png
Binary files differ
diff --git a/doc/smileys/tired.png b/doc/smileys/tired.png
new file mode 100644
index 000000000..a3d5c56fb
--- /dev/null
+++ b/doc/smileys/tired.png
Binary files differ
diff --git a/doc/smileys/tongue.png b/doc/smileys/tongue.png
new file mode 100644
index 000000000..65105407c
--- /dev/null
+++ b/doc/smileys/tongue.png
Binary files differ
diff --git a/doc/style.css b/doc/style.css
new file mode 100644
index 000000000..3b8a24d9a
--- /dev/null
+++ b/doc/style.css
@@ -0,0 +1,228 @@
+/* ikiwiki style sheet */
+
+/* Note that instead of modifying this style sheet, you can instead edit
+ * local.css and use it to override or change settings in this one.
+ */
+
+.header {
+ margin: 0;
+ font-size: 22px;
+ font-weight: bold;
+ line-height: 1em;
+ display: block;
+}
+
+.author {
+ margin: 0;
+ font-size: 18px;
+ font-weight: bold;
+ display: block;
+}
+
+.actions ul {
+ margin: 0;
+ padding: 6px;
+ list-style-type: none;
+ border-bottom: 1px solid #000;
+}
+
+.inlinepage .actions ul {
+ border-bottom: 0;
+}
+
+.actions li {
+ display: inline;
+ padding: .2em .4em;
+}
+
+#backlinks {
+ margin: 1em 0;
+}
+
+.tags {
+ clear: both;
+}
+
+div.tags {
+ border-top: 1px solid #000;
+}
+
+#footer {
+ margin: 1em 0;
+}
+
+#searchform {
+ display: inline;
+ float: right;
+}
+
+#editcontent {
+ width: 100%;
+}
+
+/* Stuff for the RecentChanges table. */
+tr.changeheader {
+ background: #eee;
+ color: black !important;
+}
+tr.changeinfo {
+ background: #eee;
+ color: black !important;
+}
+th.changeheader {
+ padding: 1px .3em;
+}
+td.changeinfo {
+ padding: 1px .3em;
+}
+td.changetime {
+ white-space: nowrap;
+ padding: 1px .3em;
+}
+td.changelog {
+ font-style: italic;
+}
+
+.pagecloud {
+ padding: 10px 10px;
+ border: 1px solid #aaa;
+ background: #eee;
+ color: black !important;
+}
+
+/* Used for adding a blog page. */
+#blogform {
+ padding: 10px 10px;
+ border: 1px solid #aaa;
+ background: #eee;
+ color: black !important;
+}
+
+.inlinepage {
+ padding: 10px 10px;
+ border: 1px solid #aaa;
+}
+
+.pageinfo {
+ clear: both;
+ font-style: italic;
+ display: block;
+}
+
+/* Used for invalid form fields. */
+.fb_invalid {
+ color: red;
+ background: white !important;
+}
+
+/* Used for required form fields. */
+.fb_required {
+ font-weight: bold;
+}
+
+/* Orange feed button. */
+.feedbutton {
+ background: #ff6600;
+ color: white !important;
+ border-left: 1px solid #cc9966;
+ border-top: 1px solid #ccaa99;
+ border-right: 1px solid #993300;
+ border-bottom: 1px solid #331100;
+ padding: 0px 0.5em 0px 0.5em;
+ font-family: sans-serif;
+ font-weight: bold;
+ font-size: small;
+ text-decoration: none;
+ margin-top: 1em;
+}
+.feedbutton:hover {
+ color: white !important;
+ background: #ff9900;
+}
+
+/* Tag cloud. */
+.pagecloud {
+ float: right;
+ width: 30%;
+ text-align: center;
+}
+.smallestPC { font-size: 70%; }
+.smallPC { font-size: 85%; }
+.normalPC { font-size: 100%; }
+.bigPC { font-size: 115%; }
+.biggestPC { font-size: 130%; }
+
+#sidebar {
+ line-height: 3ex;
+ width: 20ex;
+ float: right;
+ margin-left: 40px;
+ margin-bottom: 40px;
+ padding: 2ex 2ex;
+}
+
+.infobox {
+ float: right;
+ margin-left: 2ex;
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ padding: 1ex 1ex;
+ border: 1px solid #aaa;
+}
+
+.notebox {
+ float: right;
+ margin-left: 2ex;
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ padding: 1ex 1ex;
+ border: 1px solid #aaa;
+ width: 25%
+}
+
+/* outlines */
+li.L1 {
+ list-style: upper-roman;
+}
+li.L2 {
+ list-style: decimal;
+}
+li.L3 {
+ list-style: lower-alpha;
+}
+li.L4 {
+ list-style: disc;
+}
+li.L5 {
+ list-style: square;
+}
+li.L6 {
+ list-style: circle;
+}
+li.L7 {
+ list-style: lower-roman;
+}
+li.L8 {
+ list-style: upper-alpha;
+}
+
+hr.poll {
+ height: 10pt;
+ color: white !important;
+ background: #eee;
+ border: 2px solid black;
+}
+div.poll {
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ padding: 1ex 1ex;
+ border: 1px solid #aaa;
+}
+
+input#openid_url {
+ background: url(http://openid.net/login-bg.gif) no-repeat;
+ background-color: #fff;
+ background-position: 0 50%;
+ color: #000;
+ padding-left: 18px;
+}
diff --git a/doc/subpage.mdwn b/doc/subpage.mdwn
new file mode 100644
index 000000000..43669209c
--- /dev/null
+++ b/doc/subpage.mdwn
@@ -0,0 +1,11 @@
+ikiwiki supports placing pages in a directory hierarchy. For example,
+this page, [[SubPage]] has some related pages placed under it, like
+[[SubPage/LinkingRules]]. This is a useful way to add some order to your
+wiki rather than just having a great big directory full of pages.
+
+To add a SubPage, just make a subdirectory and put pages in it. For
+example, this page is SubPage.mdwn in this wiki's source, and there is also
+a SubPage subdirectory, which contains SubPage/LinkingRules.mdwn. Subpages
+can be nested as deeply as you'd like.
+
+Linking to and from a SubPage is explained in [[LinkingRules]].
diff --git a/doc/subpage/linkingrules.mdwn b/doc/subpage/linkingrules.mdwn
new file mode 100644
index 000000000..c1062304a
--- /dev/null
+++ b/doc/subpage/linkingrules.mdwn
@@ -0,0 +1,32 @@
+To link to or from a [[SubPage]], you can normally use a regular
+[[WikiLink]] that does not contain the name of the parent directory of
+the [[SubPage]]. Ikiwiki descends the directory hierarchy looking for a
+page that matches your link.
+
+For example, if FooBar/SubPage links to "OtherPage", ikiwiki will first
+prefer pointing the link to FooBar/SubPage/OtherPage if it exists, next
+to FooBar/OtherPage and finally to OtherPage in the root of the wiki.
+
+Note that this means that if a link on FooBar/SomePage to "OtherPage"
+currently links to OtherPage, in the root of the wiki, and FooBar/OtherPage
+is created, the link will _change_ to point to FooBar/OtherPage. On the
+other hand, a link from BazBar to "OtherPage" would be unchanged by this
+creation of a [[SubPage]] of FooBar.
+
+You can also specify a link that contains a directory name, like
+"FooBar/OtherPage" to more exactly specify what page to link to. This is
+the only way to link to an unrelated [[SubPage]].
+
+You can use this to, for example, to link from BazBar to "FooBar/SubPage",
+or from BazBar/SubPage to "FooBar/SubPage".
+
+You can also use "/" at the start of a link, to specify exactly which page
+to link to, when there are multiple pages with similar names and the link
+goes to the wrong page by default. For example, linking from
+"FooBar/SubPage" to "/OtherPage" will link to the "OtherPage" in the root
+of the wiki, even if there is a "FooBar/OtherPage".
+
+Also, if the wiki is configured with a userdir, you can link to pages
+within the userdir without specifying a path to them. This is to allow for
+easy linking to a user's page in the userdir, to sign a comment. These
+links are checked for last of all.
diff --git a/doc/wikiicons/diff.png b/doc/wikiicons/diff.png
new file mode 100644
index 000000000..0b98d79ac
--- /dev/null
+++ b/doc/wikiicons/diff.png
Binary files differ
diff --git a/doc/wikilink.mdwn b/doc/wikilink.mdwn
new file mode 100644
index 000000000..46da8c301
--- /dev/null
+++ b/doc/wikilink.mdwn
@@ -0,0 +1,23 @@
+WikiLinks provide easy linking between pages of the wiki. To create a
+[[WikiLink]], just put the name of the page to link to in double brackets.
+For example "\[[WikiLink]]".
+
+If you ever need to write something like "\[[WikiLink]] without creating a
+wikilink, just prefix it with a "\", like "\\\\[[WikiLink]]".
+
+There are some special [[SubPage/LinkingRules]] that come into play when
+linking between [[SubPages|SubPage]].
+
+Also, if the file linked to by a WikiLink looks like an image, it will
+be displayed inline on the page.
+
+WikiLinks are matched with page names in a case-insensitive manner, so you
+don't need to worry about getting the case the same, and can capitalise
+links at the start of a sentence, and so on.
+
+It's also possible to write a WikiLink that uses something other than the
+page name as the link text. For example "\[[foo_bar|SandBox]]" links to the
+SandBox page, but the link will appear like this: [[foo_bar|SandBox]]
+
+**Note that you cannot use spaces in WikiLinks**. Replace spaces with
+underscores.