patch plugin documentation to refer to directive pages

master
William Uther 2008-09-11 17:05:51 -04:00 committed by Joey Hess
parent 4f0ac7fe59
commit c69a7f7585
37 changed files with 90 additions and 955 deletions

View File

@ -37,3 +37,15 @@ above as the preferred alternative. However, ikiwiki still supports wikis
using the older syntax, if the `prefix_directives` option is not enabled.
For backward compatibility with existing wikis, this option currently
defaults to off, so ikiwiki supports the old syntax.
[[!if test="enabled(shortcut)" then="""
The [[/ikiwiki/directive/shortcut]] directive allows defining simple wikilinks to
remote wikis. See the [[shortcuts]] page for a list of these shortcuts.
"""]]
[[!if test="enabled(listdirectives)" then="""
Here is a list of available (non-[[shortcut|shortcuts]]) directives:
[[!listdirectives]]
"""]]

View File

@ -1,23 +1,7 @@
[[!template id=plugin name=aggregate author="[[Joey]]"]]
[[!tag type/useful]]
This plugin 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/*)"]]
## setup
This plugin implements the [[ikiwiki/directive/aggregate]] [[ikiwiki/directive]].
New users of aggregate should enable the `aggregateinternal => 1` option in the
.setup file. If you don't do so, you will need to enable the [[html]] plugin
@ -41,36 +25,6 @@ visit is `http://whatever/ikiwiki.cgi?do=aggregate_webtrigger`. Anyone
can visit the url to trigger an aggregation run, but it will only check
each feed if its `updateinterval` has passed.
## 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.
## internal pages and `aggregateinternal`
This plugin creates a page for each aggregated item.

View File

@ -1,13 +1,5 @@
[[!template id=plugin name=brokenlinks author="[[Joey]]"]]
[[!tag type/link type/meta]]
This plugin 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"]]
This plugin implements the [[ikiwiki/directive/brokenlinks]] [[ikiwiki/directive]].
The directive generates a list of broken links on pages in the wiki.

View File

@ -1,77 +1,6 @@
[[!template id=plugin name=calendar author="[[ManojSrivastava]]"]]
[[!tag type/chrome]]
This plugin displays a calendar, similar to the typical calendars shown on
This plugin implements the [[ikiwiki/directive/calendar]] [[ikiwiki/directive]].
The 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.
Since ikiwiki is a wiki compiler, to keep the calendar up-to-date,
wikis that include it need to be preiodically refreshes, typically by cron
at midnight. Example crontab:
0 0 * * * ikiwiki -setup ~/ikiwiki.setup -refresh
The month format calendar simply links to any page posted on each
day of the month. The year format calendar links to archive pages, with
names like `archives/2007` (for all of 2007) and `archives/2007/01`
(for January, 2007). For this to work, you'll need to create these archive
pages. They typically use [[inline]] to display or list pages created in
the given time frame.
## 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

@ -1,24 +1,5 @@
[[!template id=plugin name=color core=0 author="[[ptecza]]"]]
[[!tag type/chrome]]
This plugin 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"]]
This plugin implements the [[ikiwiki/directive/color]] [[ikiwiki/directive]].
The directive can be used to color a piece of text on a page.

View File

@ -1,47 +1,5 @@
[[!template id=plugin name=conditional core=1 author="[[Joey]]"]]
[[!tag type/format]]
With this plugin, 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.
This plugin implements the [[ikiwiki/directive/if]] [[ikiwiki/directive]].
With this directive, you can make text be conditionally displayed on a page.

View File

@ -1,55 +1,6 @@
[[!template id=plugin name=toggle author="[[Enrico]]"]]
[[!tag type/chrome]]
With this plugin you can store and recall pieces of text. It defines three
preprocessing commands:
* `\[[!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!
"""]]
This plugin implements the [[ikiwiki/directive/cut]],
[[ikiwiki/directive/copy]] and [[ikiwiki/directive/paste]] [[ikiwiki/directive]]s.
With these directives you can store and recall pieces of text.

View File

@ -1,33 +1,6 @@
[[!template id=plugin name=edittemplate author="[[Joey]]"]]
[[!tag type/useful]]
This plugin allows registering template pages, that provide default
content for new pages created using the web frontend. To register a
template, insert a [[ikiwiki/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.
This plugin implements the [[ikiwiki/directive/edittemplate]] [[ikiwiki/directive]].
This directive allows registering template pages, that provide default
content for new pages created using the web frontend.

View File

@ -1,15 +1,5 @@
[[!template id=plugin name=fortune author="[[Joey]]"]]
[[!tag type/fun]]
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 ]]
"""]]
This plugin implements the [[ikiwiki/directive/fortune]] [[ikiwiki/directive]].
This directive uses the `fortune` program to insert a fortune into the page.

View File

@ -1,13 +1,8 @@
[[!template id=plugin name=graphviz author="[[JoshTriplett]]"]]
[[!tag type/chrome type/format]]
This plugin 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
This plugin implements the [[ikiwiki/directive/graph]] [[ikiwiki/directive]].
This directive allows embedding [graphviz](http://www.graphviz.org/) graphs in a
page.
Security implications: graphviz does not seem to have any syntax exploitable to
@ -20,22 +15,4 @@ already do these things with just the core of ikiwiki, but the graphviz plugin
allows for an amplification attack, since users can send less data to use large
amounts of processing time and disk usage.
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"]]
"""]]
This plugin uses the [[!cpan Digest::SHA1]] perl module.

View File

@ -1,17 +1,8 @@
[[!template id=plugin name=haiku author="[[Joey]]"]]
[[!tag type/fun]]
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.
This plugin implements the [[ikiwiki/directive/haiku]] [[ikiwiki/directive]].
The directive allows inserting a randomly generated haiku into a wiki page.
As a special bonus, enabling this plugin makes any error messages ikiwiki
should display be written in haiku.

View File

@ -1,7 +1,8 @@
[[!template id=plugin name=img author="Christian Mock"]]
[[!tag type/chrome]]
This is an image handling plugin. While ikiwiki supports inlining full-size
This plugin implements the [[ikiwiki/directive/img]] [[ikiwiki/directive]].
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.
@ -11,33 +12,3 @@ This plugin uses the [ImageMagick](http://www.imagemagick.org/) tools via
Note that this is a stripped down version of Christian Mock's
[[original_img_plugin|contrib/img]].
## 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

@ -1,10 +1,5 @@
[[!template id=plugin name=inline core=1 author="[[Joey]]"]]
This plugin implements the [[ikiwiki/directive/inline]] [[ikiwiki/directive]].
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.
inside another.

View File

@ -1,29 +1,7 @@
[[!template id=plugin name=linkmap author="[[Joey]]"]]
[[!tag type/meta]]
[[!tag type/slow]]
This plugin 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)"]]
"""]]
This plugin implements the [[ikiwiki/directive/linkmap]] [[ikiwiki/directive]].
The directive uses [graphviz](http://www.graphviz.org/) to generate a graph showing the links between a
set of pages in the wiki.

View File

@ -1,21 +1,9 @@
[[!template id=plugin name=listdirectives author="Will"]]
[[!tag type/meta]]
This plugin generates a list of available
[[directives|ikiwiki/directive]].
\[[!listdirectives]]
This plugin implements the [[ikiwiki/directive/linkmap]] [[ikiwiki/directive]].
The linkmap directive inserts a list of currently available directives into the page.
Each directive links to a wiki page with the same name. The location of the
pages in the wiki can be controlled via the `directive_description_dir`
setting in the setup file.
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

@ -1,24 +1,5 @@
[[!template id=plugin name=map author="Alessandro Dotti Contra"]]
[[!tag type/meta]]
This plugin 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 !*/*/*"`
[[!if test="enabled(map)" then="""
Here's an example map, for the plugins section of this wiki:
[[!map pages="(plugins or plugins/*) and !*/*/*"]]
"""]]
This plugin implements the [[ikiwiki/directive/map]] [[ikiwiki/directive]].
The directive generates a hierarchical page map for the wiki.

View File

@ -1,146 +1,5 @@
[[!template id=plugin name=meta author="[[Joey]]"]]
[[!tag type/meta]]
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 [[htmlscrubber]] 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 [[htmlscrubber]] 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|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 [[htmlscrubber]] is enabled, since it can be used to
insert unsafe content.
This plugin implements the [[ikiwiki/directive/meta]] [[ikiwiki/directive]].
The directive allows inserting arbitrary metadata into the source of a page.

View File

@ -1,15 +1,6 @@
[[!template id=plugin name=more author="Ben"]]
[[!tag type/format]]
This plugin 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.
This plugin implements the [[ikiwiki/directive/more]] [[ikiwiki/directive]].
The directive provides a way to have a "more" link on a page in a blog, that
leads to the full version of the page.

View File

@ -1,20 +1,6 @@
[[!template id=plugin name=orphans author="[[Joey]]"]]
[[!tag type/meta]]
This plugin generates a list of possibly orphaned pages -- pages that no
This plugin implements the [[ikiwiki/directive/orphans]] [[ikiwiki/directive]].
The 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

@ -1,14 +1,5 @@
[[!template id=plugin name=pagecount author="[[Joey]]"]]
[[!tag type/meta]]
Provides a \\[[!pagecount ]] [[ikiwiki/directive]] that is
replaced with the total number of 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.
This plugin is included in ikiwiki, but is not enabled by default.
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.
This plugin implements the [[ikiwiki/directive/pagecount]] [[ikiwiki/directive]].
The directive displays number of pages currently in the wiki.

View File

@ -1,14 +1,5 @@
[[!template id=plugin name=pagestats author="Enrico Zini"]]
[[!tag type/meta type/tags]]
This plugin 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"]]
This plugin implements the [[ikiwiki/directive/pagestats]] [[ikiwiki/directive]].
The directive can generate stats about how pages link to each other.

View File

@ -1,14 +1,10 @@
[[!template id=plugin name=pagetemplate author="[[Joey]]"]]
[[!tag type/chrome]]
This plugin allows a page to be created using a different
[[template|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 [[template]] plugin, which allows inserting templates
_into_ the body of a page.
This plugin implements the [[ikiwiki/directive/pagetemplate]] [[ikiwiki/directive]].
The directive allows a page to be created using a different
[[template|wikitemplates]].
This plugin can only use templates that are already installed in
/usr/share/ikiwiki/templates (or wherever ikiwiki is configured to look for
them). You can choose to use any .tmpl files in that directory. Example:
\[[!pagetemplate template=my_fancy.tmpl]]
them). You can choose to use any .tmpl files in that directory.

View File

@ -7,14 +7,7 @@ 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.
See the [[ikiwiki/directive/ping]] [[ikiwiki/directive]] page for usage details.
The [[!cpan LWP]] perl module is used for pinging. Or the [[!cpan
LWPx::ParanoidAgent]] perl module is used if available, for added security.

View File

@ -1,24 +1,5 @@
[[!template id=plugin name=poll author="[[Joey]]"]]
[[!tag type/useful]]
This plugin 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".
This plugin implements the [[ikiwiki/directive/poll]] [[ikiwiki/directive]].
The directive allows you to create online polls in the wiki.

View File

@ -1,29 +1,5 @@
[[!template id=plugin name=polygen author="Enrico Zini"]]
[[!tag type/fun]]
This plugin 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>
"""]]
This plugin implements the [[ikiwiki/directive/polygen]] [[ikiwiki/directive]].
The directive allows inserting text generated by polygen into a wiki page.

View File

@ -1,48 +1,10 @@
[[!template id=plugin name=postsparkline author="[[Joey]]"]]
[[!tag type/chrome]]
This plugin uses the [[sparkline]] plugin to create a sparkline of
This plugin implements the [[ikiwiki/directive/postsparkline]] [[ikiwiki/directive]].
It uses the [[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".
# adding formulae
Additional formulae can be added without modifying this plugin by writing

View File

@ -1,19 +1,5 @@
[[!template id=plugin name=progress author="[[Will]]"]]
[[!tag type/meta]]
Provides a \\[[!progress ]] [[ikiwiki/directive]] that displays a
progress bar.
There are two possible parameter sets. The first is a single parameter
`percent` which holds a percentage figure for how complete the progress bar is.
The second possible set of parameters is a pair of [PageSpecs|[ikiwiki/PageSpec]],
`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"]]
This plugin implements the [[ikiwiki/directive/progress]] [[ikiwiki/directive]].
The directive that displays a progress bar.

View File

@ -1,7 +1,8 @@
[[!template id=plugin name=shortcut author="[[Joey]]"]]
[[!tag type/format]]
This plugin allows external links to commonly linked to sites to be made
This plugin implements the [[ikiwiki/directive/shortcut]] [[ikiwiki/directive]].
It 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

View File

@ -1,9 +1,8 @@
[[!template id=plugin name=sparkline author="[[Joey]]"]]
[[!tag type/chrome]]
This plugin allows for easily embedding sparklines into wiki pages. A
sparkline is a small word-size graphic chart, that is designed to be
inlined alongside text.
This plugin implements the [[ikiwiki/directive/sparkline]] [[ikiwiki/directive]].
The directive allows for easily embedding sparklines into wiki pages.
# requirements
@ -22,55 +21,3 @@ On a Debian system, this can be accomplished by installing these packages:
This plugin also uses the [[!cpan Digest::SHA1]] perl module.
# 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

@ -1,46 +1,8 @@
[[!template id=plugin name=table author="[[VictorMoral]]"]]
[[!tag type/format]]
This plugin can build HTML tables from data in CSV (comma-separated values)
This plugin implements the [[ikiwiki/directive/table]] [[ikiwiki/directive]].
The directive can build HTML tables from data in CSV (comma-separated values)
or DSV (delimiter-separated values) format.
It needs the perl module [[!cpan Text::CSV]] for the CSV data.
## 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

@ -1,21 +1,9 @@
[[!template id=plugin name=tag author="[[Joey]]"]]
[[!tag type/tags type/link]]
This plugin 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 implements the [[ikiwiki/directive/tag]] and
[[ikiwiki/directive/taglink]] [[ikiwiki/directive]]s.
These directives allow tagging pages.
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
@ -23,14 +11,3 @@ 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

@ -1,6 +1,7 @@
[[!template id=plugin name=template author="[[Joey]]"]]
[[!tag type/format]]
This plugin implements the [[ikiwiki/directive/template]] [[ikiwiki/directive]].
With this plugin, you can set up templates, and cause them to be filled out
and inserted into pages in the wiki. It's documented and existing templates
are listed in the [[templates]] page.

View File

@ -1,23 +1,6 @@
[[!template id=plugin name=testpagespec author="[[Joey]]"]]
[[!tag type/useful]]
This plugin allows testing a [[ikiwiki/PageSpec]] to see if it matches a
This plugin implements the [[ikiwiki/directive/testpagespec]] [[ikiwiki/directive]].
The 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

@ -1,32 +1,10 @@
[[!template id=plugin name=teximg author="[[PatrickWinnertz]]"]]
[[!tag type/chrome type/slow]]
This plugin renders LaTeX formulas into images.
This plugin implements the [[ikiwiki/directive/teximg]] [[ikiwiki/directive]].
The directive renders LaTeX formulas into images.
Of course you will need LaTeX installed for this to work. The plugin
also uses mhchem.sty, which in Debian is in the texlive-science package and
may not be part of a regular texlive installation.
## examples
\[[!teximg code="\ce{[Cu(NH3)3]^{2+}}"]]
\[[!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="\ce{[Cu(NH3)3]^{2+}}" height="17"]]
\[[!teximg code="\ce{[Cu(NH3)3]^{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.
Of course you will need LaTeX installed for this to work.
## configuration

View File

@ -1,20 +1,5 @@
[[!template id=plugin name=toc author="[[Joey]]"]]
[[!tag type/chrome]]
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 plugin 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.
This plugin implements the [[ikiwiki/directive/toc]] [[ikiwiki/directive]].
The directive adds table of contents to a page.

View File

@ -1,33 +1,7 @@
[[!template id=plugin name=toggle author="[[Joey]]"]]
[[!tag type/chrome]]
With this plugin you can create links on pages that, when clicked, toggle
This plugin implements the [[ikiwiki/directive/toggle]] and
[[ikiwiki/directive/toggleable]] [[ikiwiki/directive]]s.
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

@ -1,11 +1,5 @@
[[!template id=plugin name=version author="[[Joey]]"]]
[[!tag type/useful]]
This plugin 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 ]]
This plugin implements the [[ikiwiki/directive/version]] [[ikiwiki/directive]].
It inserts the version of ikiwiki into a page.