+[[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"]]
+ \[[!meta field="value"]]
+ \[[!meta field="value" param="value" param="value"]]
The first form sets a given field to a given value, while the second form
also specifies some additional sub-parameters.
-You can use any field names you like, but here are some predefined ones:
-
-* link
-
- Specifies a link to another page. This is used to generate a html
- <link> tag, and also as a way to make the wiki treat one page as
- linking to another without displaying a user-visible link. The latter
- can be useful when using links to categorise pages. A html link tag
- would look like this:
-
- \[[meta link="foo.css" rel="stylesheet" type="text/css"]]
-
- A non-user-visible [[WikiLink]] would instead look like this:
+The field values are treated as HTML entity-escaped text, so you can include
+a quote in the text by writing `"` and so on.
- \[[meta link=otherpage]]
+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 copyright license for the page, for example, "GPL".
+ 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.
+
* permalink
- Specifies a perminent link to the page, if different than the page
+ Specifies a permanent link to the page, if different than the page
generated by ikiwiki.
-If the field is not treated specially (as the link and title fields are),
-the metadata will be written to the generated html page as a <meta>
-header.
+* date
-The field value is treated as HTML entity-escaped text, so you can include
-a quote in the text by writing `"` and so on.
+ Specifies the creation date of the page. The date can be entered in
+ nearly any format, since it's parsed by [[cpan TimeDate]].
-This plugin is included in ikiwiki, but it is not enabled by default. If
-it is enabled, the title of this page will say it is.
-[[meta title="meta plugin (enabled)"]]
+* stylesheet
-[[tag type/meta]]
+ 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 <link> 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 <link> 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 will be used,
+ rather than the page url, to identify the page in RSS and Atom feeds.
+
+ The guid can either be a uuid (ie,
+ "ec248d04-f347-4eb8-92b6-671b15d36980"), or it can be an alternative URL
+ for the page.
+
+ This is mostly useful when a page's feed has moved, to keep the guids for
+ pages unchanged and
+ [[avoid_flooding_aggregators|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 <meta> header. However, this
+won't be allowed if the [[htmlscrubber]] is enabled, since it can be used to
+insert unsafe content.