Copy in all content from the default basewiki
authorCarl Worth <cworth@olra.theworths.org>
Tue, 2 Feb 2010 00:16:28 +0000 (16:16 -0800)
committerCarl Worth <cworth@olra.theworths.org>
Tue, 2 Feb 2010 00:16:28 +0000 (16:16 -0800)
It seems much more straightforward to me to just edit
actual files rather than depending on some mystic files
outside of revision control.

26 files changed:
favicon.ico [new file with mode: 0644]
ikiwiki.mdwn [new file with mode: 0644]
ikiwiki/directive.mdwn [new file with mode: 0644]
ikiwiki/formatting.mdwn [new file with mode: 0644]
ikiwiki/markdown.mdwn [new file with mode: 0644]
ikiwiki/openid.mdwn [new file with mode: 0644]
ikiwiki/pagespec.mdwn [new file with mode: 0644]
ikiwiki/pagespec/attachment.mdwn [new file with mode: 0644]
ikiwiki/pagespec/po.mdwn [new file with mode: 0644]
ikiwiki/pagespec/sorting.mdwn [new file with mode: 0644]
ikiwiki/searching.mdwn [new file with mode: 0644]
ikiwiki/subpage.mdwn [new file with mode: 0644]
ikiwiki/subpage/linkingrules.mdwn [new file with mode: 0644]
ikiwiki/wikilink.mdwn [new file with mode: 0644]
index.mdwn [new file with mode: 0644]
local.css [new file with mode: 0644]
recentchanges.mdwn [new file with mode: 0644]
sandbox.mdwn [new file with mode: 0644]
shortcuts.mdwn [new file with mode: 0644]
style.css [new file with mode: 0644]
templates.mdwn [new file with mode: 0644]
templates/note.mdwn [new file with mode: 0644]
templates/popup.mdwn [new file with mode: 0644]
wikiicons/diff.png [new file with mode: 0644]
wikiicons/openidlogin-bg.gif [new file with mode: 0644]
wikiicons/search-bg.gif [new file with mode: 0644]

