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 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
subsubsuheader
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
February 2023 | ||||||
---|---|---|---|---|---|---|
S | M | T | W | T | F | S |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 |
The trailoptions
directive is supplied by the
trail plugin. It sets options for the
trail represented by this page.
[[!trailoptions sort="meta(title)" circular="no"]]
Options available:
sort
: sets a sorting order for the entire trail, overriding the order in which they were addedreverse
: reverses the order of the trailcircular
: if set toyes
or1
, the trail is made into a loop by making the last page's "next" link point to the first page, and the first page's "previous" link point to the last page
The traillink
directive is supplied by the
trail
plugin. It generates a visible WikiLink, and also adds the
linked page to the trail represented by the page containing the directive.
In its simplest form, the first parameter is like the content of a WikiLink:
[[!traillink some_other_page]]
The displayed text can also be overridden, either with a |
symbol or with
a text
parameter:
[[!traillink Click_here_to_start_the_trail|some_other_page]]
[[!traillink some_other_page text="Click here to start the trail"]]
The trailitem
directive is supplied by the
trail plugin. It is used like this:
[[!trailitem some_other_page]]
to add some_other_page
to the trail represented by this page, without
generating a visible hyperlink.
The osm
directive is supplied by the osm plugin.
This directive inserts an OpenStreetMap map onto a page. It is typically combined with the waypoint directive to add points to the map.
examples
[[!osm ]]
[[!waypoint lat="45°30N" lon="73°40W" name="My city" tag="city"]]
The osm directive will display the actual map, while the waypoint directive adds waypoints to the map.
The above can also be shortened as:
[[!waypoint lat="45°30N" lon="73°40W" name="My city" tag="city" embed]]
The tag is also taken from the tags elsewhere in the page, so the above is equivalent to:
[[!waypoint lat="45°30N" lon="73°40W" name="My city" embed]]
[[!tag city]]
The icon is also taken from the tag if attached to the tag page as icon.png (default, modifiable)..
map display
map
- map to display, defaults to "map"zoom
- the level to zoom to on the OSM maploc
- lattitude and longitude of the map centerlat
- lattitudelon
- longitudeeditable
- add edit controls in a separate layerright
- float the map rightleft
- float the map left (default)width
- width of the mapheight
- height of the map
waypoints
Waypoints can be added to any page. By default the waypoint takes the name of the page, which allows you to easily tag pages and make them appear on the central map.
Waypoints, by default, show up as a image (the icon
parameter) link
to the main map (or the map
parameter provided). That markup can be
hidden with the hidden
parameter.
name
- the name of this point, defaults to the page name must be unique, otherwise later incantation will overwrite previous ones.map
- the map to add the point to (defaults to "map")desc
- description to embed in the maploc
- lattitude and longitudelat
- lattitudelon
- longitudetag
- the type of points, maps to an icon in the osm_types arrayhidden
- do not display the link to the map (will not affectembed
)icon
- URL to the icon to show in the link to the map and within the mapembed
- embed the map display alongside the point, in which case the regular arguments to the map display can be used
Links
If two pages with waypoints have a link between them, that link will magically show up on the map. Now how awesome is that?
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.
The meta
directive is supplied by the meta plugin.
This directive allows inserting arbitrary metadata into the source of a page. Enter the metadata as follows:
[[!meta field="value"]]
[[!meta field="value" param="value" param="value"]]
The first form sets a given field to a given value, while the second form
also specifies some additional sub-parameters. You can have only one field
per meta
directive, use more directives if you want to specify more fields.
The field values are treated as HTML entity-escaped text, so you can include
a quote in the text by writing "
and so on.
Supported fields
title
Overrides the title of the page, which is generally the same as the page name.
Note that if the title is overridden, a "title_overridden" variable will be set to a true value in the template; this can be used to format things differently in this case.
An optional
sortas
parameter will be used preferentially when sorting bymeta(title)
:[[!meta title="The Beatles" sortas="Beatles, The"]]
[[!meta title="David Bowie" sortas="Bowie, David"]]
license
Specifies a license for the page, for example, "GPL". Can contain WikiLinks and arbitrary markup.
copyright
Specifies the copyright of the page, for example, "Copyright 2007 by Joey Hess". Can contain WikiLinks and arbitrary markup.
author
Specifies the author of a page.
An optional
sortas
parameter will be used preferentially when sorting bymeta(author)
:[[!meta author="Joey Hess" sortas="Hess, Joey"]]
authorurl
Specifies an url for the author of a page.
description
Specifies a short description for the page. This will be put in the html header, and can also be displayed by eg, the map directive.
keywords
Specifies keywords summarizing the contents of the page. This information will be put in the html header. Only letters, numbers, spaces and commas are allowed in this string; other characters are stripped. Note that the majority of search engines, including Google, do not use information from the keywords header.
permalink
Specifies a permanent link to the page, if different than the page generated by ikiwiki.
date
Specifies the creation date of the page. This creates a
<meta name="date" content="...">
header in the HTML output, but also modifies the internalctime
in the internal index. The date can be entered in nearly any format, since it's parsed by TimeDate but invalid dates yield an error in 3.20180321 or later.stylesheet
Adds a stylesheet to a page. The stylesheet is treated as a wiki link to a
.css
file in the wiki, so it cannot be used to add links to external stylesheets. Example:[[!meta stylesheet=somestyle rel="alternate stylesheet" title="somestyle"]]
However, this will be scrubbed away if the htmlscrubber plugin is enabled, since it can be used to insert unsafe content.
script
Adds a script to a page. The script is treated as a wiki link to a
.js
file in the wiki, so it cannot be used to add links to external scripts. The optionaldefer
andasync
keywords can be used to set the corresponding HTML4 and HTML5 script options. Example:[[!meta script=somescript defer async]]
The tag is subject to scrubbing as with the stylesheet and link fields.
openid
Adds html <link> tags to perform OpenID delegation to an external OpenID server. This lets you use an ikiwiki page as your OpenID.
By default this will delegate for both
openid
andopenid2
. To only delegate for one, add a parameter such asdelegate=openid
.An optional
xrds-location
parameter lets you specify the location of any eXtensible Resource DescriptorS.Example:
[[!meta openid="http://joeyh.myopenid.com/" server="http://www.myopenid.com/server" xrds-location="http://www.myopenid.com/xrds?username=joeyh.myopenid.com"]]
link
Specifies a link to another page. This can be used as a way to make the wiki treat one page as linking to another without displaying a user-visible WikiLink:
[[!meta link=otherpage]]
It can also be used to insert a html <link> tag. For example:
[[!meta link="http://joeyh.myopenid.com/" rel="openid.delegate"]]
However, this latter syntax won't be allowed if the htmlscrubber plugin is enabled, since it can be used to insert unsafe content.
enclosure
Specifies a link to a file to be rendered as an "enclosure" in RSS/Atom feeds (and a plain old link in HTML). Useful for podcasting.
redir
Causes the page to redirect to another page in the wiki.
[[!meta redir=otherpage]]
The default is to redirect without delay. Optionally, a delay (in seconds) can be specified: "delay=10"
It can also be used to redirect to an external url. For example:
[[!meta redir="http://example.com/"]]
However, this latter syntax won't be allowed if the htmlscrubber plugin is enabled, since it can be used to insert unsafe content.
For both cases, an anchor to jump to inside the destination page may also be specified using the common
#ANCHOR
syntax.robots
Causes the robots meta tag to be written:
[[!meta robots="index, nofollow"]]
Valid values for the attribute are: "index", "noindex", "follow", and "nofollow". Multiple comma-separated values are allowed, but obviously only some combinations make sense. If there is no robots meta tag, "index, follow" is used as the default.
The value is escaped, but its contents are not otherwise checked.
guid
Specifies a globally unique ID for a page. This guid should be a URI, and it will be used to identify the page's entry in RSS and Atom feeds. If not given, the default is to use the page's URL as its guid.
This is mostly useful when a page has moved, to keep the guids for pages unchanged and avoid flooding aggregators (see tips/howto avoid flooding aggregators).
updated
Specifies a fake modification time for a page, to be output into RSS and Atom feeds. This is useful to avoid flooding aggregators that sort by modification time, like Planet: for instance, when editing an old blog post to add tags, you could set
updated
to be one second later than the original value. The date/time can be given in any format that TimeDate can understand, just like thedate
field and maps to the<meta name="updated" content="...">
HTML header and internalmtime
field.foaf
Adds a Friend of a Friend (FOAF) reference to a page.
Example:
[[!meta foaf=foaf.rdf]]
name
Adds a HTML
<meta>
header with thisname
attribute. Its other attributes are taken from the other parameters, so for example[[!meta name="foo" content="bar" x-non-standard-attribute="baz"]]
becomes<meta name="foo" content="bar" x-non-standard-attribute="baz">
. This won't be allowed if the htmlscrubber plugin is enabled, since it can be used to insert unsafe content.
Other fields
If the field is not one of the above predefined fields, the metadata will be
written to the generated html page as a <meta> header. For example,
[[!meta foo="bar"]]
becomes <meta name="foo" content="bar">
. As
with name
, this won't be allowed if the htmlscrubber plugin is enabled.
This syntax cannot be used for meta headers with unusual names, in
particular names containing :
such as flattr:id
and twitter:card
.
Please use [[!meta name="..." content="..."]]
for those headers.