-[[template id=plugin name=amazon_s3 author="[[Joey]]"]]
-[[tag type/special-purpose]]
+[[!template id=plugin name=amazon_s3 author="[[Joey]]"]]
+[[!tag type/special-purpose]]
This plugin allows ikiwiki to publish a wiki in the [Amazon Simple Storage
Service](http://aws.amazon.com/s3) (S3). As pages are rendered, ikiwiki
will upload them to Amazon S3. The entire wiki contents, aside from the
ikiwiki CGI, can then be served directly out of Amazon S3.
-You'll need the [[cpan Net::Amazon::S3]] and [[cpan File::MimeInfo]] perl
+You'll need the [[!cpan Net::Amazon::S3]] and [[!cpan File::MimeInfo]] perl
modules and an Amazon S3 account to use this plugin.
## configuration
-[[template id=plugin name=anonok author="[[Joey]]"]]
-[[tag type/auth]]
+[[!template id=plugin name=anonok author="[[Joey]]"]]
+[[!tag type/auth]]
By default, anonymous users cannot edit the wiki. This plugin allows
anonymous web users, who have not signed in, to edit any page in the wiki
-[[template id=plugin name=attachment core=0 author="[[Joey]]"]]
-[[tag type/useful]]
+[[!template id=plugin name=attachment core=0 author="[[Joey]]"]]
+[[!tag type/useful]]
This plugin allows files to be uploaded to the wiki over the web.
[[enhanced_PageSpec|ikiwiki/pagespec/attachment]] in the "Allowed
Attachments" field of the wiki admin's preferences page.
-This plugin will use the [[cpan File::MimeInfo::Magic]] perl module, if
+This plugin will use the [[!cpan File::MimeInfo::Magic]] perl module, if
available, for mimetype checking.
The `virusfree` [[PageSpec|ikiwiki/pagespec/attachment]] requires that
-[[template id=plugin name=brokenlinks author="[[Joey]]"]]
-[[tag type/link type/meta]]
+[[!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
If this plugin is turned on, here's a list of broken links on this wiki:
-[[brokenlinks pages="* and !recentchanges"]]
+[[!brokenlinks pages="* and !recentchanges"]]
-[[template id=plugin name=calendar author="[[ManojSrivastava]]"]]
-[[tag type/chrome]]
+[[!template id=plugin name=calendar author="[[ManojSrivastava]]"]]
+[[!tag type/chrome]]
This plugin displays a calendar, similar to the typical calendars shown on
some blogs.
-[[template id=plugin name=camelcase author="[[Joey]]"]]
+[[!template id=plugin name=camelcase author="[[Joey]]"]]
This plugin makes words in CamelCase be treated as a [[ikiwiki/WikiLink]].
That is to say, any two or more words capitalised and mashed together are
If this plugin is enabled, this will be a link: SandBox
-[[tag type/link]]
+[[!tag type/link]]
-[[template id=plugin name=conditional core=1 author="[[Joey]]"]]
-[[tag type/format]]
+[[!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:
> The blank lines in this example are coming from the newline after `then="`, and also from the newline before the close quote. If you remove those newlines, I think it should work. --[[Joey]]
>> No, that's unfortunately not it, see here:
->> [[if test="enabled(trallala)" then="foot"]]
+>> [[!if test="enabled(trallala)" then="foot"]]
>> Continued. But on the other
->> [[if test="enabled(trallala)" then="foot" else="hand:"]]
+>> [[!if test="enabled(trallala)" then="foot" else="hand:"]]
>> Continued. --[[tschwinge]]
>>> Seems ok, no? The only linebreaks I see in the source are the ones you
>>>> Okay, that would explain the linebreak between 1 and 3. But then, why are all linebreaks removed between 3 and 5?
>>>> 1 No, that's unfortunately not it, see here:
->>>> [[if test="enabled(trallala)" then="foot"]]
+>>>> [[!if test="enabled(trallala)" then="foot"]]
>>>> 3 Continued. But on the other
->>>> [[if test="enabled(trallala)" then="foot" else="hand:"]]
+>>>> [[!if test="enabled(trallala)" then="foot" else="hand:"]]
>>>> 5 Continued. --[[tschwinge]]
>>>>> The conditional after 1 evaluates to "", so there's a blank line
(See [[install]] for installation help.)
-[[inline pages="plugins/contrib/* !*/Discussion"
+[[!inline pages="plugins/contrib/* !*/Discussion"
feedpages="created_after(plugins/contrib/navbar)" archive="yes"
rootpage="plugins/contrib" postformtext="Add a new plugin named:" show=0]]
-[[template id=plugin name=attach author="[[Ben]]"]]
+[[!template id=plugin name=attach author="[[Ben]]"]]
**Note: This plugin is currently pending upload. It is also most assuredly beta.**
-[[template id=plugin name=copyright author="[[tschwinge]]"]]
-[[template id=plugin name=license author="[[tschwinge]]"]]
+[[!template id=plugin name=copyright author="[[tschwinge]]"]]
+[[!template id=plugin name=license author="[[tschwinge]]"]]
-[[meta title="default content for *copyright* and *license*"]]
+[[!meta title="default content for *copyright* and *license*"]]
Someone was just asking for it and I had written these two plugins already some months ago,
so I'm now publishing them here.
-[[template id=plugin name=gallery author="[[arpitjain]]"]]
+[[!template id=plugin name=gallery author="[[arpitjain]]"]]
This plugin would create a nice looking gallery of the images. It has been build over the img plugin in Ikiwiki
-- [[arpitjain]]
-[[tag plugins]] [[tag patch]] [[tag soc]] [[tag wishlist]]
+[[!tag plugins]] [[!tag patch]] [[!tag soc]] [[!tag wishlist]]
However, I can't even get simply things like this to work:
$ cat web/index.mdwn
- [[gallery imagedir="b" vcs="0"]]
+ [[!gallery imagedir="b" vcs="0"]]
$ ls web/b/
1.jpg 2.jpg 3.jpg 4.jpg
$ ikiwiki [...] --plugin gallery web web.rendered
[...]
$ grep gallery web.rendered/index.html
- <p>[[gallery Failed to Read Directory b.]]</p>
+ <p>[[!gallery Failed to Read Directory b.]]</p>
When using `vcs="1"` it's no better:
Its probably because of the restriction of permissions by plugins in newer version of IkiWiki.
For the time being, you can turn resizing off till I look into conditional underlay directory feature.
-USAGE : [[gallery imagedir="directory" resize="0"]]
+USAGE : [[!gallery imagedir="directory" resize="0"]]
New version updated at SVN REPO : http://ned.snow-crash.org:8080/svn/ikiwiki-gallery/
-[[template id=plugin name=googlemaps author="Christian Mock"]]
-[[tag type/special-purpose todo/geotagging]]
+[[!template id=plugin name=googlemaps author="Christian Mock"]]
+[[!tag type/special-purpose todo/geotagging]]
`googlemaps` is a plugin that allows using the [Google Maps API][2]
from ikiwiki.
-[[template id=plugin name=headinganchors author="[[PaulWise]]"]]
+[[!template id=plugin name=headinganchors author="[[PaulWise]]"]]
This is a simple plugin to add ids to all headings, based on their text. It
works as a postprocessing filter, allowing it to work on mdwn, wiki, html,
-[[template id=plugin name=img author="Christian Mock"]]
-[[tag type/chrome]]
+[[!template id=plugin name=img author="Christian Mock"]]
+[[!tag type/chrome]]
`img` is an enhanced image handling plugin.
-[[template id=plugin name=linguas author="Jordà Polo"]]
+[[!template id=plugin name=linguas author="Jordà Polo"]]
Linguas
=======
-[[template id=plugin name=navbar author="[[TobiOetiker]]"]]
+[[!template id=plugin name=navbar author="[[TobiOetiker]]"]]
The Navbar Plugin renders a Navigation Bar into your page. It is based on code
from the [[sidebar_plugin|plugins/sidebar]].
-[[template id=plugin name=sar author="[[VictorMoral]]"]]
-[[tag type/chrome type/slow ]]
+[[!template id=plugin name=sar author="[[VictorMoral]]"]]
+[[!tag type/chrome type/slow ]]
The `sar` plugin is useful to make global or local search and replace operations
using common or specific terms.
## Sites and projects
- - [[sar search="ikiwiki" first="[IkiWiki](http://ikiwiki.info)" next="_IkiWiki_"]]
- - [[sar search="debian" first="[Debian](http://debian.org)" next="_Debian_"]]
- - [[sar search="perl" first="[Perl](http://perl.org)" next="_Perl_"]]
- - [[sar search="linux" replace="GNU/Linux"]]
+ - [[!sar search="ikiwiki" first="[IkiWiki](http://ikiwiki.info)" next="_IkiWiki_"]]
+ - [[!sar search="debian" first="[Debian](http://debian.org)" next="_Debian_"]]
+ - [[!sar search="perl" first="[Perl](http://perl.org)" next="_Perl_"]]
+ - [[!sar search="linux" replace="GNU/Linux"]]
## Persons
- - [[sar search="joey" first="[Joey Hess](http://ikiwiki.info/users/joey]]" next="_Joey_" ]]
- - [[sar search="angel" first="[Angel](http://triptico.com)" next="Angel"]]
+ - [[!sar search="joey" first="[Joey Hess](http://ikiwiki.info/users/joey]]" next="_Joey_" ]]
+ - [[!sar search="angel" first="[Angel](http://triptico.com)" next="Angel"]]
## Technical terms
- - [[sar search="smtp" first="\[[wp SMTP]]" next="‘SMTP‘"]]
- - [[sar search="pop3" first="\[[wp POP3]]" next="’POP3’"]]
+ - [[!sar search="smtp" first="\[[wp SMTP]]" next="‘SMTP‘"]]
+ - [[!sar search="pop3" first="\[[wp POP3]]" next="’POP3’"]]
The search expressions must be surrounded by double dashes in a source ikiwiki
page, like this:
-[[template id=plugin name=siterel2pagerel author="[[PaulWise]]"]]
+[[!template id=plugin name=siterel2pagerel author="[[PaulWise]]"]]
This is a simple plugin to convert all site-relative links to page-relative
links (converts /foo into ../../../foo or similar). It works as a
-[[template id=plugin name=syntax author="[[VictorMoral]]"]]
-[[tag type/chrome type/slow]]
+[[!template id=plugin name=syntax author="[[VictorMoral]]"]]
+[[!tag type/chrome type/slow]]
-The `syntax` plugin adds support to ikiwiki for syntax highlighting through the *vim* editor and its perl interface [[cpan Text::VimColor]]. It depends on a functional vim installation.
+The `syntax` plugin adds support to ikiwiki for syntax highlighting through the *vim* editor and its perl interface [[!cpan Text::VimColor]]. It depends on a functional vim installation.
The plugin inserts a fragment of HTML with special marks from a file or a string text. It accepts the following parameters:
-[[template id=plugin name=texinfo author="[[tschwinge]]"]]
+[[!template id=plugin name=texinfo author="[[tschwinge]]"]]
[[I|tschwinge]] started writing a plugin to render
[GNU Texinfo](http://www.gnu.org/software/texinfo/)
-[[template id=plugin name=creole author="BerndZeimetz"]]
-[[tag type/format]]
+[[!template id=plugin name=creole author="BerndZeimetz"]]
+[[!tag type/format]]
This plugin allows ikiwiki to process pages written in
[WikiCreole](http://www.wikicreole.org/) format.
-To use it, you need to have the [[cpan Text::WikiCreole]] perl
+To use it, you need to have the [[!cpan Text::WikiCreole]] perl
module installed, enable the plugin, then files with the extention `.creole`
will be processed as creole.
-[[template id=plugin name=ddate author="[[Joey]]"]]
-[[tag type/fun]]
+[[!template id=plugin name=ddate author="[[Joey]]"]]
+[[!tag type/fun]]
Enables use of Discordian dates. `--timeformat` can be used to change
the date format; see `ddate(1)`.
-This plugin requires the [[cpan DateTime]] and
-[[cpan DateTime::Calendar::Discordian]] perl modules.
+This plugin requires the [[!cpan DateTime]] and
+[[!cpan DateTime::Calendar::Discordian]] perl modules.
-[[template id=plugin name=editdiff author="[[JeremieKoenig]]"]]
-[[tag type/useful]]
+[[!template id=plugin name=editdiff author="[[JeremieKoenig]]"]]
+[[!tag type/useful]]
This plugin adds a "Diff" button when a page is being edited.
When clicked, a diff between the stored page and provided content
-[[template id=plugin name=edittemplate author="[[Joey]]"]]
-[[tag type/useful]]
+[[!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
Reproducible: y/n
Details:
-The template page can also contain [[cpan HTML::Template]] directives,
+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.
-[[template id=plugin name=embed author="[[Joey]]"]]
-[[tag type/html]]
+[[!template id=plugin name=embed author="[[Joey]]"]]
+[[!tag type/html]]
This plugin allows embedding content from external sites on
wiki pages.
-[[template id=plugin name=favicon author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!template id=plugin name=favicon author="[[Joey]]"]]
+[[!tag type/chrome]]
If this plugin is enabled, then an icon link is added to pages, for web
browsers to display. The icon is currently hardcoded to be a favicon.ico,
-[[template id=plugin name=fortune author="[[Joey]]"]]
-[[tag type/fun]]
+[[!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="""
+[[!if test="enabled(fortune)" then="""
Here's a fortune for you:
----
-[[fortune ]]
+[[!fortune ]]
"""]]
-[[template id=plugin name=goodstuff author="[[Joey]]"]]
-[[tag type/bundle]]
+[[!template id=plugin name=goodstuff author="[[Joey]]"]]
+[[!tag type/bundle]]
This plugin enables a bunch of other plugins -- basically all the ones that
are not too intrusive, work well with little configuration, and are nice to
-[[template id=plugin name=googlecalendar author="[[Joey]]"]]
-[[tag type/special-purpose]]
+[[!template id=plugin name=googlecalendar author="[[Joey]]"]]
+[[!tag type/special-purpose]]
*Note*: This plugin is deprecated. Please switch to the [[embed]] plugin.
-[[template id=plugin name=graphviz author="[[JoshTriplett]]"]]
-[[tag type/chrome type/format]]
+[[!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
+[[!wikipedia data: URI]] support, or if the same graph already exists on that
page.
Security implications: graphviz does not seem to have any syntax exploitable to
in inches. You must specify both to limit the size; otherwise, graphviz will
choose a size, without any limit.
-[[if test="enabled(graphviz)" then="""
+[[!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"]]
+[[!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.
+This plugin uses the [[!cpan Digest::SHA1]] perl module.
-[[template id=plugin name=haiku author="[[Joey]]"]]
-[[tag type/fun]]
+[[!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"]]
+[[!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
-[[template id=plugin name=hnb author="[[XTaran]]"]]
-[[tag type/format type/slow]]
+[[!template id=plugin name=hnb author="[[XTaran]]"]]
+[[!tag type/format type/slow]]
This plugin allows ikiwiki to process `.hnb` XML files, as created by
the Hierachical Notebook [hnb](http://hnb.sourceforge.net/). To use it, you need to have
-[[template id=plugin name=html author="[[Joey]]"]]
-[[tag type/html type/format]]
+[[!template id=plugin name=html author="[[Joey]]"]]
+[[!tag type/html type/format]]
This plugin lets html pages be used as source pages for the wiki. The
html pages will still be wrapped in the same html template as any other
-[[template id=plugin name=htmlscrubber core=1 author="[[Joey]]"]]
-[[tag type/html]]
+[[!template id=plugin name=htmlscrubber core=1 author="[[Joey]]"]]
+[[!tag type/html]]
This plugin is enabled by default. It sanitizes the html on pages it renders
to avoid XSS attacks and the like.
that the url is in a known, safe scheme, and to block embedded javascript
in such urls.
-It uses the [[cpan HTML::Scrubber]] perl module to perform its html
+It uses the [[!cpan HTML::Scrubber]] perl module to perform its html
sanitisation, and this perl module also deals with various entity encoding
tricks.
-[[template id=plugin name=htmltidy author="Faidon Liambotis"]]
-[[tag type/html]]
-[[tag type/slow]]
+[[!template id=plugin name=htmltidy author="Faidon Liambotis"]]
+[[!tag type/html]]
+[[!tag type/slow]]
This plugin uses [tidy](http://tidy.sourceforge.net/) to tidy up the html
emitted by ikiwiki. Besides being nicely formatted, this helps ensure that
-[[template id=plugin name=httpauth author="Alec Berryman"]]
-[[tag type/auth]]
+[[!template id=plugin name=httpauth author="Alec Berryman"]]
+[[!tag type/auth]]
This plugin allows HTTP basic authentication to be used to log into the
wiki. To use the plugin, your web server should be set up to perform HTTP
-[[template id=plugin name=img author="Christian Mock"]]
-[[tag type/chrome]]
+[[!template id=plugin name=img author="Christian Mock"]]
+[[!tag type/chrome]]
This is an image handling plugin. While ikiwiki supports inlining full-size
images by making a [[ikiwiki/WikiLink]] that points to the image, using
-[[template id=plugin name=inline core=1 author="[[Joey]]"]]
+[[!template id=plugin name=inline core=1 author="[[Joey]]"]]
This is a [[ikiwiki/PreProcessorDirective]] that allows including one wiki page
inside another. For example:
-[[meta title="Installing third party plugins"]]
+[[!meta title="Installing third party plugins"]]
Most ikiwiki plugins are perl modules and should be installed somewhere in
the perl module search path. See the @INC list at the end of the output of
-[[template id=plugin name=link core=1 author="[[Joey]]"]]
-[[tag type/link]]
+[[!template id=plugin name=link core=1 author="[[Joey]]"]]
+[[!tag type/link]]
This plugin implements standard [[WikiLinks|WikiLink]].
-[[template id=plugin name=linkmap author="[[Joey]]"]]
-[[tag type/meta]]
-[[tag type/slow]]
+[[!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:
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="""
+[[!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)"]]
+[[!linkmap pages="index or (backlink(index) and !*.png)"]]
"""]]
-[[template id=plugin name=lockedit core=1 author="[[Joey]]"]]
-[[tag type/auth]]
+[[!template id=plugin name=lockedit core=1 author="[[Joey]]"]]
+[[!tag type/auth]]
This plugin enables [[page_locking]]. It is enabled by default.
-[[template id=plugin name=map author="Alessandro Dotti Contra"]]
-[[tag type/meta]]
+[[!template id=plugin name=map author="Alessandro Dotti Contra"]]
+[[!tag type/meta]]
-[[meta description="some page description"]]
+[[!meta description="some page description"]]
This plugin generates a hierarchical page map for the wiki. Example usage:
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="""
+[[!if test="enabled(map)" then="""
Here's an example map, for the plugins section of this wiki:
[[!map pages="(plugins or plugins/*) and !*/*/*"]]
We'd also very much like to have an option to display the title of the page instead of the filename in the map plugin. --Andrew
-There's a patch implementing this in [[debbug 484510]]. It needs a few fixes
+There's a patch implementing this in [[!debbug 484510]]. It needs a few fixes
before I merge it. Now applied. --[[Joey]]
-[[template id=plugin name=mdwn core=1 author="[[Joey]]"]]
-[[tag type/format]]
+[[!template id=plugin name=mdwn core=1 author="[[Joey]]"]]
+[[!tag type/format]]
This plugin lets ikwiki convert files with names ending in ".mdwn" to html.
It uses the [[ikiwiki/markdown]] minimal markup language.
There are several implementations of markdown support that can be used by
this plugin. The [original version of
markdown](http://daringfireball.net/projects/markdown/) can be used, or the
-[[cpan Text::Markdown]] perl module.
+[[!cpan Text::Markdown]] perl module.
-[[cpan Text::Markdown]] also includes a markdown variant called
+[[!cpan Text::Markdown]] also includes a markdown variant called
[multimarkdown](http://fletcherpenney.net/MultiMarkdown/), which supports
tables, footnotes, and other new features. Multimarkdown is not enabled by
default, but can be turned on via the `multimarkdown` option in the setup
-[[template id=plugin name=meta author="[[Joey]]"]]
-[[tag type/meta]]
+[[!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:
* date
Specifies the creation date of the page. The date can be entered in
- nearly any format, since it's parsed by [[cpan TimeDate]].
+ nearly any format, since it's parsed by [[!cpan TimeDate]].
* stylesheet
-[[template id=plugin name=mirror author="[[Joey]]"]]
-[[tag type/special-purpose]]
+[[!template id=plugin name=mirror author="[[Joey]]"]]
+[[!tag type/special-purpose]]
This plugin allows adding links a list of mirrors to each page in the
wiki. For each mirror, a name and an url should be specified. Pages are
-[[template id=plugin name=more author="Ben"]]
-[[tag type/format]]
+[[!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:
-[[template id=plugin name=opendiscussion author="[[Joey]]"]]
-[[tag type/auth]]
+[[!template id=plugin name=opendiscussion author="[[Joey]]"]]
+[[!tag type/auth]]
This plugin allows editing of Discussion pages by anonymous users who have
not logged into the wiki.
-[[template id=plugin name=openid core=1 author="[[Joey]]"]]
-[[tag type/auth]]
+[[!template id=plugin name=openid core=1 author="[[Joey]]"]]
+[[!tag type/auth]]
This plugin allows users to use their [OpenID](http://openid.net/) to log
into the wiki.
-The plugin needs the [[cpan Net::OpenID::Consumer]] perl module. The
-[[cpan LWPx::ParanoidAgent]] perl module is used if available, for added
-security. Finally, the [[cpan Crypt::SSLeay]] perl module is needed to support
+The plugin needs the [[!cpan Net::OpenID::Consumer]] perl module. The
+[[!cpan LWPx::ParanoidAgent]] perl module is used if available, for added
+security. Finally, the [[!cpan Crypt::SSLeay]] perl module is needed to support
users entering "https" OpenID urls.
This plugin has a configuration option. You can set `--openidsignup`
-[[template id=plugin name=orphans author="[[Joey]]"]]
-[[tag type/meta]]
+[[!template id=plugin name=orphans author="[[Joey]]"]]
+[[!tag type/meta]]
This plugin generates a list of possibly orphaned pages -- pages that no
other page links to.
page as linking to it, so will generally count many blog-type pages as
orphans.
-[[if test="enabled(orphans)" then="""
+[[!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
+[[!orphans pages="* and !news/* and !todo/* and !bugs/* and !users/* and
!recentchanges and !examples/* and !tips/* and !sandbox/* and !templates/* and
!wikiicons/* and !plugins/*"]]
"""]]
-[[template id=plugin name=otl author="[[Joey]]"]]
-[[tag type/format]]
+[[!template id=plugin name=otl author="[[Joey]]"]]
+[[!tag type/format]]
This plugin allows ikiwiki to process `.otl` outline files, as created by
[vimoutliner](http://www.vimoutliner.org/). To use it, you need to have
-[[template id=plugin name=pagecount author="[[Joey]]"]]
-[[tag type/meta]]
+[[!template id=plugin name=pagecount author="[[Joey]]"]]
+[[!tag type/meta]]
Provides a \\[[pagecount ]] [[ikiwiki/PreProcessorDirective]] that is
replaced with the total number of pages currently in the wiki.
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.
+[[!pagecount pages="* and !recentchanges"]]
+pages, of which [[!pagecount pages="*/Discussion"]] are discussion pages.
-[[template id=plugin name=pagestats author="Enrico Zini"]]
-[[tag type/meta type/tags]]
+[[!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
-[[template id=plugin name=pagetemplate author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!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
-[[template id=plugin name=passwordauth core=1 author="[[Joey]]"]]
-[[tag type/auth]]
+[[!template id=plugin name=passwordauth core=1 author="[[Joey]]"]]
+[[!tag type/auth]]
This plugin lets ikiwiki prompt for a user name and password when logging
into the wiki. It also handles registering users, resetting passwords, and
Users' passwords are stored in the `.ikiwiki/userdb` file, which needs to
be kept safe to prevent exposure of passwords. If the
-[[cpan Authen::Passphrase]] perl module is installed, only hashes of the
+[[!cpan Authen::Passphrase]] perl module is installed, only hashes of the
passwords will be stored. This is strongly recommended.
The `password_cost` configuration option can be used to make the stored
-[[template id=plugin name=pingee author="[[Joey]]"]]
-[[tag type/special-purpose]]
+[[!template id=plugin name=pingee author="[[Joey]]"]]
+[[!tag type/special-purpose]]
This plugin causes ikiwiki to listen for pings, typically delivered from
another ikiwiki instance using the [[pinger]] plugin. When a ping is
-[[template id=plugin name=pinger author="[[Joey]]"]]
-[[tag type/special-purpose]]
+[[!template id=plugin name=pinger author="[[Joey]]"]]
+[[!tag type/special-purpose]]
This plugin 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 [[pingee]]
The "to" parameter is the url to ping. The example shows how to ping
another ikiwiki instance.
-The [[cpan LWP]] perl module is used for pinging. Or the [[cpan
+The [[!cpan LWP]] perl module is used for pinging. Or the [[!cpan
LWPx::ParanoidAgent]] perl module is used if available, for added security.
-Finally, the [[cpan Crypt::SSLeay]] perl module is needed to support pinging
+Finally, the [[!cpan Crypt::SSLeay]] perl module is needed to support pinging
"https" urls.
By default the pinger will try to ping a site for 15 seconds before timing
-[[template id=plugin name=poll author="[[Joey]]"]]
-[[tag type/useful]]
+[[!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:
-[[template id=plugin name=polygen author="Enrico Zini"]]
-[[tag type/fun]]
+[[!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:
It's also possible to specify a starting nonterminal for the grammar by
including `symbol="text"` in the directive.
-[[if test="enabled(polygen)" then="""
+[[!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 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>
+<li>[[!polygen grammar="reviews"]]</li>
+<li>[[!polygen grammar="reviews"]]</li>
+<li>[[!polygen grammar="reviews"]]</li>
</ul>
"""]]
-[[template id=plugin name=postsparkline author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!template id=plugin name=postsparkline author="[[Joey]]"]]
+[[!tag type/chrome]]
This plugin uses the [[sparkline]] plugin to create a sparkline of
statistics about a set of pages, such as posts to a blog.
-[[template id=plugin name=prettydate author="[[Joey]]"]]
-[[tag type/format]]
+[[!template id=plugin name=prettydate author="[[Joey]]"]]
+[[!tag type/format]]
Enabling this plugin changes the dates displayed on pages in the wiki to
a format that is nice and easy to read. Examples: "late Wednesday evening,
configuration variable in the setup file. `%X` will be expanded to the
prettified time value. The default prettydateformat is `"%X, %B %o, %Y"`.
-This plugin uses the [[cpan TimeDate]] perl module.
+This plugin uses the [[!cpan TimeDate]] perl module.
-[[template id=plugin name=rawhtml author="[[Joey]]"]]
-[[tag type/html type/format]]
+[[!template id=plugin name=rawhtml author="[[Joey]]"]]
+[[!tag type/html type/format]]
This plugin changes how ikiwiki handles html files, making it treat html
or xhtml files not as source files but as data files that are copied
-[[template id=plugin name=recentchanges core=1 author="[[Joey]]"]]
+[[!template id=plugin name=recentchanges core=1 author="[[Joey]]"]]
This plugin examines the [[revision_control_system|rcs]] history and
generates a page describing each recent change made to the wiki. These
-[[template id=plugin name=recentchangesdiff core=0 author="[[Joey]]"]]
+[[!template id=plugin name=recentchangesdiff core=0 author="[[Joey]]"]]
This plugin extends the [[recentchanges]] plugin, adding a diff for each
change. The diffs are by default hidden from display on the recentchanges
-[[template id=plugin name=rst author="martin f. krafft"]]
-[[tag type/format]]
+[[!template id=plugin name=rst author="martin f. krafft"]]
+[[!tag type/format]]
This plugin lets ikwiki convert files with names ending in ".rst" to html.
It uses the [reStructuredText](http://docutils.sourceforge.net/rst.html)
-markup syntax. You need to have [[cpan RPC::XML]], python and the
+markup syntax. You need to have [[!cpan RPC::XML]], python and the
python-docutils module installed to use it.
Note that this plugin does not interoperate very well with the rest of
-[[template id=plugin name=search author="[[Joey]]"]]
-[[tag type/useful]]
+[[!template id=plugin name=search author="[[Joey]]"]]
+[[!tag type/useful]]
This plugin adds full text search to ikiwiki, using the
[xapian](http://xapian.org/) engine, its
[omega](http://xapian.org/docs/omega/overview.html) frontend, and the
-[[cpan Search::Xapian]], [[cpan Digest::SHA1]], and [[cpan HTML::Scrubber]]
+[[!cpan Search::Xapian]], [[!cpan Digest::SHA1]], and [[!cpan HTML::Scrubber]]
perl modules.
The [[ikiwiki/searching]] page describes how to write search queries.
-[[template id=plugin name=shortcut author="[[Joey]]"]]
-[[tag type/format]]
+[[!template id=plugin name=shortcut author="[[Joey]]"]]
+[[!tag type/format]]
This plugin allows external links to commonly linked to sites to be made
more easily using shortcuts.
-[[template id=plugin name=sidebar author="Tuomo Valkonen"]]
-[[tag type/chrome]]
+[[!template id=plugin name=sidebar author="Tuomo Valkonen"]]
+[[!tag type/chrome]]
If this plugin is enabled, then a sidebar is added to pages in the wiki.
The content of the sidebar is simply the content of a page named
-[[template id=plugin name=signinedit core=1 author="[[Joey]]"]]
-[[tag type/auth]]
+[[!template id=plugin name=signinedit core=1 author="[[Joey]]"]]
+[[!tag type/auth]]
This plugin, which is enabled by default, requires users be logged in
before editing pages in the wiki.
-[[template id=plugin name=smiley author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!template id=plugin name=smiley author="[[Joey]]"]]
+[[!tag type/chrome]]
This plugin makes it easy to insert smileys and other special symbols into
pages in the wiki. The symbols are all listed on the [[smileys]] page,
-[[template id=plugin name=sparkline author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!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
php can find it when `sparkline/Sparkline.php` is required.
* The GD PHP module used by the Sparkline library.
* A "php" program in the path, that can run standalone php programs.
-* [[cpan Digest::SHA1]]
+* [[!cpan Digest::SHA1]]
On a Debian system, this can be accomplished by installing these packages:
`libsparkline-php` `php5-gd` `php5-cli` `libdigest-sha1-perl`
-This plugin also uses the [[cpan Digest::SHA1]] perl module.
+This plugin also uses the [[!cpan Digest::SHA1]] perl module.
# examples
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
+[[!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
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)
+[[!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
-[[template id=plugin name=table author="[[VictorMoral]]"]]
-[[tag type/format]]
+[[!template id=plugin name=table author="[[VictorMoral]]"]]
+[[!tag type/format]]
This plugin 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.
+It needs the perl module [[!cpan Text::CSV]] for the CSV data.
## examples
-[[template id=plugin name=tag author="[[Joey]]"]]
-[[tag type/tags type/link]]
+[[!template id=plugin name=tag author="[[Joey]]"]]
+[[!tag type/tags type/link]]
This plugin allows tagging pages. List tags as follows:
having to write the full path to tags, if you want to keep them grouped
together out of the way.
-[[if test="enabled(tag)" then="""
+[[!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.
"""]]
-[[template id=plugin name=template author="[[Joey]]"]]
-[[tag type/format]]
+[[!template id=plugin name=template author="[[Joey]]"]]
+[[!tag type/format]]
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
-[[template id=plugin name=testpagespec author="[[Joey]]"]]
-[[tag type/useful]]
+[[!template id=plugin name=testpagespec author="[[Joey]]"]]
+[[!tag type/useful]]
This plugin 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.
-[[template id=plugin name=teximg author="[[PatrickWinnertz]]"]]
-[[tag type/chrome type/slow]]
+[[!template id=plugin name=teximg author="[[PatrickWinnertz]]"]]
+[[!tag type/chrome type/slow]]
This plugin renders LaTeX formulas into images.
-[[template id=plugin name=syntax author="mazirian"]]
-[[tag type/format]]
+[[!template id=plugin name=syntax author="mazirian"]]
+[[!tag type/format]]
Textile is a versatile markup language. So here's a plugin that will use the
Textile markup language to render .txtl files in your data directory.
-You must have [[cpan Text::Textile]] installed for it to work.
+You must have [[!cpan Text::Textile]] installed for it to work.
-[[template id=plugin name=toc author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!template id=plugin name=toc author="[[Joey]]"]]
+[[!tag type/chrome]]
Add a table of contents to a page:
-[[template id=plugin name=toggle author="[[Joey]]"]]
-[[tag type/chrome]]
+[[!template id=plugin name=toggle author="[[Joey]]"]]
+[[!tag type/chrome]]
With this plugin you can create links on pages that, when clicked, toggle
display of other parts of the page.
-[[template id=plugin name=txt author="[[Gabriel]]"]]
-[[tag type/format]]
+[[!template id=plugin name=txt author="[[Gabriel]]"]]
+[[!tag type/format]]
This plugin makes ikiwiki treat files with names ending in ".txt"
as wiki pages.
The only exceptions are that [[WikiLinks|WikiLink]] and
[[PreprocessorDirectives|PreprocessorDirective]] are still expanded by
-ikiwiki, and that, if the [[cpan URI::Find]] perl module is installed, URLs
+ikiwiki, and that, if the [[!cpan URI::Find]] perl module is installed, URLs
in the txt file are converted to hyperlinks.
-[[template id=plugin name=typography author="[[Roktas]]"]]
-[[tag type/format]]
+[[!template id=plugin name=typography author="[[Roktas]]"]]
+[[!tag type/format]]
This plugin, also known as
[SmartyPants](http://daringfireball.net/projects/smartypants/), translates
plain ASCII punctuation characters into ``smart'' typographic punctuation HTML
-entities. To use it, you need to have the [[cpan Text::Typography]] module
+entities. To use it, you need to have the [[!cpan Text::Typography]] module
installed.
This plugin has a configuration option. To change the attributes,
set `--typographyattributes=whatever`. See the documentation for
-[[cpan Text::Typography]] for available attributes.
+[[!cpan Text::Typography]] for available attributes.
-[[template id=plugin name=version author="[[Joey]]"]]
-[[tag type/useful]]
+[[!template id=plugin name=version author="[[Joey]]"]]
+[[!tag type/useful]]
This plugin allows inserting the version of ikiwiki onto a page.
-[[template id=plugin name=wikitext author="[[Joey]]"]]
-[[tag type/format]]
+[[!template id=plugin name=wikitext author="[[Joey]]"]]
+[[!tag type/format]]
This plugin allows ikiwiki to process pages written in the original wiki
-text format. To use it, you need to have the [[cpan Text::WikiFormat]] perl
+text format. To use it, you need to have the [[!cpan Text::WikiFormat]] perl
module installed, enable the plugin, then files with the extention `.wiki`
will be processed as wiki text.
it's not really hard. This page is a complete reference to everything a
plugin might want to do. There is also a quick [[tutorial]].
-[[toc levels=2]]
+[[!toc levels=2]]
## Types of plugins
a cgi. This hook allows modifying the variables available on those
templates. The function is passed named parameters. The "page" and
"destpage" parameters are the same as for a preprocess hook. The "template"
-parameter is a [[cpan HTML::Template]] object that is the template that
+parameter is a [[!cpan HTML::Template]] object that is the template that
will be used to generate the page. The function can manipulate that
template object.
hook(type => "formbuilder_setup", id => "foo", call => \&formbuilder_setup);
hook(type => "formbuilder", id => "foo", call => \&formbuilder);
-These hooks allow tapping into the parts of ikiwiki that use [[cpan
+These hooks allow tapping into the parts of ikiwiki that use [[!cpan
CGI::FormBuilder]] to generate web forms. These hooks are passed named
parameters: `cgi`, `session`, `form`, and `buttons`. These are, respectively,
the `CGI` object, the user's `CGI::Session`, a `CGI::FormBuilder`, and a
#### `template($;@)`
-Creates and returns a [[cpan HTML::Template]] object. The first parameter
+Creates and returns a [[!cpan HTML::Template]] object. The first parameter
is the name of the file in the template directory. The optional remaining
parameters are passed to `HTML::Template->new`.
There's now a second external plugin, the [[rst]] plugin, written in
python. It uses a `proxy.py`, a helper library for ikiwiki python plugins.
-[[toc ]]
+[[!toc ]]
## How external plugins use XML RPC
XML RPC has a limitation that it does not have a way to pass
undef/NULL/None. There is an extension to the protocol that supports this,
-but it is not yet available in the [[cpan XML::RPC]] library used by
+but it is not yet available in the [[!cpan XML::RPC]] library used by
ikiwiki.
Until the extension is available, ikiwiki allows undef to be communicated
sequence. To output the next number in the sequence, all a user has to do
is write this on a wiki page:
- [[fib ]]
+ [[!fib ]]
When the page is built, the [[ikiwiki/PreProcessorDirective]] will be
replaced by the next number in the sequence.
name this time, but it generally will. This "fib" is telling ikiwiki what
kind of PreprocessorDirective to handle, namely one that looks like this:
- [[fib ]]
+ [[!fib ]]
Notice the `\&preprocess`? This is how you pass a reference to a function,
and the `preprocess` function is the one that ikiwiki will call to expand
Feel free to try it out with a simple page like this:
- [[fib ]], [[fib ]], [[fib ]], [[fib ]], [[fib ]]
+ [[!fib ]], [[!fib ]], [[!fib ]], [[!fib ]], [[!fib ]]
Looks like it works ok, doesn't it? That creates a page that lists:
It would be nice to be able to jump directly to a given point in the
sequence:
- \[[fib seed=20]], [[fib ]], [[fib ]]
+ \[[fib seed=20]], [[!fib ]], [[!fib ]]
Just insert these lines of code inside `preprocess`, in the appropriate
spot: