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 LinkingRules that come into play when linking between SubPages.
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.
To link to an anchor inside a page, you can use something like
[[WikiLink#foo]]
.
If the file linked to by a WikiLink looks like an image, it will be displayed inline on the page.
You can also put an url in a WikiLink, to link to an external page. Email addresses can also be used to generate a mailto link.
Ikiwiki uses many templates for many purposes. By editing its templates, you can fully customise its appearance, and avoid duplicate content.
Ikiwiki uses the HTML::Template module as its template engine. This supports things like conditionals and loops in templates and is pretty easy to learn. All you really need to know to modify templates is this:
- To insert the value of a template variable, use
<TMPL_VAR variable>
. - To make a block of text conditional on a variable being set use
<TMPL_IF 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 variable>text<TMPL_ELSE>other text</TMPL_IF>
template pages
Template pages are regular wiki pages containing a templatebody directive, used as templates for other pages. The parts of the template page outside the directive can be used to document it.
The template directive allows template pages to be filled out and inserted into other pages in the wiki.
These template pages are currently available:
If the template does not contain a templatebody
directive, the entire
source of the page is used for the template. This is deprecated.
template files
Template files are unlike template pages in that they have the extension
.tmpl
. Template files are used extensively by Ikiwiki to generate html.
They can contain html that would not normally be allowed on a wiki page.
Template files are located in /usr/share/ikiwiki/templates
by default;
the templatedir
setting can be used to make another directory be
searched first. Customised template files can also be placed inside the
"templates/" directory in your wiki's source -- files placed there override
ones in the templatedir
.
Here is a full list of the template files used:
page.tmpl
- Used for displaying all regular wiki pages. This is the key template to customise to change the look and feel of Ikiwiki.rsspage.tmpl
- Used for generating rss feeds for blogs.rssitem.tmpl
- Used for generating individual items on rss feeds.atompage.tmpl
- Used for generating atom feeds for blogs.atomitem.tmpl
- Used for generating individual items on atom feeds.inlinepage.tmpl
- Used for displaying a post in a blog.archivepage.tmpl
- Used for listing a page in a blog archive page.titlepage.tmpl
- Used for listing a page by title in a blog archive page.microblog.tmpl
- Used for showing a microblogging post inline.blogpost.tmpl
- Used for a form to add a post to a blog (and rss/atom links)feedlink.tmpl
- Used to add rss/atom links ifblogpost.tmpl
is not used.aggregatepost.tmpl
- Used by the aggregate plugin to create a page for a post.searchform.tmpl
,googleform.tmpl
- Used by the search plugin and google plugin to add search forms to wiki pages.searchquery.tmpl
- This is a Omega template, used by the search plugin.comment.tmpl
- Used by the comments plugin to display a comment.change.tmpl
- Used to create a page describing a change made to the wiki.recentchanges.tmpl
- Used for listing a change on the RecentChanges page.autoindex.tmpl
- Filled in by the autoindex plugin to make index pages.autotag.tmpl
- Filled in by the tag plugin to make tag pages.calendarmonth.tmpl
,calendaryear.tmpl
- Used by ikiwiki-calendar to make calendar archive pages.trails.tmpl
- Used by the trail plugin to generate links on each page that is a member of a trail.notifyemail.tmpl
- Used by the notifymail plugin to generate mails about changed pages.editpage.tmpl
,editconflict.tmpl
,editcreationconflict.tmpl
,editfailedsave.tmpl
,editpagegone.tmpl
,pocreatepage.tmpl
,editcomment.tmpl
commentmoderation.tmpl
,renamesummary.tmpl
,passwordmail.tmpl
,emailauth.tmpl
,login-selector.tmpl
,revert.tmpl
- Parts of ikiwiki's user interface; do not normally need to be customised.
ikiwiki supports placing pages in a directory hierarchy. For example, this page, SubPage has some related pages placed under it, like 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.
Some directives that use
PageSpecs allow
specifying the order that matching pages are shown in. The following sort
orders can be specified using the sort
parameter:
age
- List pages from the most recently created to the oldest.mtime
- List pages with the most recently modified first.title
- Order by title (page name), e.g. "z/a a/b a/c"path
- Order by page name including parents, e.g. "a/b a/c z/a"meta(title)
- Order according to the[[!meta title="foo" sortas="bar"]]
or[[!meta title="foo"]]
directive, or the page name if no full title was set.meta(author)
,meta(date)
,meta(updated)
, etc. also work.
In addition, you can combine several sort orders and/or reverse the order of
sorting, with a string like age -title
(which would sort by age, then by
title in reverse order if two pages have the same age).
This page is used to control what smileys are supported by the wiki. Just write the text of a smiley to display it.
- :)
- :-)
- :D
- :-D
- B)
- B-)
- :))
- :-))
- ;)
- ;-)
- :\
- :-\
- :/
- :-/
- :|
- :-|
- >:>
- X-(
- <:(
- :(
- :-(
- :-?
- :-P
- :o
- |)
- |-)
- {OK}
- {X}
- {i}
- (./)
- (!)
- [!]
- /!\
- (?)
- {x}
- {*}
- {o}
- {1}
- {2}
- {3}
For example:
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.
This wiki has shortcuts enabled.
Some examples of using shortcuts include:
[[!google foo]]
[[!wikipedia War_of_1812]]
[[!debbug 12345]]
Check the [[!google ikiwiki desc="google search for %s"]].
This page controls what shortcut links the wiki supports.
- shortcut google points to https://encrypted.google.com/search?q=%s
- shortcut archive points to http://web.archive.org/*/%S
- shortcut gmap points to https://maps.google.com/maps?q=%s
- shortcut gmsg points to https://groups.google.com/groups?selm=%s
- shortcut wikipedia points to https://en.wikipedia.org/wiki/%W
- shortcut wikitravel points to https://wikitravel.org/en/%s
- shortcut wiktionary points to https://en.wiktionary.org/wiki/%s
- shortcut debbug points to http://bugs.debian.org/%S
- shortcut deblist points to https://lists.debian.org/debian-%s
- shortcut debpkg points to http://packages.debian.org/%s
- shortcut debpkgsid points to http://packages.debian.org/sid/%s
- shortcut debpts points to http://packages.qa.debian.org/%s
- shortcut debmsg points to https://lists.debian.org/msgid-search/%s
- shortcut debrt points to https://rt.debian.org/Ticket/Display.html?id=%s
- shortcut debss points to http://snapshot.debian.org/package/%s/
- Usage:
[[!debss package]]
or[[!debss package/version]]
. See http://snapshot.debian.org/ for details.
- Usage:
- shortcut debwiki points to https://wiki.debian.org/%S
- shortcut debcve points to https://security-tracker.debian.org/tracker/%S
- also supports Debian bug numbers, packages and whatever the security tracker supports.
- shortcut fdobug points to https://bugs.freedesktop.org/show_bug.cgi?id=%s
- shortcut fdolist points to http://lists.freedesktop.org/mailman/listinfo/%s
- shortcut gnomebug points to https://bugzilla.gnome.org/show_bug.cgi?id=%s
- shortcut linuxbug points to https://bugzilla.kernel.org/show_bug.cgi?id=%s
- shortcut mozbug points to https://bugzilla.mozilla.org/show_bug.cgi?id=%s
- shortcut gnulist points to https://lists.gnu.org/mailman/listinfo/%s
- shortcut marcmsg points to http://marc.info/?i=%s
- shortcut marclist points to http://marc.info/?l=%s
- shortcut gmane points to http://dir.gmane.org/gmane.%s
- shortcut gmanemsg points to http://mid.gmane.org/%s
- shortcut cpan points to http://search.cpan.org/search?mode=dist&query=%s
- shortcut ctan points to http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s
- shortcut hoogle points to http://haskell.org/hoogle/?q=%s
- shortcut iki points to http://ikiwiki.info/%S/
- shortcut ljuser points to http://%s.livejournal.com/
- shortcut rfc points to https://www.ietf.org/rfc/rfc%s.txt
- shortcut c2 points to http://wiki.c2.com/?%s
- shortcut meatballwiki points to http://www.usemod.com/cgi-bin/mb.pl?%s
- shortcut emacswiki points to http://www.emacswiki.org/cgi-bin/wiki/%s
- shortcut haskellwiki points to http://haskell.org/haskellwiki/%s
- shortcut dict points to http://www.dict.org/bin/Dict?Form=Dict1&Strategy=&Database=&Query=%s
- shortcut imdb points to http://imdb.com/find?q=%s
- shortcut gpg points to http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s
- shortcut perldoc points to http://perldoc.perl.org/search.html?q=%s
- shortcut whois points to http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain
- shortcut cve points to https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s
- shortcut flickr points to https://secure.flickr.com/photos/%s
- shortcut man points to http://manpages.debian.org/%s
- shortcut ohloh points to https://www.ohloh.net/p/%s
- shortcut cpanrt points to https://rt.cpan.org/Ticket/Display.html?id=%s
- shortcut novellbug points to https://bugzilla.novell.com/show_bug.cgi?id=%s
- shortcut ubupkg points to http://packages.ubuntu.com/%s
- shortcut mozillazinekb points to http://kb.mozillazine.org/%s
- shortcut freebsdwiki points to http://wiki.freebsd.org/%s
- shortcut hackage points to http://hackage.haskell.org/package/%s
- shortcut pkgsrc points to http://pkgsrc.se/%S
- shortcut doi points to http://dx.doi.org/%s
- shortcut arxiv points to http://arxiv.org/abs/%s
To add a new shortcut, use the shortcut
directive. In the url, "%s" is replaced with the
text passed to the named shortcut, after url encoding
it, and '%S' is replaced with the raw, non-encoded text.
Additionally, %W
is replaced with the text encoded just right for
Wikipedia. The optional desc
parameter controls the description of
the link.
Remember that the name
you give the shortcut will become a new
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, so that future versions of ikiwiki will include your shortcut in the standard underlay.
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".
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
- First item.
- Another.
- And another..
Bulleted list
- item
- item
Recent changes to this wiki:
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:
- `mouseover` - This is the text or other content that triggers the popup.
- `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.
Note that browsers that do not support the CSS will display the popup inline in the page, inside square brackets.
This wiki has po support disabled.
If the po plugin is enabled, the regular 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. - "
needstranslation()
" - tests whether a page needs translation work. Only slave pages match this PageSpec. A minimum target translation percentage can optionally be passed as an integer parameter: "needstranslation(50)
" matches only pages less than 50% translated.
Note that every non-po page is considered to be written in
po_master_language
, as specified in ikiwiki.setup
.
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 SubPages 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:
- "
glob(someglob)
" - matches pages and other files that match the given glob. Just writing the glob by itself is actually a shorthand for this function. - "
page(glob)
" - likeglob()
, but only matches pages, not other files - "
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 files created on the given month number - "
creation_day(mday)
" - or day of the month - "
creation_year(year)
" - or year - "
created_after(page)
" - matches only files created after the given page was created - "
created_before(page)
" - matches only files created before the given page was created - "
internal(glob)
" - likeglob()
, but matches even internal-use pages that globs do not usually match. - "
title(glob)
", "author(glob)
", "authorurl(glob)
", "license(glob)
", "copyright(glob)
", "guid(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. Glob patterns can be used in the username. For example, to match all openid users, useuser(*://*)
- "
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. Glob patterns can be used in the address. For example,ip(127.0.0.*)
- "
comment(glob)
" - matches comments to a page matching the glob. - "
comment_pending(glob)
" - matches unmoderated, pending comments. - "
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.
If you want to include only one level of subpages, you can use
blog/* and !blog/*/*
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".
To indicate the name of the page the PageSpec is used in, you can
use a single dot. For example, link(.)
matches all the pages
linking to the page containing the PageSpec.
This wiki has OpenID disabled.
OpenID is a decentralized authentication mechanism that allows you to have one login that you can use on a growing number of websites.
If you have an account with some of the larger web service providers, you might already have an OpenID. Directory of OpenID providers
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"]]
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:
- `text` - the text to display in the note
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.
Note that WikiLinks and directives are not part of the markdown syntax, and are the only bit of markup that this wiki handles internally.
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.
Welcome to your new wiki. You will have a puppy soon. Prepare yourself.
All wikis are supposed to have a SandBox, so this one does too.
Keep an eye on BadLinks.
Don't be a jerk. Don't click on this link unless you're Matt/Kira Gift Ideas
HomeNetworkWishlist | CarWishlist
Matt | saved links | Camaro saved links
This wiki is powered by ikiwiki.
Some documentation on using ikiwiki:
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. first line"
- "2. second line"
- "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.Insert smileys and some other useful symbols.
Use shortcuts to link to common resources.
[[!wikipedia War_of_1812]]
Create and fill out templates for repeated chunks of parameterized wiki text.
Insert various directives onto a page to perform useful actions. For example, you can:
Add a table of contents to a page:
[[!toc ]]
Change the title of a page:
[[!meta title="full page title"]]
Create a blog by inlining a set of pages:
[[!inline pages="blog/*"]]
Directives are similar to a 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-double-quotes or triple-single-quotes:
[[!directive text="""
1. "foo"
2. "bar"
3. "baz"
""" othertext='''
1. 'quux'
2. "foo"
''']]
If you want to put text with triple quotes into a parameter value, you can use perl-style here-doc syntax, even nesting it like this:
[[!directive text=<<OUTER
[[!otherdirective <<INNER
inner text
INNER]]
outer text
OUTER]]
ikiwiki also has an older syntax for directives, which requires a space in
directives to distinguish them from wikilinks. This
syntax has several disadvantages: it requires a space after directives with
no parameters (such as [[pagecount ]]
), and it prohibits spaces in
wikilinks. 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.
This wiki has attachments enabled.
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 most users to uploading small images, and nothing else, while allowing 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 ((mimetype(image/jpeg) or mimetype(image/png)) and maxsize(50kb)))
The regular 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, useispage()
."
mimetype(foo/bar)
" - checks the MIME type of the attachment. You can include a glob in the type, for examplemimetype(image/*)
."
virusfree()
" - checks the attachment with an antiviral program.