The meta directive is supplied by the meta plugin.

This directive 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. You can have only one field per meta directive, use more directives if you want to specify more fields.

The field values are treated as HTML entity-escaped text, so you can include a quote in the text by writing " 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.

    An optional sortas parameter will be used preferentially when sorting by meta(title):

    [[!meta title="The Beatles" sortas="Beatles, The"]]

    [[!meta title="David Bowie" sortas="Bowie, David"]]

  • 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.

    An optional sortas parameter will be used preferentially when sorting by meta(author):

    [[!meta author="Joey Hess" sortas="Hess, Joey"]]

  • authorurl

    Specifies an url for the author of a page.

  • description

    Specifies a short description for the page. This will be put in the html header, and can also be displayed by eg, the map directive.

  • keywords

    Specifies keywords summarizing the contents of the page. This information will be put in the html header. Only letters, numbers, spaces and commas are allowed in this string; other characters are stripped. Note that the majority of search engines, including Google, do not use information from the keywords header.

  • permalink

    Specifies a permanent link to the page, if different than the page generated by ikiwiki.

  • date

    Specifies the creation date of the page. This creates a <meta name="date" content="..."> header in the HTML output, but also modifies the internal ctime in the internal index. The date can be entered in nearly any format, since it's parsed by TimeDate but invalid dates yield an error in 3.20180321 or later.

  • 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"]]

    However, this will be scrubbed away if the htmlscrubber plugin is enabled, since it can be used to insert unsafe content.

  • script

    Adds a script to a page. The script is treated as a wiki link to a .js file in the wiki, so it cannot be used to add links to external scripts. The optional defer and async keywords can be used to set the corresponding HTML4 and HTML5 script options. Example:

    [[!meta script=somescript defer async]]

    The tag is subject to scrubbing as with the stylesheet and link fields.

  • openid

    Adds html <link> tags to perform OpenID delegation to an external OpenID server. This lets you use an ikiwiki page as your OpenID.

    By default this will delegate for both openid and openid2. To only delegate for one, add a parameter such as delegate=openid.

    An optional xrds-location parameter lets you specify the location of any eXtensible Resource DescriptorS.

    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 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 plugin is enabled, since it can be used to insert unsafe content.

  • enclosure

    Specifies a link to a file to be rendered as an "enclosure" in RSS/Atom feeds (and a plain old link in HTML). Useful for podcasting.

  • redir

    Causes the page to redirect to another page in the wiki.

    [[!meta redir=otherpage]]

    The default is to redirect without delay. Optionally, a delay (in seconds) can be specified: "delay=10"

    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 plugin is enabled, since it can be used to insert unsafe content.

    For both cases, an anchor to jump to inside the destination page may also be specified using the common #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 value is escaped, but its contents are not otherwise checked.

  • guid

    Specifies a globally unique ID for a page. This guid should be a URI, and it will be used to identify the page's entry in RSS and Atom feeds. If not given, the default is to use the page's URL as its guid.

    This is mostly useful when a page has moved, to keep the guids for pages unchanged and avoid flooding aggregators (see tips/howto avoid flooding aggregators).

  • updated

    Specifies a fake modification time for a page, to be output into RSS and Atom feeds. This is useful to avoid flooding aggregators that sort by modification time, like Planet: for instance, when editing an old blog post to add tags, you could set updated to be one second later than the original value. The date/time can be given in any format that TimeDate can understand, just like the date field and maps to the <meta name="updated" content="..."> HTML header and internal mtime field.

  • foaf

    Adds a Friend of a Friend (FOAF) reference to a page.

    Example:

    [[!meta foaf=foaf.rdf]]

  • name

    Adds a HTML <meta> header with this name attribute. Its other attributes are taken from the other parameters, so for example [[!meta name="foo" content="bar" x-non-standard-attribute="baz"]] becomes <meta name="foo" content="bar" x-non-standard-attribute="baz">. This won't be allowed if the htmlscrubber plugin is enabled, since it can be used to insert unsafe content.

Other fields

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. For example, [[!meta foo="bar"]] becomes <meta name="foo" content="bar">. As with name, this won't be allowed if the htmlscrubber plugin is enabled.

This syntax cannot be used for meta headers with unusual names, in particular names containing : such as flattr:id and twitter:card. Please use [[!meta name="..." content="..."]] for those headers.