add underlay files for listdirectives

As was noted, 'listdirectives' didn't include the underlay files that make
it really worthwhile.  I've just gone through all the plugin
documentation, modified it to remove installation information and renamed
the files to match the directives rather than the plugins.  This can now
serve as useful underlay.

I've only gone through plugins in the 'plugins' dir.  I did not go through
the 'contrib' dir.
master
William Uther 2008-09-11 17:04:23 -04:00 committed by Joey Hess
parent 595b035915
commit 4f0ac7fe59
42 changed files with 1120 additions and 0 deletions

View File

@ -0,0 +1 @@
../../doc/ikiwiki/directive.mdwn

View File

@ -0,0 +1,47 @@
The `aggregate` directive is supplied by the [[!iki plugins/aggregate]] plugin.
This directive allows content from other feeds to be aggregated into the wiki.
Aggregate a feed as follows:
\[[!aggregate name="example blog" dir="example"
feedurl="http://example.com/index.rss"
url="http://example.com/" updateinterval="15"]]
That example aggregates posts from the specified RSS feed, updating no
more frequently than once every 15 minutes, and puts a page per post under
the example/ directory in the wiki.
You can then use ikiwiki's [[ikiwiki/blog]] support to create a blog of one or
more aggregated feeds. For example:
\[[!inline pages="internal(example/*)"]]
## usage
Here are descriptions of all the supported parameters to the `aggregate`
directive:
* `name` - A name for the feed. Each feed must have a unique name.
Required.
* `url` - The url to the web page for the feed that's being aggregated.
Required.
* `dir` - The directory in the wiki where pages should be saved. Optional,
if not specified, the directory is based on the name of the feed.
* `feedurl` - The url to the feed. Optional, if it's not specified ikiwiki
will look for feeds on the `url`. RSS and atom feeds are supported.
* `updateinterval` - How often to check for new posts, in minutes. Default
is 15 minutes.
* `expireage` - Expire old items from this feed if they are older than
a specified number of days. Default is to never expire on age.
* `expirecount` - Expire old items from this feed if there are more than
the specified number total. Oldest items will be expired first. Default
is to never expire on count.
* `tag` - A tag to tag each post from the feed with. A good tag to use is
the name of the feed. Can be repeated multiple times. The [[tag]] plugin
must be enabled for this to work.
* `template` - Template to use for creating the aggregated pages. Defaults to
aggregatepost.
Note that even if you are using subversion or another revision control
system, pages created by aggregation will *not* be checked into revision
control.

View File

@ -0,0 +1,12 @@
The `brokenlinks` directive is supplied by the [[!iki plugins/brokenlinks]] plugin.
This directive generates a list of broken links on pages in the wiki. This is
a useful way to find pages that still need to be written, or links that
are written wrong.
The optional parameter "pages" can be a [[ikiwiki/PageSpec]] specifying the
pages to search for broken links, default is search them all.
If this plugin is turned on, here's a list of broken links on this wiki:
[[!brokenlinks pages="* and !recentchanges"]]

View File

@ -0,0 +1,65 @@
The `calendar` directive is supplied by the [[!iki plugins/calendar]] plugin.
This directive displays a calendar, similar to the typical calendars shown on
some blogs.
# examples
\[[!calendar ]]
\[[!calendar type="month" pages="blog/* and !*/Discussion"]]
\[[!calendar type="year" year="2005" pages="blog/* and !*/Discussion"]]
This plugin is inspired by the calendar plugin for Blosxom, but
derives no code from it. This plugin is essentially a fancy front end
to archives of previous pages, usually used for blogs. It can produce
a calendar for a given month, or a list of months for a given year.
This plugin requires extra setup. See the plugin documentation for details.
## usage
* `type` - Used to specify the type of calendar wanted. Can be one of
"month" or "year". The default is a month view calendar.
* `pages` - Specifies the [[ikiwiki/PageSpec]] of pages to link to from the
month calendar. Defaults to "*".
* `archivebase` - Configures the base of the archives hierarchy. The
default is "archives". Note that this default can also be overridden
for the whole wiki by setting `archivebase` in ikiwiki's setup file.
* `year` - The year for which the calendar is requested. Defaults to the
current year.
* `month` - The numeric month for which the calendar is requested, in the
range 1..12. Used only for the month view calendar, and defaults to the
current month.
* `week_start_day` - A number, in the range 0..6, which represents the day
of the week that the month calendar starts with. 0 is Sunday, 1 is Monday,
and so on. Defaults to 0, which is Sunday.
* `months_per_row` - In the annual calendar, number of months to place in
each row. Defaults to 3.
## CSS
The output is liberally sprinkled with classes, for fine grained CSS
customization.
* `month-calendar` - The month calendar as a whole.
* `month-calendar-head` - The head of the month calendar (ie,"March").
* `month-calendar-day-head` - A column head in the month calendar (ie, a
day-of-week abbreviation).
* `month-calendar-day-noday`, `month-calendar-day-link`,
`month-calendar-day-nolink`, `month-calendar-day-future`,
`month-calendar-day-this-day` - The day squares on the month calendar,
for days that are not in the month (before or after the month itself), that
don't have links, that do have links, that are in the future, or are that
are the current day, respectively.
* `Sunday`, `Monday`, `Tuesday`, ... - Each day square is also given a class
matching its (localised) day of week, this can be used to highlight
weekends.
* `year-calendar` - The year calendar as a whole.
* `year-calendar-head` - The head of the year calendar (ie, "2007").
* `year-calendar-subhead` - For example, "Months".
* `year-calendar-month-link`, `year-calendar-month-nolink`,
`year-calendar-month-future`, `year-calendar-this-month` - The month
squares on the year calendar, for months with stories,
without, in the future, and currently selected, respectively.

View File

@ -0,0 +1,23 @@
The `color` directive is supplied by the [[!iki plugins/color]] plugin.
This directive can be used to color a piece of text on a page.
It can be used to set the foreground and/or background color of the text.
You can use a color name (e.g. `white`) or HTML code (e.g. `#ffffff`)
to define colors.
## examples
Here the foreground color is defined as a word, while the background color
is defined as a HTML color code:
\[[!color foreground=white background=#ff0000 text="White text on red background"]]
The background color is missing, so the text is displayed on default
background:
\[[!color foreground=white text="White text on default color background"]]
The foreground is missing, so the text has the default foreground color:
\[[!color background=#ff0000 text="Default color text on red background"]]

View File

@ -0,0 +1 @@
[[!meta redir=/ikiwiki/directive/cutpaste]]

View File

@ -0,0 +1 @@
[[!meta redir=/ikiwiki/directive/cutpaste]]

View File

@ -0,0 +1,53 @@
The `copy`, `cut` and `paste` directives are supplied by the [[!iki plugins/cutpaste]] plugin.
With these directives you can store and recall pieces of text:
* `\[[!cut id=name text="text"]]` memorizes the text allowing to recall it
using the given ID. The text being cut is not included in the output.
* `\[[!copy id=name text="text"]]` memorizes the text allowing to recall it
using the given ID. The text being cut *is* included in the output.
* `\[[!paste id=name]]` is replaced by the previously memorized text.
The text being cut, copied and pasted can freely include wiki markup, including
more calls to cut, copy and paste.
You do not need to memorize the text before using it: a cut directive can
follow the paste directive that uses its text. In fact, this is quite useful
to postpone big blocks of text like long annotations and have a more natural
flow. For example:
This plugin provides three directives:
* \[[!toggle id="cut" text="cut"]] that cuts text
* \[[!toggle id="copy" text="copy"]] that copies text
* \[[!toggle id="paste" text="paste"]] that pastes text
\[[!toggleable id="cut" text="\[[!paste id=cutlongdesc]]"]]
\[[!toggleable id="copy" text="\[[!paste id=copylongdesc]]"]]
\[[!toggleable id="paste" text="\[[!paste id=pastelongdesc]]"]]
\[...some time later...]
\[[!cut id=cutlongdesc text="""
blah blah blah
"""]]
\[[!cut id=copylongdesc text="""
blah blah blah
"""]]
\[[!cut id=pastelongdesc text="""
blah blah blah
"""]]
This can potentially be used to create loops, but ikiwiki is clever and breaks
them.
Since you can paste without using double quotes, copy and paste can be used to
nest directive that require multiline parameters inside each other:
\[[!toggleable id=foo text="""
\[[!toggleable id=bar text="\[[!paste id=baz]]"]]
"""]]
\[[!cut id=baz text="""
multiline parameter!
"""]]

View File

@ -0,0 +1,32 @@
The `edittemplate` directive is supplied by the [[!iki plugins/edittemplate]] plugin.
This directive allows registering template pages, that provide default
content for new pages created using the web frontend. To register a
template, insert a [[ikiwiki/directive/template]] directive on some other page.
\[[!edittemplate template="bugtemplate" match="bugs/*"]]
In the above example, the page named "bugtemplate" is registered as a
template to be used when any page named "bugs/*" is created.
Often the template page contains a simple skeleton for a particular type of
page. For the bug report pages in the above example, it might look
something like:
Package:
Version:
Reproducible: y/n
Details:
The template page can also contain [[!cpan HTML::Template]] directives,
similar to other ikiwiki [[templates]]. Currently only one variable is
set: `<TMPL_VAR name>` is replaced with the name of the page being
created.
----
It's generally not a good idea to put the `edittemplate` directive in
the template page itself, since the directive would then be included as
part of the template on new pages, which would then in turn be registered
as templates. If multiple pages are registered as templates for a new page,
an arbitrary one is chosen, so that could get confusing.

View File

@ -0,0 +1,14 @@
The `fortune` directive is supplied by the [[!iki plugins/fortune]] plugin.
This just uses the `fortune` program to insert a fortune into the page.
Usage:
\[[!fortune ]]
[[!if test="enabled(fortune)" then="""
Here's a fortune for you:
----
[[!fortune ]]
"""]]

View File

@ -0,0 +1,28 @@
The `graph` directive is supplied by the [[!iki plugins/graphviz]] plugin.
This directive allows embedding [graphviz](http://www.graphviz.org/) graphs in a
page. Example usage:
\[[!graph src="a -> b -> c; a -> c;"]]
Note that graphs will only show up in previews if your browser has
[[!wikipedia data: URI]] support, or if the same graph already exists on that
page.
The `graph` directive supports the following parameters:
- `src` - The graphviz source to render.
- `type` - The type of graph to render: `graph` or `digraph`. Defaults to
`digraph`.
- `prog` - The graphviz program to render with: `dot`, `neato`, `fdp`, `twopi`,
or `circo`. Defaults to `dot`.
- `height`, `width` - Limit the size of the graph to a given height and width,
in inches. You must specify both to limit the size; otherwise, graphviz will
choose a size, without any limit.
[[!if test="enabled(graphviz)" then="""
Some example graphs:
[[!graph src="a -> b -> c; a -> b;"]]
[[!graph src="a -- b -- c -- a;" prog="circo" type="graph"]]
"""]]

View File

@ -0,0 +1,13 @@
The `haiku` directive is supplied by the [[!iki plugins/haiku]] plugin.
This plugin allows inserting a randomly generated haiku into a wiki page.
Just type:
\[[!haiku hint="argument"]]
[[!haiku hint="argument test"]]
The hint parameter can be omitted, it only provides the generator a hint of
what to write the haiku about. If no hint is given, it might base it on the
page name. Since the vocabulary it knows is very small, many hints won't
affect the result at all.

View File

@ -0,0 +1,46 @@
The `if` directive is supplied by the [[!iki plugins/conditional]] plugin.
With this directive, you can make text be conditionally displayed on a page.
For example:
\[[!if test="enabled(smiley)"
then="The smiley plugin is enabled :-)"
else="No smiley plugin here.."]]
If the specified `test` succeeds, the `then` text will be displayed,
otherwise the `else` text will be displayed. The `else` part is optional.
The `then` and `else` values can include any markup that would be allowed
in the wiki page outside the template. Triple-quoting the values even allows
quotes to be included.
The `test` is a [[ikiwiki/PageSpec]]; if it matches any page in the wiki
then it succeeds. So you can do things like testing for the existence of a
page or pages, testing to see if any pages were created in a given month,
and so on.
If you want the [[ikiwiki/PageSpec]] to only match against the page that
contains the conditional, rather than matching against all pages in the
wiki, set the "all" parameter to "no".
The regular [[ikiwiki/PageSpec]] syntax is expanded with the following
additional tests:
* enabled(plugin)
Tests whether the specified plugin is enabled.
* sourcepage(glob)
Tests whether the glob matches the name of the page that contains the
conditional.
* destpage(glob)
Tests whether the glob matches the name of the page that is being built.
That might be different than the name of the page that contains the
conditional, if it's being inlined into another page.
* included()
Tests whether the page is being included onto another page.

View File

@ -0,0 +1,36 @@
The `img` directive is supplied by the [[!iki plugins/img]] plugin.
This is an image handling directive. While ikiwiki supports inlining full-size
images by making a [[ikiwiki/WikiLink]] that points to the image, using
this plugin you can easily scale down an image for inclusion onto a page,
providing a link to a full-size version.
## usage
\[[!img image1.jpg size="200x200" alt="clouds"]]
The image file will be searched for using the same rules as used to find
the file pointed to by a [[ikiwiki/WikiLink]].
The `size` parameter is optional, defaulting to full size. Note that the
original image's aspect ratio is always preserved, even if this means
making the image smaller than the specified size. You can also specify only
the width or the height, and the other value will be calculated based on
it: "200x", "x200".
You can also pass `alt`, `title`, `class` and `id` parameters. These are
passed through unchanged to the html img tag. If you include a `caption`
parameter, the caption will be displayed centered beneath the image.
The `link` parameter is used to control whether the scaled down image links
to the full size version. By default it does; set "link=somepage" to link
to another page instead, or "link=no" to disable the link, or
"link=http://url" to link to a given url.
You can also set default values that will be applied to all later images on
the page, unless overridden. Useful when including many images on a page.
\[[!img defaults size=200x200 alt="wedding photo"]]
\[[!img photo1.jpg]]
\[[!img photo2.jpg]]
\[[!img photo3.jpg size=200x600]]

View File

@ -0,0 +1,10 @@
The `inline` directive is supplied by the [[!iki plugins/inline]] plugin.
This is a [[ikiwiki/directive]] that allows including one wiki page
inside another. For example:
\[[!inline pages="blog/*"]]
The most common use of inlining is generating blogs and RSS or Atom feeds.
See [[ikiwiki/blog]] for details.

View File

@ -0,0 +1,28 @@
The `linkmap` directive is supplied by the [[!iki plugins/linkmap]] plugin.
This directive uses [graphviz](http://www.graphviz.org/) to generate a graph showing the links between a
set of pages in the wiki. Example usage:
\[[!linkmap pages="* and !blog/* and !*/Discussion"]]
Only links between mapped pages will be shown; links pointing to or from
unmapped pages will be omitted. If the pages to include are not specified,
the links between all pages (and other files) in the wiki are mapped. For
best results, only a small set of pages should be mapped, since otherwise
the map can become very large, unweildy, and complicated. Also, the map is
rebuilt whenever one of the mapped pages is changed, which can make the
wiki a bit slow.
Here are descriptions of all the supported parameters to the `linkmap`
directive:
* `pages` - A [[ikiwiki/PageSpec]] of the pages to map.
* `height`, `width` - Limit the size of the map to a given height and width,
in inches. Both must be specified for the limiting to take effect, otherwise
the map's size is not limited.
[[!if test="enabled(linkmap)" then="""
Here is an example link map, of the index page and all pages it links to:
[[!linkmap pages="index or (backlink(index) and !*.png)"]]
"""]]

View File

@ -0,0 +1,16 @@
The `listdirectives` directive is supplied by the [[!iki plugins/listdirectives]] plugin.
This directive generates a list of available
[[directives|ikiwiki/directive]].
\[[!listdirectives]]
There is one optional keyword argument, `generated`. Normally the `listdirectives` directive will
list all built in directives and directives directly registered by plugins. With this keyword,
`listdirectives` will also list directives generated later. For example, all [[shortcuts]] are
directives generated in turn by the `shortcut` directive. They will only be listed if the `generated` argument is
supplied.
\[[!listdirectives generated]]
This extended list is often quite long, and often contains many undocumented directives.

View File

@ -0,0 +1,17 @@
The `map` directive is supplied by the [[!iki plugins/map]] plugin.
This directive generates a hierarchical page map for the wiki. Example usage:
\[[!map pages="* and !blog/* and !*/Discussion"]]
If the pages to include are not specified, all pages (and other files) in
the wiki are mapped.
By default, the names of pages are shown in the map. The `show` parameter
can be used to show the titles or descriptions of pages instead (as set by
the [[meta]] plugin). For example:
\[[!map pages="* and !blog/* and !*/Discussion" show=title]]
Hint: To limit the map to displaying pages less than a certain level deep,
use a [[ikiwiki/PageSpec]] like this: `pages="* and !*/*/*"`

View File

@ -0,0 +1,145 @@
The `meta` directive is supplied by the [[!iki plugins/meta]] plugin.
This plugin 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.
The field values are treated as HTML entity-escaped text, so you can include
a quote in the text by writing `&quot;` 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.
* 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.
* authorurl
Specifies an url for the author of a page.
* description
Specifies a "description" of the page. You could use this to provide
a summary, for example, to be picked up by the [[map]] plugin.
* permalink
Specifies a permanent link to the page, if different than the page
generated by ikiwiki.
* date
Specifies the creation date of the page. The date can be entered in
nearly any format, since it's parsed by [[!cpan TimeDate]].
* 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"]]
* openid
Adds html &lt;link&gt; tags to perform OpenID delegation to an external
OpenID server (for `openid` and `openid2`). An optional `xrds-location`
parameter lets you specify the location of any [eXtensible Resource
DescriptorS](http://www.windley.com/archives/2007/05/using_xrds.shtml).
This lets you use an ikiwiki page as your OpenID. 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
[[ikiwiki/WikiLink]]:
\[[!meta link=otherpage]]
It can also be used to insert a html &lt;link&gt; tag. For example:
\[[!meta link="http://joeyh.myopenid.com/" rel="openid.delegate"]]
However, this latter syntax won't be allowed if the [[!iki plugins/htmlscrubber]]
plugin is enabled, since it can be used to insert unsafe content.
* redir
Causes the page to redirect to another page in the wiki.
\[[!meta redir=otherpage]]
Optionally, a delay (in seconds) can be specified. The default is to
redirect without delay.
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 [[!iki plugins/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 `PAGE#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 plugin escapes the value, but otherwise does not care about its
contents. In particular, it does not check the values against the set of
valid values but serves whatever you pass it.
* guid
Specifies a globally unique ID for a page. This guid should be a URI
(in particular, it can be `urn:uuid:` followed by a UUID, as per
[[!rfc 4122]]), 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 [[!iki tips/howto_avoid_flooding_aggregators]]).
If the field is not one of the above predefined fields, the metadata will be
written to the generated html page as a &lt;meta&gt; header. However, this
won't be allowed if the [[!iki plugins/htmlscrubber]] plugin is enabled,
since it can be used to insert unsafe content.

View File

@ -0,0 +1,14 @@
The `more` directive is supplied by the [[!iki plugins/more]] plugin.
This directive provides a way to have a "more" link on a page in a blog, that
leads to the full version of the page. Use it like this:
\[[!more linktext="click for more" text="""
This is the rest of my post. Not intended for people catching up on
their blogs at 30,000 feet. Because I like to make things
difficult.
"""]]
If the `linktext` parameter is omitted it defaults to just "more".
Note that you can accomplish something similar using a [[toggle]] instead.

View File

@ -0,0 +1,19 @@
The `orphans` directive is supplied by the [[!iki plugins/orphans]] plugin.
This directive generates a list of possibly orphaned pages -- pages that no
other page links to.
The optional parameter "pages" can be a [[ikiwiki/PageSpec]] specifying the
pages to check for orphans, default is search them all.
Note that it takes backlinks into account, but does not count inlining a
page as linking to it, so will generally count many blog-type pages as
orphans.
[[!if test="enabled(orphans)" then="""
Here's a list of orphaned pages on this wiki:
[[!orphans pages="* and !news/* and !todo/* and !bugs/* and !users/* and
!recentchanges and !examples/* and !tips/* and !sandbox/* and !templates/* and
!wikiicons/* and !plugins/*"]]
"""]]

View File

@ -0,0 +1,10 @@
The `pagecount` directive is supplied by the [[!iki plugins/pagecount]] plugin.
This directive counts pages currently in the wiki.
The optional parameter "pages" can be a [[ikiwiki/PageSpec]] specifying the
pages to count, default is to count them all.
If it is turned on it can tell us that this wiki includes
[[!pagecount pages="* and !recentchanges"]]
pages, of which [[!pagecount pages="*/Discussion"]] are discussion pages.

View File

@ -0,0 +1,13 @@
The `pagestats` directive is supplied by the [[!iki plugins/pagestats]] plugin.
This directive can generate stats about how pages link to each other. It can
produce either a del.icio.us style cloud, or a table counting the number of
links to each page.
Here's how to use it to create a [[tag]] cloud:
\[[!pagestats pages="tags/*"]]
And here's how to create a table of all the pages on the wiki:
\[[!pagestats style="table"]]

View File

@ -0,0 +1,12 @@
The `pagetemplate` directive is supplied by the [[!iki plugins/pagetemplate]] plugin.
This directive allows a page to be created using a different
wikitemplates. The page text is inserted into the template, so
the template controls the overall look and feel of the wiki page. This is
in contrast to the [[ikiwiki/directive/template]] directive, which allows inserting templates
_into_ the body of a page.
This directive can only reference templates that are already installed
by the system administrator. Example:
\[[!pagetemplate template=my_fancy.tmpl]]

View File

@ -0,0 +1 @@
[[!meta redir=/ikiwiki/directive/cutpaste]]

View File

@ -0,0 +1,16 @@
The `ping` directive is supplied by the [[!iki plugins/pinger]] plugin.
This directive allows ikiwiki to be configured to hit a URL each time it
updates the wiki. One way to use this is in conjunction with the [[!iki plugins/pingee]]
plugin to set up a loosely coupled mirror network, or a branched version of
a wiki. By pinging the mirror or branch each time the main wiki changes, it
can be kept up-to-date.
\[[!ping from="http://mywiki.com/"
to="http://otherwiki.com/ikiwiki.cgi?do=ping"]]
The "from" parameter must be identical to the url of the wiki that is doing
the pinging. This is used to prevent ping loops.
The "to" parameter is the url to ping. The example shows how to ping
another ikiwiki instance.

View File

@ -0,0 +1,23 @@
The `poll` directive is supplied by the [[!iki plugins/poll]] plugin.
This directive allows you to create online polls in the wiki. Here's an
example use:
\[[!poll 0 "red" 0 "green" 0 "blue"]]
The numbers indicate how many users voted for that choice. When a user
votes for a choice in the poll, the page is modified and the number
incremented.
While some basic precautions are taken to prevent users from accidentially
voting twice, this sort of poll should not be counted on to be very
accurate; all the usual concerns about web based polling apply. Unless the
page that the poll is in is locked, users can even edit the page and change
the numbers!
Parameters:
* `open` - Whether voting is still open. Set to "no" to close the poll to
voting.
* `total` - Show total number of votes at bottom of poll. Default is "yes".
* `percent` - Whether to display percents. Default is "yes".

View File

@ -0,0 +1,28 @@
The `polygen` directive is supplied by the [[!iki plugins/polygen]] plugin.
This directive allows inserting text generated by polygen into a wiki page.
For example:
\[[!polygen grammar="genius"]]
It's also possible to specify a starting nonterminal for the grammar by
including `symbol="text"` in the directive.
[[!if test="enabled(polygen)" then="""
----
Here are a few notes about ikiwiki, courtesy of polygen:
Ikiwiki is internally based on a [[!polygen grammar="designpatterns"]]
coupled to a [[!polygen grammar="designpatterns"]], as described in
"[[!polygen grammar="paper"]]" by [[!polygen grammar="nipponame"]] of
[[!polygen grammar="boyband"]].
Ikiwiki reviews:
<ul>
<li>[[!polygen grammar="reviews"]]</li>
<li>[[!polygen grammar="reviews"]]</li>
<li>[[!polygen grammar="reviews"]]</li>
</ul>
"""]]

View File

@ -0,0 +1,43 @@
The `postsparkline` directive is supplied by the [[!iki plugins/postsparkline]] plugin.
This plugin uses the [[!iki plugins/sparkline]] plugin to create a [[sparkline]] of
statistics about a set of pages, such as posts to a blog.
# examples
Post interval:
\[[!postsparkline pages="blog/* and !*/Discussion" max=100
formula=interval style=bar barwidth=2 barspacing=1 height=13]]
Posts per month this year:
\[[!postsparkline pages="blog/* and !*/Discussion" max=12
formula=permonth style=bar barwidth=2 barspacing=1 height=13]]
# usage
All options aside fron the `pages`, `max`, `formula`, `time`, and `color`
options are passed on to the sparkline plugin.
You don't need to specify any data points (though you can if you want to).
Instead, data points are automatically generated based on the creation
times of pages matched by the specified `pages` [[ikiwiki/PageSpec]]. A
maximum of `max` data points will be generated.
The `formula` parameter controls the formula used to generate data points.
Available forumlae:
* `interval` - The height of each point represents how long it has been
since the previous post.
* `perday` - Each point represents a day; the height represents how
many posts were made that day.
* `permonth` - Each point represents a month; the height represents how
many posts were made that month.
* `peryear` - Each point represents a day; the height represents how
many posts were made that year.
The `time` parameter has a default value of "ctime", since forumae use
the creation times of pages by default. If you instead want
them to use the modification times of pages, set it to "mtime".
To change the color used to draw the sparkline, use the `color` parameter.
For example, "color=red".

View File

@ -0,0 +1,17 @@
The `progress` directive is supplied by the [[!iki plugins/progress]] plugin.
This directive generates a progress bar.
There are two possible parameter sets. The first is a single parameter
"percent" which holds a percentage figure of how complete the progress bar is.
The second possible set of parameters is a pair of [[ikiwiki/PageSpec]]s,
`totalpages` and `donepages`. The progress plugin counts the number of
pages in each pagespec and shows the percentage of the total pages that are
done.
This plugin is included in ikiwiki, but is not enabled by default.
If it is turned on it can show what percentage of pages have discussion pages:
[[!progress totalpages="* and !*/Discussion" donepages="*/Discussion"]]

View File

@ -0,0 +1,7 @@
The `shortcut` directive is supplied by the [[!iki plugins/shortcut]] plugin.
This plugin allows external links to commonly linked to sites to be made
more easily using shortcuts.
The available shortcuts are defined on the [[shortcuts]] page in
the wiki.

View File

@ -0,0 +1,58 @@
The `sparkline` directive is supplied by the [[!iki plugins/sparkline]] plugin.
This directive allows for embedding sparklines into wiki pages. A
sparkline is a small word-size graphic chart, that is designed to be
inlined alongside text.
# examples
\[[!sparkline 1 3 5 -3 10 0 width=40 height=16
featurepoint="4,-3,red,3" featurepoint="5,10,green,3"]]
This creates a simple line graph, graphing several points.
[[!if test="enabled(sparkline)" then="""
[[!sparkline 1 3 5 -3 10 0 width=40 height=16
featurepoint="4,-3,red,3" featurepoint="5,10,green,3"]]
"""]]
It will be drawn 40 pixels wide and 16 pixels high. The high point in the
line has a green marker, and the low point has a red marker.
\[[!sparkline 1 -1(red) 1 -1(red) 1 1 1 -1(red) -1(red) style=bar barwidth=2
barspacing=1 height=13]]
This more complex example generates a bar graph.
[[!if test="enabled(sparkline)" then="""
[[!sparkline 1 -1(red) 1 -1(red) 1 1 1 -1(red) -1(red)
style=bar barwidth=2 barspacing=1 height=13]]
"""]]
The bars are 2 pixels wide, and separated by one pixel, and the graph is 13
pixels tall. Width is determined automatically for bar graphs. The points
with negative values are colored red, instead of the default black.
# usage
The form for the data points is "x,y", or just "y" if the x values don't
matter. Bar graphs can also add "(color)" to specify a color for that bar.
The following named parameters are recognised. Most of these are the same
as those used by the underlying sparkline library, which is documented in
more detail in [its wiki](http://sparkline.wikispaces.com/usage).
* `style` - Either "line" (the default) or "bar".
* `width` - Width of the graph in pixels. Only needed for line graphs.
* `height` - Height of the graph in pixels. Defaults to 16.
* `barwidth` - Width of bars in a bar graph. Default is 1 pixel.
* `barspacing` - Spacing between bars in a bar graph, in pixels. Default is
1 pixel.
* `ymin`, `ymax` - Minimum and maximum values for the Y axis. This is
normally calculated automatically, but can be explicitly specified to get
the same values for multiple related graphs.
* `featurepoint` - Adds a circular marker to a line graph, with optional
text. This can be used to label significant points.
The value is a comma-delimited list of parameters specifying the feature
point: X value, Y value, color name, circle diameter, text (optional),
and text location (optional). Example: `featurepoint="3,5,blue,3"`
Available values for the text location are: "top", "right", "bottom", and
"left".

View File

@ -0,0 +1,43 @@
The `table` directive is supplied by the [[!iki plugins/table]] plugin.
This directive can build HTML tables from data in CSV (comma-separated values)
or DSV (delimiter-separated values) format.
## examples
\[[!table data="""
Customer|Amount
Fulanito|134,34
Menganito|234,56
Menganito|234,56
"""]]
\[[!table class="book_record" format=csv file="data/books/record1"]]
In this second example the `record1` page should be similar to:
"Title","Perl Best Practices"
"Author","Damian Conway"
"Publisher","OReilly"
To make a cell span multiple columns, follow it with one or more empty
cells. For example:
\[[!table data="""
left||right|
a|b|c|d
this cell spans 4 columns|||
"""]]
## usage
* `data` - Values for the table.
* `file` - A file in the wiki containing the data.
* `format` - The format of the data, either "csv", "dsv", or "auto"
(the default).
* `delimiter` - The character used to separate fields. By default,
DSV format uses a pipe (`|`), and CSV uses a comma (`,`).
* `class` - A CSS class for the table html element.
* `header` - By default, or if set to "row", the first data line is used
as the table header. Set it to "no" to make a table without a header, or
"column" to make the first column be the header.

View File

@ -0,0 +1,35 @@
The `tag` and `taglink` directives are supplied by the [[!iki plugins/tag]] plugin.
These directives allows tagging pages. List tags as follows:
\[[!tag tech life linux]]
The tags work the same as if you had put a (hidden) [[ikiwiki/WikiLink]] on
the page for each tag, so you can use a [[ikiwiki/PageSpec]] match all
pages that are tagged with a given tag, for example. The tags will also
show up on blog entries and at the bottom of the tagged pages, as well as
in RSS and Atom feeds.
If you want a visible [[ikiwiki/WikiLink]] along with the tag, use taglink
instead:
\[[!taglink foo]]
\[[!taglink tagged_as_foo|foo]]
This plugin has a configuration option. Set --tagbase=tags and links to tags
will be located under the specified base page. If ikiwiki is configured
this way, then the example above actually tags the page with the tags
tags/tech, tags/life, and tags/linux. This is a useful way to avoid
having to write the full path to tags, if you want to keep them grouped
together out of the way.
If you want to override the tagbase for a particular tag, you can use
something like this:
\[[!tag ./foo]]
\[[!taglink /foo]]
[[!if test="enabled(tag)" then="""
This wiki has the tag plugin enabled, so you'll see a note below that this
page is tagged with the "tags" tag.
"""]]

View File

@ -0,0 +1 @@
[[!meta redir=/ikiwiki/directive/tag]]

View File

@ -0,0 +1,85 @@
The `template` directive is supplied by the [[!iki plugins/template]] plugin.
Templates are files that can be filled out and inserted into pages in the
wiki.
## 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 [[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 [[WikiLink]].
[[!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]]
"""]]

View File

@ -0,0 +1,22 @@
The `testpagespec` directive is supplied by the [[!iki plugins/testpagespec]] plugin.
This directive allows testing a [[ikiwiki/PageSpec]] to see if it matches a
page, and to see the part that matches, or causes the match to fail.
Example uses:
\[[!testpagespec pagespec="foopage and barpage" match="foopage"]]
This will print out something like "no match: barpage does not match
foopage", highlighting which part of the [[ikiwiki/PageSpec]] is causing
the match to fail.
\[[!testpagespec pagespec="foopage or !bar*" match="barpage"]]
This will print out something like "no match: bar* matches barpage", since
the part of the [[ikiwiki/PageSpec]] that fails is this negated match.
\[[!testpagespec pagespec="foopage or barpage" match="barpage"]]
This will print out something like "match: barpage matches barpage",
indicating the part of the [[ikiwiki/PageSpec]] that caused it to match.

View File

@ -0,0 +1,23 @@
The `teximg` directive is supplied by the [[!iki plugins/teximg]] plugin.
This directive renders LaTeX formulas into images.
## examples
\[[!teximg code="\frac{1}{2}"]]
\[[!teximg code="E = - \frac{Z^2 \cdot \mu \cdot e^4}{32\pi^2 \epsilon_0^2 \hbar^2 n^2}" ]]
To scale the image, use height=x:
\[[!teximg code="\frac{1}{2}" height="17"]]
\[[!teximg code="\frac{1}{2}" height="8"]]
If no height is choosen the default height 12 is used. Valid heights are: 8, 9,
10, 11, 12, 14, 17, 20. If another height is entered, the closest available
height is used.
To add an alt text to the image, use alt="text":
\[[!teximg code="\frac{1}{2}" alt="1/2"]]
See [this site](http://www.der-winnie.de/opensource/gsoc2007) for rendered images.

View File

@ -0,0 +1,19 @@
The `toc` directive is supplied by the [[!iki plugins/toc]] plugin.
Add a table of contents to a page:
\[[!toc ]]
The table of contents will be automatically generated based on the
headers of the page. By default only the largest headers present on the
page will be shown; to control how many levels of headers are shown, use
the `levels` parameter:
\[[!toc levels=2]]
The toc directive will take the level of the first header as the topmost
level, even if there are higher levels seen later in the file.
The table of contents will be created as an ordered list. If you want
an unordered list instead, you can change the list-style in your local
style sheet.

View File

@ -0,0 +1,32 @@
The `toggle` and `toggleable` directives are supplied by the [[!iki plugins/toggle]] plugin.
With these directives you can create links on pages that, when clicked, toggle
display of other parts of the page.
It uses javascript to accomplish this; browsers without javascript will
always see the full page content.
Example use:
\[[!toggle id="ipsum" text="show"]]
\[[!toggleable id="ipsum" text="""
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.
[[!toggle id="ipsum" text="hide"]]
"""]]
Note that you can include wiki markup in the toggleable text,
including even additional toggles, as shown in the above example.
Also, the toggle and the togglable definitions do not need to be next to
each other, but can be located anywhere on the page. There can also be
mutiple toggles that all toggle a single togglable.
The id has a default value of "default", so can be omitted in simple cases.
If you'd like a toggleable to be displayed by default, and toggle to
hidden, then pass a parameter "open=yes" when setting up the toggleable.

View File

@ -0,0 +1 @@
[[!meta redir=/ikiwiki/directive/toggle]]

View File

@ -0,0 +1,10 @@
The `version` directive is supplied by the [[!iki plugins/version]] plugin.
This directive allows inserting the version of ikiwiki onto a page.
Whenever ikiwiki is upgraded to a new version, the page will be rebuilt,
updating the version number.
Use is simple:
\[[!version ]]