summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blog.mdwn95
-rw-r--r--favicon.icobin0 -> 371 bytes
-rw-r--r--helponformatting.mdwn94
-rw-r--r--index.mdwn7
-rw-r--r--local.css3
-rw-r--r--markdown.mdwn13
-rw-r--r--openid.mdwn32
-rw-r--r--pagespec.mdwn73
-rw-r--r--preprocessordirective.mdwn33
-rw-r--r--sandbox.mdwn32
-rw-r--r--shortcuts.mdwn71
-rw-r--r--style.css299
-rw-r--r--subpage.mdwn11
-rw-r--r--subpage/linkingrules.mdwn32
-rw-r--r--templates.mdwn77
-rw-r--r--templates/note.mdwn11
-rw-r--r--templates/popup.mdwn16
-rw-r--r--wikiicons/diff.pngbin0 -> 219 bytes
-rw-r--r--wikiicons/openidlogin-bg.gifbin0 -> 142 bytes
-rw-r--r--wikilink.mdwn27
20 files changed, 926 insertions, 0 deletions
diff --git a/blog.mdwn b/blog.mdwn
new file mode 100644
index 0000000..2792a35
--- /dev/null
+++ b/blog.mdwn
@@ -0,0 +1,95 @@
+[[if test="enabled(inline)"
+ then="This wiki has the inline plugin **enabled**."
+ else="This wiki has the inline plugin **disabled**."]]
+
+[[if test="enabled(inline)"
+ then="You can"
+ else="If this wiki had the inline plugin enabled, you could"]]
+turn any page on this wiki into a weblog by using the `inline`
+[[PreProcessorDirective]]. For example:
+
+ \[[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)"]]
+
+## usage
+
+Here are descriptions of all the supported parameters to the `inline`
+directive:
+
+* `pages` - A [[PageSpec]] of the pages to inline.
+* `show` - Specify the maximum number of matching pages to inline.
+ Default is 10, unless archiving, when the default is to show all.
+ Set to 0 to show all matching pages.
+* `skip` - Specify a number of pages to skip displaying. Can be useful
+ to produce a feed that only shows archived pages.
+* `rss` - controls generation of an rss feed. On by default if the wiki is
+ configured to use rss feeds, set to "no" to disable.
+* `atom` - controls generation of an atom feed. On by default if the wiki is
+ configured to use atom feeds, set to "no" to disable.
+* `feeds` - controls generation of all types of feeds. Set to "no" to
+ disable generating any feeds.
+* `postform` - Set to "yes" to enables a form to post new pages to a [[blog]].
+* `postformtext` - Set to specify text that is displayed in a postform.
+* `rootpage` - Also enables a form to post new pages to a [[blog]], and
+ allows specifying of a page that is used as the parent page for new pages.
+* `archive` - If set to "yes", only list page titles and some metadata, not
+ full controls.
+* `quick` - Build archives in quick mode, without reading page contents for
+ metadata. By default, this also turns off generation of any feeds.
+* `template` - Specifies the template to fill out to display each inlined
+ page. By default the `inlinepage` template is used, while
+ the `archivepage` template is used for archives. Set this parameter to
+ use some other, custom template, such as the `titlepage` template that
+ only shows post titles. Note that you should still set `archive=yes` if
+ your custom template does not include the page content.
+* `raw` - Rather than the default behavior of creating a [[blog]],
+ if raw is set to "yes", the page will be included raw, without additional
+ markup around it, as if it were a literal part of the source of the
+ inlining page.
+* `description` - Sets the description of the rss feed if one is generated.
+ Defaults to the name of the wiki.
+* `actions` - If set to "yes" add links to the bottom of the inlined pages
+ for editing and discussion (if they would be shown at the top of the page
+ itself).
+* `sort` - Controls how inlined pages are sorted. The default, "age" is to
+ sort newest created pages first. Setting it to "title" will sort pages by
+ title, and "mtime" sorts most recently modified pages first.
+* `reverse` - If set to "yes", causes the sort order to be reversed.
+* `feedpages` - A [[PageSpec]] of inlined pages to include in the rss/atom
+ feeds. The default is the same as the `pages` value above, and only pages
+ matches by that value are included, but some of those can be excluded by
+ specifying a tighter [[PageSpec]] here.
+* `feedshow` - Specify the maximum number of matching pages to include in
+ the rss/atom feeds. The default is the same as the `show` value above,
+* `feedonly` - Only generate the feed, do not display the pages inline on
+ the page.
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..b55eba2
--- /dev/null
+++ b/favicon.ico
Binary files differ
diff --git a/helponformatting.mdwn b/helponformatting.mdwn
new file mode 100644
index 0000000..4e8760c
--- /dev/null
+++ b/helponformatting.mdwn
@@ -0,0 +1,94 @@
+[[meta title="Help on formatting wiki pages"]]
+
+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
+
+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 an url or email address, you can just put the
+url in angle brackets: <<http://ikiwiki.info>>, or you can use the
+form \[link text\]\(url\)
+
+----
+
+In addition to basic html formatting using [[MarkDown]], this wiki lets
+you use the following additional features:
+
+* 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]].
+
+[[if test="enabled(smiley) and smileys" then="""
+* Insert [[smileys]] and some other useful symbols. :-)
+"""]]
+
+[[if test="enabled(shortcut) and shortcuts" then="""
+* Use [[shortcuts]] to link to common resources.
+
+ \[[wikipedia War\_of\_1812]]
+"""]]
+
+[[if test="enabled(toc)" then="""
+* Add a table of contents to a page:
+
+ \[[toc ]]
+"""]]
+
+
+[[if test="enabled(meta)" then="""
+* Change the title of a page:
+
+ \[[meta title="full page title"]]
+"""]]
+
+[[if test="enabled(inline) and blog" then="""
+* Create a [[blog]] by inlining a set of pages:
+
+ \[[inline pages="blog/*"]]
+"""]]
+
+[[if test="enabled(template) and templates" then="""
+* Create and fill out [[templates]] for repeated chunks of
+ parameterized wiki text.
+"""]]
diff --git a/index.mdwn b/index.mdwn
new file mode 100644
index 0000000..05834e0
--- /dev/null
+++ b/index.mdwn
@@ -0,0 +1,7 @@
+Welcome to your new wiki.
+
+All wikis are supposed to have a [[SandBox]], so this one does too.
+
+----
+
+This wiki is powered by [ikiwiki](http://ikiwiki.info/).
diff --git a/local.css b/local.css
new file mode 100644
index 0000000..a0dec8c
--- /dev/null
+++ b/local.css
@@ -0,0 +1,3 @@
+/* ikiwiki local style sheet */
+
+/* Add local styling here, instead of modifying style.css. */
diff --git a/markdown.mdwn b/markdown.mdwn
new file mode 100644
index 0000000..e7823bb
--- /dev/null
+++ b/markdown.mdwn
@@ -0,0 +1,13 @@
+[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). A
+[markdown mode](http://jrblevin.freeshell.org/software/markdown-mode/) for
+emacs can help in editing.
+
+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/openid.mdwn b/openid.mdwn
new file mode 100644
index 0000000..f02a0a6
--- /dev/null
+++ b/openid.mdwn
@@ -0,0 +1,32 @@
+[[meta title="OpenID"]]
+
+[[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](http://openiddirectory.com/index.php?dir=1)..
+
+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 openid="http://yourid.myopenid.com/"
+ server="http://www.myopenid.com/server"]]
diff --git a/pagespec.mdwn b/pagespec.mdwn
new file mode 100644
index 0000000..e004de4
--- /dev/null
+++ b/pagespec.mdwn
@@ -0,0 +1,73 @@
+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 (or glob)
+* "`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
+* "`user(name)`" - only available in page subscription preferences, match
+ only changes made by this user
+
+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/preprocessordirective.mdwn b/preprocessordirective.mdwn
new file mode 100644
index 0000000..1e2332c
--- /dev/null
+++ b/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/sandbox.mdwn b/sandbox.mdwn
new file mode 100644
index 0000000..c93c8f3
--- /dev/null
+++ b/sandbox.mdwn
@@ -0,0 +1,32 @@
+This is the SandBox, a page anyone can edit to learn how to use the wiki.
+
+----
+
+Here's a paragraph.
+
+Here's another one with *emphasised* text.
+
+# Header
+
+## Subheader
+
+> This is a blockquote.
+>
+> This is the first level of quoting.
+>
+> > This is nested blockquote.
+>
+> Back to the first level.
+
+Numbered list
+
+1. First item.
+1. Another.
+1. And another..
+
+Bulleted list
+
+* *item*
+* item
+
+[[WikiLink]]
diff --git a/shortcuts.mdwn b/shortcuts.mdwn
new file mode 100644
index 0000000..7884084
--- /dev/null
+++ b/shortcuts.mdwn
@@ -0,0 +1,71 @@
+[[if test="enabled(shortcut)"
+ then="This wiki has shortcuts **enabled**."
+ else="This wiki has shortcuts **disabled**."]]
+
+Some examples of using shortcuts include:
+
+ \[[google foo]]
+ \[[wikipedia War_of_1812]]
+ \[[debbug 12345]]
+
+This page controls what shortcut links the wiki supports.
+
+* [[shortcut name=google url="http://www.google.com/search?q=%s"]]
+* [[shortcut name=archive url="http://web.archive.org/*/%s"]]
+* [[shortcut name=gmap url="http://maps.google.com/maps?q=%s"]]
+* [[shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
+* [[shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
+* [[shortcut name=wikitravel url="http://wikitravel.org/en/%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=debmsg url="http://lists.debian.org/msgid-search/%s"]]
+* [[shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
+* [[shortcut name=debss url="http://snapshot.debian.net/package/%s"]]
+ * Usage: `\[[debss package]]`, `\[[debss package#version]]`, or `\[[debss package/version]]`. See http://snapshot.debian.net for details.
+* [[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=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
+* [[shortcut name=linuxbug url="http://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
+* [[shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
+* [[shortcut name=gnulist url="http://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
+* [[shortcut name=marcmsg url="http://marc.info/?i=%s"]]
+* [[shortcut name=marclist url="http://marc.info/?l=%s"]]
+* [[shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
+* [[shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
+* [[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=hoogle url="http://haskell.org/hoogle/?q=%s"]]
+* [[shortcut name=iki url="http://ikiwiki.info/%s/"]]
+* [[shortcut name=ikirev url="http://ikiwiki.info/cgi-bin/viewvc.cgi?view=rev&root=ikiwiki&revision=%s"]]
+* [[shortcut name=ljuser url="http://%s.livejournal.com/"]]
+* [[shortcut name=rfc url="http://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
+* [[shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
+* [[shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
+* [[shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
+* [[shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
+* [[shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s"]]
+* [[shortcut name=imdb url="http://imdb.com/find?q=%s"]]
+* [[shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
+* [[shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
+* [[shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
+* [[shortcut name=cve url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
+* [[shortcut name=cia url="http://cia.vc/stats/project/%s"]]
+* [[shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
+* [[shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
+* [[shortcut name=zooomr url="http://www.zooomr.com/photos/%s"]]
+ * Note: You have to include the username and number in here, such as `bob/123455`.
+
+To add a new shortcut, use the `shortcut` [[PreprocessorDirective]]. "%s" is
+replaced with the text passed to the named shortcut. The optional `desc`
+parameter controls the description of the link.
+
+Remember that the `name` you give the shortcut will become a new
+[[PreprocessorDirective]]. Avoid using a `name` that conflicts with an
+existing directive.
+
+If you come up with a shortcut that you think others might find useful,
+consider contributing it to the [[iki shortcuts]] page on the ikiwiki
+ikiwiki, so that future versions of ikiwiki will include your shortcut
+in the standard underlay.
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..0fa15d2
--- /dev/null
+++ b/style.css
@@ -0,0 +1,299 @@
+/* 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;
+}
+
+.tags {
+ clear: both;
+}
+
+#pageinfo {
+ clear: both;
+ margin: 1em 0;
+ border-top: 1px solid #000;
+}
+
+div.tags {
+ margin-top: 1em;
+}
+
+.mapparent {
+ text-decoration: none;
+}
+
+#backlinks {
+ margin-top: 1em;
+}
+
+#searchform {
+ display: inline;
+ float: right;
+}
+
+#editcontent {
+ width: 100%;
+}
+
+img {
+ border-style: none;
+}
+
+/* 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;
+}
+
+/* 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;
+}
+
+.pagedate,
+.pagelicense,
+.pagecopyright {
+ clear: both;
+ font-style: italic;
+ display: block;
+ margin-top: 1em;
+}
+
+/* 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;
+ padding: 10px 10px;
+ border: 1px solid #aaa;
+ background: #eee;
+ color: black !important;
+}
+.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;
+}
+
+/* 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(wikiicons/openidlogin-bg.gif) no-repeat;
+ background-color: #fff;
+ background-position: 0 50%;
+ color: #000;
+ padding-left: 18px;
+}
+
+/* Things to hide in printouts. */
+@media print {
+ .actions { display: none; }
+ .tags { display: none; }
+ .feedbutton { display: none; }
+ #searchform { display: none; }
+ #blogform { display: none; }
+ #backlinks { display: none; }
+}
+
+/* Provided for use by template plugin for floating info boxes. */
+.infobox {
+ float: right;
+ margin-left: 2ex;
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ padding: 1ex 1ex;
+ border: 1px solid #aaa;
+}
+
+/* Provided for use by template plugin for floating note boxes. */
+.notebox {
+ float: right;
+ margin-left: 2ex;
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+ padding: 1ex 1ex;
+ border: 1px solid #aaa;
+ width: 25%
+}
+
+/* Used by the popup template and for backlinks hiding. */
+.popup {
+ border-bottom: 1px dotted #366;
+ color: #366;
+}
+.popup .balloon,
+.popup .paren,
+.popup .expand {
+ display: none;
+}
+.popup:hover .balloon,
+.popup:focus .balloon {
+ position: absolute;
+ display: inline;
+ margin: 1em 0 0 -2em;
+ padding: 0.625em;
+ border: 2px solid;
+ background-color: #dee;
+ color: black;
+
+ /* Nonstandard, but very nice. */
+ opacity: 0.95;
+ -moz-opacity: 0.95;
+ filter: alpha(opacity=95);
+}
+
+/* Formbuilder styling */
+fieldset {
+ margin: 1ex 0;
+ border: 1px solid black;
+}
+legend {
+ padding: 0 1ex;
+}
+.fb_submit {
+ float: left;
+ margin: 2px 0;
+}
+#signin_openid_url_label {
+ float: left;
+ margin-right: 1ex;
+}
+#signin_openid {
+ padding: 10px 10px;
+ border: 1px solid #aaa;
+ background: #eee;
+ color: black !important;
+}
diff --git a/subpage.mdwn b/subpage.mdwn
new file mode 100644
index 0000000..4366920
--- /dev/null
+++ b/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/subpage/linkingrules.mdwn b/subpage/linkingrules.mdwn
new file mode 100644
index 0000000..c106230
--- /dev/null
+++ b/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/templates.mdwn b/templates.mdwn
new file mode 100644
index 0000000..33e02b9
--- /dev/null
+++ b/templates.mdwn
@@ -0,0 +1,77 @@
+[[if test="enabled(template)"
+then="This wiki has templates **enabled**."
+else="This wiki has templates **disabled**."
+]]
+
+Templates are files that can be filled out and inserted into pages in the
+wiki.
+
+[[if test="enabled(template) and enabled(inline)" then="""
+
+## Available templates
+
+These templates are available for inclusion onto other pages in this
+wiki:
+
+[[inline pages="templates/* and !*/discussion" feeds=no archive=yes
+sort=title template=titlepage]]
+"""]]
+
+## Using a template
+
+Using a template works like this:
+
+ \[[template id=note text="""Here is the text to insert into my note."""]]
+
+This fills out the [[note]] template, filling in the `text` field with
+the specified value, and inserts the result into the page.
+
+A value can include any markup that would be allowed in the wiki page
+outside the template. Triple-quoting the value even allows quotes to be
+included in it. Combined with multi-line quoted values, this allows for
+large chunks of marked up text to be embedded into a template:
+
+ \[[template id=foo name="Sally" color="green" age=8 notes="""
+ * \[[Charley]]'s sister.
+ * "I want to be an astronaut when I grow up."
+ * Really 8 and a half.
+ """]]
+
+## Creating a template
+
+To create a template, simply add a template directive to a page, and page will
+provide a link that can be used to create the template. The template is a
+regular wiki page, located in the `templates/` directory.
+
+The template uses the syntax used by the
+[cpan HTML::Template](http://search.cpan.org/search?mode=dist&query=HTML::Template)
+perl module, which allows for some fairly complex things to be done.
+Consult its documentation for the full syntax, but all you really need to know
+are a few things:
+
+* To insert the value of a variable, use `<TMPL_VAR variable>`.
+* To make a block of text conditional on a variable being set use
+ `<TMPL_IF NAME="variable">text</TMPL_IF>`.
+* To use one block of text if a variable is set and a second if it's not,
+ use `<TMPL_IF NAME="variable">text<TMPL_ELSE>other text</TMPL_IF>`
+
+Here's a sample template:
+
+ <span class="infobox">
+ Name: <TMPL_VAR name><br />
+ Age: <TMPL_VAR age><br />
+ <TMPL_IF NAME="color">
+ Favorite color: <TMPL_VAR color><br />
+ <TMPL_ELSE>
+ No favorite color.<br />
+ </TMPL_IF>
+ <TMPL_IF NAME="notes">
+ <hr />
+ <TMPL_VAR notes>
+ </TMPL_IF>
+ </span>
+
+The filled out template will be formatted the same as the rest of the page
+that contains it, so you can include WikiLinks and all other forms of wiki
+markup in the template. Note though that such WikiLinks will not show up as
+backlinks to the page that uses the template.
diff --git a/templates/note.mdwn b/templates/note.mdwn
new file mode 100644
index 0000000..d992e02
--- /dev/null
+++ b/templates/note.mdwn
@@ -0,0 +1,11 @@
+<span class="notebox">
+<TMPL_VAR text>
+</span>
+<TMPL_UNLESS NAME="text">
+Use this template to insert a note into a page. The note will be styled to
+float to the right of other text on the page. This template has one
+parameter:
+<ul>
+<li>`text` - the text to display in the note
+</ul>
+</TMPL_UNLESS>
diff --git a/templates/popup.mdwn b/templates/popup.mdwn
new file mode 100644
index 0000000..b355daa
--- /dev/null
+++ b/templates/popup.mdwn
@@ -0,0 +1,16 @@
+<TMPL_UNLESS NAME="mouseover">
+Use this template to create a popup window that is displayed when the mouse
+is over part of the page. This template has two parameters:
+<ul>
+<li>`mouseover` - This is the text or other content that triggers the
+popup.
+<li>`popup` - This should be the content of the popup window. It can be
+anything, even images or a whole little wiki page, but should not be too
+large for good usability.
+</ul>
+Note that browsers that do not support the CSS will display the popup
+inline in the page, inside square brackets.
+</TMPL_UNLESS>
+<span class="popup"><TMPL_VAR mouseover>
+<span class="paren">[</span><span class="balloon"><TMPL_VAR popup></span><span class="paren">]</span>
+</span>
diff --git a/wikiicons/diff.png b/wikiicons/diff.png
new file mode 100644
index 0000000..0b98d79
--- /dev/null
+++ b/wikiicons/diff.png
Binary files differ
diff --git a/wikiicons/openidlogin-bg.gif b/wikiicons/openidlogin-bg.gif
new file mode 100644
index 0000000..c8f43d0
--- /dev/null
+++ b/wikiicons/openidlogin-bg.gif
Binary files differ
diff --git a/wikilink.mdwn b/wikilink.mdwn
new file mode 100644
index 0000000..38df00f
--- /dev/null
+++ b/wikilink.mdwn
@@ -0,0 +1,27 @@
+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]].
+
+To link to an anchor inside a page, you can use something like
+`\[[WikiLink#foo]]`
+
+**Note that you cannot use spaces in WikiLinks**. Replace spaces with
+underscores. The presence of spaces is used to distinguish between a
+[[PreprocessorDirective]] and a WikiLink.