diff --git a/favicon.ico b/favicon.ico
new file mode 100644 (file)
index 0000000..b55eba2
Binary files /dev/null and b/favicon.ico differ
diff --git a/ikiwiki.mdwn b/ikiwiki.mdwn
new file mode 100644 (file)
index 0000000..e0a971d
--- /dev/null
@@ -0,0 +1,16 @@
+[[!meta robots="noindex, follow"]]
+This wiki is powered by [ikiwiki](http://ikiwiki.info/).
+[[!if test="enabled(version)"
+     then="(Currently running version [[!version ]].)"
+]]
+
+Some documentation on using ikiwiki:
+
+* [[ikiwiki/formatting]]
+* [[ikiwiki/wikilink]]
+* [[ikiwiki/subpage]]
+* [[ikiwiki/pagespec]]
+* [[ikiwiki/directive]]
+* [[ikiwiki/markdown]]
+* [[ikiwiki/openid]]
+* [[ikiwiki/searching]]
diff --git a/ikiwiki/directive.mdwn b/ikiwiki/directive.mdwn
new file mode 100644 (file)
index 0000000..fb88aa7
--- /dev/null
@@ -0,0 +1,43 @@
+[[!meta robots="noindex, follow"]]
+Directives are similar to a [[ikiwiki/WikiLink]] in form, except they
+begin with `!` and may contain 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]]
+
+A directive does not need to all be on one line, it can be
+wrapped to multiple lines if you like:
+       
+       \[[!directive foo="baldersnatch"
+       bar="supercalifragilisticexpialidocious" 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"
+       """]]
+
+ikiwiki also has an older syntax for directives, which requires a space in
+directives to distinguish them from [[wikilinks|ikiwiki/wikilink]]. This
+syntax has several disadvantages: it requires a space after directives with
+no parameters (such as `\[[pagecount ]]`), and it prohibits spaces in
+[[wikilinks|ikiwiki/wikilink]].  ikiwiki now provides the `!`-prefixed
+syntax shown above as default.  However, ikiwiki still supports wikis using
+the older syntax, if the `prefix_directives` option is disabled.
+
+[[!if test="enabled(listdirectives)" then="""
+Here is a list of currently available directives in this wiki:
+
+[[!listdirectives ]]
+"""]]
diff --git a/ikiwiki/formatting.mdwn b/ikiwiki/formatting.mdwn
new file mode 100644 (file)
index 0000000..befbce9
--- /dev/null
@@ -0,0 +1,106 @@
+[[!meta title="Formatting wiki pages"]]
+[[!meta robots="noindex, follow"]]
+
+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(template) and templates" then="""
+* Create and fill out [[templates]] for repeated chunks of
+  parameterized wiki text.
+"""]]
+
+* Insert various [[directives|directive]] onto a page to perform useful
+  actions.
+[[!if test="enabled(toc) or enabled(meta) or enabled(inline)" then="""
+  For example, you can:
+"""]]
+
+[[!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)" then="""
+  * Create a blog by inlining a set of pages:
+
+       \[[!inline pages="blog/*"]]
+"""]]
+
+[[!if test="enabled(listdirectives)" then="""
+  Full list of [[directives|directive]] enabled for this wiki:
+  [[!listdirectives ]]
+"""]]
diff --git a/ikiwiki/markdown.mdwn b/ikiwiki/markdown.mdwn
new file mode 100644 (file)
index 0000000..6841919
--- /dev/null
@@ -0,0 +1,11 @@
+[[!meta robots="noindex, follow"]]
+[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 [[formatting]] and
+[Markdown: syntax](http://daringfireball.net/projects/markdown/syntax).
+
+Note that [[WikiLinks|WikiLink]] and [[directives|directive]] are not part
+of the markdown syntax, and are the only bit of markup that this wiki
+handles internally.
diff --git a/ikiwiki/openid.mdwn b/ikiwiki/openid.mdwn
new file mode 100644 (file)
index 0000000..3189281
--- /dev/null
@@ -0,0 +1,33 @@
+[[!meta title="OpenID"]]
+[[!meta robots="noindex, follow"]]
+
+[[!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/)
+* [LiveJournal](http://www.livejournal.com/openid/)
+* [TrustBearer](https://openid.trustbearer.com/)
+* or any of the [many others out there](http://openiddirectory.com/openid-providers-c-1.html)
+
+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/ikiwiki/pagespec.mdwn b/ikiwiki/pagespec.mdwn
new file mode 100644 (file)
index 0000000..5f0f44e
--- /dev/null
@@ -0,0 +1,76 @@
+[[!meta robots="noindex, follow"]]
+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 these functions:
+
+* "`link(page)`" - matches only pages that link to a given page (or glob)
+* "`tagged(tag)`" - matches pages that are tagged or link to the given tag (or
+  tags matched by a glob)
+* "`backlink(page)`" - matches only pages that a given page links to
+* "`creation_month(month)`" - matches only pages created on the given month
+* "`creation_day(mday)`" - or day of the month
+* "`creation_year(year)`" - or year
+* "`created_after(page)`" - matches only pages created after the given page
+  was created
+* "`created_before(page)`" - matches only pages created before the given page
+  was created
+* "`glob(someglob)`" - matches pages that match the given glob. Just writing
+  the glob by itself is actually a shorthand for this function.
+* "`internal(glob)`" - like `glob()`, but matches even internal-use 
+  pages that globs do not usually match.
+* "`title(glob)`", "`author(glob)`", "`authorurl(glob)`",
+  "`license(glob)`", "`copyright(glob)`" - match pages that have the given
+  metadata, matching the specified glob.
+* "`user(username)`" - tests whether a modification is being made by a
+  user with the specified username. If openid is enabled, an openid can also
+  be put here.
+* "`admin()`" - tests whether a modification is being made by one of the
+  wiki admins.
+* "`ip(address)`" - tests whether a modification is being made from the
+  specified IP address.
+* "`postcomment(glob)`" - matches only when comments are being 
+  posted to a page matching the specified glob
+
+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)
+
+Note the use of "and" in the above example, that means that only pages that
+match each of the three expressions match the whole. Use "and" when you
+want to combine expression like that; "or" when it's enough for a page to
+match one expression. Note that it doesn't make sense to say "index and
+SandBox", since no page can match both expressions.
+
+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 (tagged(foo) or tagged(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".
diff --git a/ikiwiki/pagespec/attachment.mdwn b/ikiwiki/pagespec/attachment.mdwn
new file mode 100644 (file)
index 0000000..419f00e
--- /dev/null
@@ -0,0 +1,37 @@
+[[!meta robots="noindex, follow"]]
+[[!if test="enabled(attachment)"
+     then="This wiki has attachments **enabled**."
+     else="This wiki has attachments **disabled**."]]
+
+If attachments are enabled, the wiki admin can control what types of
+attachments will be accepted, via the `allowed_attachments`
+configuration setting.
+
+For example, to limit arbitrary files to 50 kilobytes, but allow
+larger mp3 files to be uploaded by joey into a specific directory, and
+check all attachments for viruses, something like this could be used:
+  
+       virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb)))
+
+The regular [[ikiwiki/PageSpec]] syntax is expanded with the following
+additional tests:
+
+* "`maxsize(size)`" - tests whether the attachment is no larger than the
+  specified size. The size defaults to being in bytes, but "kb", "mb", "gb"
+  etc can be used to specify the units.
+  
+* "`minsize(size)`" - tests whether the attachment is no smaller than the
+  specified size.
+
+* "`ispage()`" - tests whether the attachment will be treated by ikiwiki as a
+  wiki page. (Ie, if it has an extension of ".mdwn", or of any other enabled
+  page format).
+
+  So, if you don't want to allow wiki pages to be uploaded as attachments,
+  use `!ispage()` ; if you only want to allow wiki pages to be uploaded
+  as attachments, use `ispage()`.
+
+* "`mimetype(foo/bar)`" - checks the MIME type of the attachment. You can
+  include a glob in the type, for example `mimetype(image/*)`.
+
+* "`virusfree()`" - checks the attachment with an antiviral program.
diff --git a/ikiwiki/pagespec/po.mdwn b/ikiwiki/pagespec/po.mdwn
new file mode 100644 (file)
index 0000000..e0264dd
--- /dev/null
@@ -0,0 +1,16 @@
+[[!if test="enabled(po)"
+     then="This wiki has po support **enabled**."
+     else="This wiki has po support **disabled**."]]
+
+If the [[!iki plugins/po desc=po]] plugin is enabled, the regular
+[[ikiwiki/PageSpec]] syntax is expanded with the following additional
+tests that can be used to improve user navigation in a multi-lingual
+wiki:
+
+* "`lang(LL)`" - tests whether a page is written in the language
+  specified as a ISO639-1 (two-letter) language code.
+* "`currentlang()`" - tests whether a page is written in the same
+  language as the current page.
+
+Note that every non-po page is considered to be written in
+`po_master_language`, as specified in `ikiwiki.setup`.
diff --git a/ikiwiki/pagespec/sorting.mdwn b/ikiwiki/pagespec/sorting.mdwn
new file mode 100644 (file)
index 0000000..41aa581
--- /dev/null
@@ -0,0 +1,11 @@
+Some [[directives|ikiwiki/directive]] that use
+[[PageSpecs|ikiwiki/pagespec]] allow
+specifying the order that matching pages are shown in. The following sort
+orders can be specified.
+
+* `age` - List pages from the most recently created to the oldest.
+* `mtime` - List pages with the most recently modified first.
+* `title` - Order by title.
+* `title_natural` - Only available if [[!cpan Sort::Naturally]] is
+  installed. Orders by title, but numbers in the title are treated
+  as such, ("1 2 9 10 20" instead of "1 10 2 20 9")
diff --git a/ikiwiki/searching.mdwn b/ikiwiki/searching.mdwn
new file mode 100644 (file)
index 0000000..4c12879
--- /dev/null
@@ -0,0 +1,20 @@
+[[!meta robots="noindex, follow"]]
+
+[[!if test="enabled(search)"
+then="This wiki has searching **enabled**."
+else="This wiki has searching **disabled**."]]
+
+If searching is enabled, you can enter search terms in the search field,
+as you'd expect. There are a few special things you can do to construct
+more powerful searches.
+
+* To match a phrase, enclose it in double quotes.
+* `AND` can be used to search for documents containing two expressions.
+* `OR` can be used to search for documents containing either one of
+  two expressions.
+* Parentheses can be used to build up complicated search expressions. For
+  example, "(foo AND bar) OR (me AND you)"
+* Prefix a search term with "-" to avoid it from appearing in the results.
+  For example, "-discussion" will omit "discussion".
+* To search for a page with a given title, use "title:foo".
+* To search for pages that contain a "bar" link, use "link:bar".
diff --git a/ikiwiki/subpage.mdwn b/ikiwiki/subpage.mdwn
new file mode 100644 (file)
index 0000000..e047b86
--- /dev/null
@@ -0,0 +1,12 @@
+[[!meta robots="noindex, follow"]]
+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/ikiwiki/subpage/linkingrules.mdwn b/ikiwiki/subpage/linkingrules.mdwn
new file mode 100644 (file)
index 0000000..e547f30
--- /dev/null
@@ -0,0 +1,33 @@
+[[!meta robots="noindex, follow"]]
+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/ikiwiki/wikilink.mdwn b/ikiwiki/wikilink.mdwn
new file mode 100644 (file)
index 0000000..f561d58
--- /dev/null
@@ -0,0 +1,36 @@
+[[!meta robots="noindex, follow"]]
+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]]` .
+
+## Directives and WikiLinks
+
+ikiwiki has two syntaxes for
+[[directives|directive]].  The older syntax
+used spaces to distinguish between directives and
+wikilinks; as a result, with that syntax in use, you cannot use spaces
+in WikiLinks, and must replace spaces with underscores.  The newer
+syntax, enabled with the `prefix_directives` option in an ikiwiki
+setup file, prefixes directives with `!`, and thus does not prevent
+links with spaces.  Future versions of ikiwiki will turn this option
+on by default.
diff --git a/index.mdwn b/index.mdwn
new file mode 100644 (file)
index 0000000..4187c11
--- /dev/null
@@ -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]].
diff --git a/local.css b/local.css
new file mode 100644 (file)
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/recentchanges.mdwn b/recentchanges.mdwn
new file mode 100644 (file)
index 0000000..3383fc7
--- /dev/null
@@ -0,0 +1,7 @@
+[[!if test="enabled(meta)" then="""
+[[!meta title="RecentChanges"]]
+"""]]
+Recent changes to this wiki:
+
+[[!inline pages="internal(recentchanges/change_*) and !*/Discussion" 
+template=recentchanges show=0]]
diff --git a/sandbox.mdwn b/sandbox.mdwn
new file mode 100644 (file)
index 0000000..c66534f
--- /dev/null
@@ -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
+
+[[ikiwiki/WikiLink]]
diff --git a/shortcuts.mdwn b/shortcuts.mdwn
new file mode 100644 (file)
index 0000000..54dd0fd
--- /dev/null
@@ -0,0 +1,79 @@
+[[!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]]
+       Check the \[[!cia ikiwiki desc="CIA page for %s"]].
+
+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=wiktionary url="http://en.wiktionary.org/wiki/%s"]]
+* [[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian 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=debpkgsid url="http://packages.debian.org/sid/%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=debwiki url="http://wiki.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=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=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=man url="http://linux.die.net/man/%s"]]
+* [[!shortcut name=ohloh url="http://www.ohloh.net/projects/%s"]]
+* [[!shortcut name=cpanrt url="https://rt.cpan.org/Ticket/Display.html?id=%s" desc="CPAN RT#%s"]]
+* [[!shortcut name=novellbug url="https://bugzilla.novell.com/show_bug.cgi?id=%s" desc="bug %s"]]
+
+To add a new shortcut, use the `shortcut`
+[[ikiwiki/directive]]. In the url, "%s" is replaced with the
+text passed to the named shortcut, after [[!wikipedia url_encoding]]
+it, and '%S' is replaced with the raw, non-encoded text. The optional
+`desc` parameter controls the description of the link.
+
+Remember that the `name` you give the shortcut will become a new
+[[ikiwiki/directive]].  Avoid using a `name` that conflicts
+with an existing directive.  These directives also accept a `desc`
+parameter that will override the one provided at definition time.
+
+If you come up with a shortcut that you think others might find useful,
+consider contributing it to the [shortcuts page on the ikiwiki
+wiki](http://ikiwiki.info/shortcuts/), 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 (file)
index 0000000..be86a08
--- /dev/null
+++ b/style.css
@@ -0,0 +1,424 @@
+/* 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;
+}
+
+.inlineheader .author {
+       margin: 0;
+       font-size: 18px;
+       font-weight: bold;
+       display: block;
+}
+
+.actions ul {
+       margin: 0;
+       padding: 6px;
+       list-style-type: none;
+}
+.actions li {
+       display: inline;
+       padding: .2em .4em;
+}
+.pageheader .actions ul {
+       border-bottom: 1px solid #000;
+}
+
+.inlinepage .actions ul {
+       border-bottom: 0;
+}
+
+#otherlanguages ul {
+       margin: 0;
+       padding: 6px;
+       list-style-type: none;
+}
+#otherlanguages li {
+       display: inline;
+       padding: .2em .4em;
+}
+.pageheader #otherlanguages {
+       border-bottom: 1px solid #000;
+}
+
+div.inlinecontent {
+       margin-top: .4em;
+}
+
+.pagefooter {
+       clear: both;
+}
+.inlinefooter {
+       clear: both;
+}
+
+.tags {
+}
+
+#pageinfo {
+       margin: 1em 0;
+       border-top: 1px solid #000;
+}
+
+div.tags {
+       margin-top: 1em;
+}
+
+.mapparent {
+       text-decoration: none;
+}
+
+.img caption {
+       font-size: 80%;
+       caption-side: bottom;
+       text-align: center;
+}
+
+#backlinks {
+       margin-top: 1em;
+}
+
+#searchform {
+       display: inline;
+       float: right;
+}
+
+#editcontent {
+       width: 100%;
+}
+
+img {
+       border-style: none;
+}
+
+div.recentchanges {
+       border-style: solid;
+       border-width: 1px;
+       overflow: auto;
+       clear: both;
+       width: 100%;
+       background: #eee;
+       color: black !important;
+}
+.recentchanges .metadata {
+       padding: 0px 0.5em;
+}
+.recentchanges .changelog {
+       font-style: italic;
+       clear: both;
+       display: block;
+       padding: 1px 2px;
+       background: white !important;
+       color: black !important;
+}
+.recentchanges .desc {
+       display: none;
+}
+.recentchanges .diff {
+       display: none;
+}
+.recentchanges .committer {
+       float: left;
+       margin: 0;
+       width: 40%;
+}
+.recentchanges .committype {
+       float: left;
+       margin: 0;
+       width: 5%;
+       font-size: small;
+}
+.recentchanges .changedate {
+       float: left;
+       margin: 0;
+       width: 35%;
+       font-size: small;
+}
+.recentchanges .pagelinks {
+       float: right;
+       margin: 0;
+       width: 60%;
+}
+
+/* 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 {
+       font-style: italic;
+       display: block;
+       margin-top: 1em;
+}
+
+.error {
+       color: #C00;
+}
+
+/* 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;
+       background: white;
+       color: black !important;
+}
+
+/* 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;
+}
+
+div.progress {
+       margin-top: 1ex;
+       margin-bottom: 1ex;
+       border: 1px solid #888;
+       width: 400px;
+       background: #eee;
+       color: black !important;
+       padding: 1px;
+}
+div.progress-done {
+       background: #ea6 !important;
+       color: black !important;
+       text-align: center;
+       padding: 1px;
+}
+
+input#openid_url {
+       background: url(wikiicons/openidlogin-bg.gif) no-repeat;
+       background-color: #fff;
+       background-position: 0 50%;
+       color: #000;
+       padding-left: 18px;
+}
+
+input#searchbox {
+       background: url(wikiicons/search-bg.gif) no-repeat;
+       background-color: #fff;
+       background-position: 100% 50%;
+       color: #000;
+       padding-right: 16px;
+}
+
+/* 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;
+       background: white;
+       color: black !important;
+}
+
+/* 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%;
+       background: white;
+       color: black !important;
+}
+
+/* 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;
+}
+
+/* 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;
+}
+
+span.color {
+       padding: 2px;
+}
+
+.comment-header,
+.microblog-header {
+       font-style: italic;
+       margin-top: .3em;
+}
+.comment .author,
+.microblog .author {
+       font-weight: bold;
+}
+.comment-subject {
+       font-weight: bold;
+}
+.comment {
+       border: 1px solid #aaa;
+       padding: 3px;
+}
+
+/* Used by the highlight plugin. */
+pre.hl { color:#000000; background-color:#ffffff; }
+.hl.num { color:#2928ff; }
+.hl.esc { color:#ff00ff; }
+.hl.str { color:#ff0000; }
+.hl.dstr { color:#818100; }
+.hl.slc { color:#838183; font-style:italic; }
+.hl.com { color:#838183; font-style:italic; }
+.hl.dir { color:#008200; }
+.hl.sym { color:#000000; }
+.hl.line { color:#555555; }
+.hl.mark { background-color:#ffffbb; }
+.hl.kwa { color:#000000; font-weight:bold; }
+.hl.kwb { color:#830000; }
+.hl.kwc { color:#000000; font-weight:bold; }
+.hl.kwd { color:#010181; }
+
+/* For the calendar plugin. */
+.month-calendar-day-this-day { background-color: #eee; }
+.year-calendar-this-month { background-color: #eee; }
diff --git a/templates.mdwn b/templates.mdwn
new file mode 100644 (file)
index 0000000..eff0e15
--- /dev/null
@@ -0,0 +1,87 @@
+[[!meta robots="noindex, follow"]]
+[[!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="""
+
+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.
+
+Generally, 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 the 
+page will provide a link that can be used to create the template. The template
+is a regular wiki page, located in the `templates/` subdirectory inside
+the source directory of the wiki.
+
+The template uses the syntax used by the [[!cpan 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:
+
+* Each parameter you pass to the template directive will generate a 
+  template variable. There are also some pre-defined variables like PAGE
+  and BASENAME.
+* To insert the value of a variable, use `<TMPL_VAR variable>`. Wiki markup
+  in the value will first be converted to html.
+* To insert the raw value of a variable, with wiki markup not yet converted
+  to html, use `<TMPL_VAR raw_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 raw_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.
+
+Note the use of "raw_name" inside the [[ikiwiki/WikiLink]] generator. This
+ensures that if the name contains something that might be mistaken for wiki
+markup, it's not converted to html before being processed as a
+[[ikiwiki/WikiLink]].
diff --git a/templates/note.mdwn b/templates/note.mdwn
new file mode 100644 (file)
index 0000000..4cc323c
--- /dev/null
@@ -0,0 +1,11 @@
+<div class="notebox">
+<TMPL_VAR text>
+</div>
+<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 (file)
index 0000000..b355daa
--- /dev/null
@@ -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 (file)
index 0000000..0b98d79
Binary files /dev/null and b/wikiicons/diff.png differ
diff --git a/wikiicons/openidlogin-bg.gif b/wikiicons/openidlogin-bg.gif
new file mode 100644 (file)
index 0000000..a3bfe10
Binary files /dev/null and b/wikiicons/openidlogin-bg.gif differ
diff --git a/wikiicons/search-bg.gif b/wikiicons/search-bg.gif
new file mode 100644 (file)
index 0000000..02f9da4
Binary files /dev/null and b/wikiicons/search-bg.gif differ