1 The `meta` directive is supplied by the [[!iki plugins/meta desc=meta]] plugin.
3 This directive allows inserting arbitrary metadata into the source of a page.
4 Enter the metadata as follows:
6 \[[!meta field="value"]]
7 \[[!meta field="value" param="value" param="value"]]
9 The first form sets a given field to a given value, while the second form
10 also specifies some additional sub-parameters. You can have only one field
11 per `meta` directive, use more directives if you want to specify more fields.
13 The field values are treated as HTML entity-escaped text, so you can include
14 a quote in the text by writing `"` and so on.
20 Overrides the title of the page, which is generally the same as the
23 Note that if the title is overridden, a "title_overridden" variable will
24 be set to a true value in the template; this can be used to format things
25 differently in this case.
27 An optional `sortas` parameter will be used preferentially when
28 [[ikiwiki/pagespec/sorting]] by `meta(title)`:
30 \[[!meta title="The Beatles" sortas="Beatles, The"]]
32 \[[!meta title="David Bowie" sortas="Bowie, David"]]
36 Specifies a license for the page, for example, "GPL". Can contain
37 WikiLinks and arbitrary markup.
41 Specifies the copyright of the page, for example, "Copyright 2007 by
42 Joey Hess". Can contain WikiLinks and arbitrary markup.
46 Specifies the author of a page.
48 An optional `sortas` parameter will be used preferentially when
49 [[ikiwiki/pagespec/sorting]] by `meta(author)`:
51 \[[!meta author="Joey Hess" sortas="Hess, Joey"]]
55 Specifies an url for the author of a page.
59 Specifies a short description for the page. This will be put in
60 the html header, and can also be displayed by eg, the [[map]] directive.
64 Specifies keywords summarizing the contents of the page. This
65 information will be put in the html header. Only letters,
66 numbers, spaces and commas are allowed in this string; other
67 characters are stripped. Note that the majority of search
68 engines, including Google, do not use information from the
73 Specifies a permanent link to the page, if different than the page
78 Specifies the creation date of the page. This creates a
79 `<meta name="date" content="...">` header in the HTML output, but also
80 modifies the internal `ctime` in the
81 [[!iki tips/inside_dot_ikiwiki desc="internal index"]].
82 The date can be entered in nearly any format, since it's parsed by
83 [[!cpan TimeDate]] but invalid dates yield an error in 3.20180321
88 Adds a stylesheet to a page. The stylesheet is treated as a wiki link to
89 a `.css` file in the wiki, so it cannot be used to add links to external
92 \[[!meta stylesheet=somestyle rel="alternate stylesheet"
95 However, this will be scrubbed away if the
96 [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled,
97 since it can be used to insert unsafe content.
101 Adds a script to a page. The script is treated as a wiki link to
102 a `.js` file in the wiki, so it cannot be used to add links to external
103 scripts. The optional `defer` and `async` keywords can be used to set
104 the corresponding HTML4 and HTML5 script options. Example:
106 \[[!meta script=somescript defer async]]
108 The tag is subject to scrubbing as with the stylesheet and link fields.
112 Adds html <link> tags to perform OpenID delegation to an external
113 OpenID server. This lets you use an ikiwiki page as your OpenID.
115 By default this will delegate for both `openid` and `openid2`. To only
116 delegate for one, add a parameter such as `delegate=openid`.
118 An optional `xrds-location`
119 parameter lets you specify the location of any [eXtensible Resource
120 DescriptorS](http://www.windley.com/archives/2007/05/using_xrds.shtml).
124 \[[!meta openid="http://joeyh.myopenid.com/"
125 server="http://www.myopenid.com/server"
126 xrds-location="http://www.myopenid.com/xrds?username=joeyh.myopenid.com"]]
130 Specifies a link to another page. This can be used as a way to make the
131 wiki treat one page as linking to another without displaying a user-visible
132 [[ikiwiki/WikiLink]]:
134 \[[!meta link=otherpage]]
136 It can also be used to insert a html <link> tag. For example:
138 \[[!meta link="http://joeyh.myopenid.com/" rel="openid.delegate"]]
140 However, this latter syntax won't be allowed if the
141 [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled, since it can be used to
142 insert unsafe content.
146 Specifies a link to a file to be rendered as an "enclosure" in
147 RSS/Atom feeds (and a plain old link in HTML). Useful for
148 [[!iki podcast desc=podcasting]].
152 Causes the page to redirect to another page in the wiki.
154 \[[!meta redir=otherpage]]
156 The default is to redirect without delay.
157 Optionally, a delay (in seconds) can be specified: "delay=10"
159 It can also be used to redirect to an external url. For example:
161 \[[!meta redir="http://example.com/"]]
163 However, this latter syntax won't be allowed if the
164 [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled, since it can be used to
165 insert unsafe content.
167 For both cases, an anchor to jump to inside the destination page may also be
168 specified using the common `#ANCHOR` syntax.
172 Causes the robots meta tag to be written:
174 \[[!meta robots="index, nofollow"]]
176 Valid values for the attribute are: "index", "noindex", "follow", and
177 "nofollow". Multiple comma-separated values are allowed, but obviously only
178 some combinations make sense. If there is no robots meta tag, "index,
179 follow" is used as the default.
181 The value is escaped, but its contents are not otherwise checked.
185 Specifies a globally unique ID for a page. This guid should be a URI,
186 and it will be used to identify the page's entry in RSS
187 and Atom feeds. If not given, the default is to use the page's URL as its
190 This is mostly useful when a page has moved, to keep the guids for
191 pages unchanged and avoid flooding aggregators
192 (see [[!iki tips/howto_avoid_flooding_aggregators]]).
196 Specifies a fake modification time for a page, to be output into RSS and
197 Atom feeds. This is useful to avoid flooding aggregators that sort by
198 modification time, like Planet: for instance, when editing an old blog post
199 to add tags, you could set `updated` to be one second later than the original
200 value. The date/time can be given in any format that
201 [[!cpan TimeDate]] can understand, just like the `date` field and maps to the
202 `<meta name="updated" content="...">` HTML header and internal `mtime` field.
206 Adds a Friend of a Friend ([FOAF](http://wiki.foaf-project.org/w/Autodiscovery))
211 \[[!meta foaf=foaf.rdf]]
215 Adds a HTML `<meta>` header with this `name` attribute. Its other attributes are
216 taken from the other parameters, so for example
217 `\[[!meta name="foo" content="bar" x-non-standard-attribute="baz"]]`
218 becomes `<meta name="foo" content="bar" x-non-standard-attribute="baz">`. This
219 won't be allowed if the [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled,
220 since it can be used to insert unsafe content.
224 If the field is not one of the above predefined fields, the metadata will be
225 written to the generated html page as a <meta> header. For example,
226 `\[[!meta foo="bar"]]` becomes `<meta name="foo" content="bar">`. As
227 with `name`, this won't be allowed if the [[!iki plugins/htmlscrubber
228 desc=htmlscrubber]] plugin is enabled.
230 This syntax cannot be used for meta headers with unusual names, in
231 particular names containing `:` such as `flattr:id` and `twitter:card`.
232 Please use `\[[!meta name="..." content="..."]]` for those headers.
234 [[!meta robots="noindex, follow"]]