Item/doc

An all-in-one template for display item name/icon/link.

By default, displays a link to the item and adds an item icon in front of it.

## Usage

All parameters are optional. Despite this, some combinations are invalid and may cause errors, e.g. `{{item|icons=no|mode=image}}`

See examples below for more details.

unnamed parameter 1
Default item display name, link target, and image file name. Also support # and ## syntax (see examples below).

unnamed Parameter 2
Custom link text, which can include line breaks (<br />) and other wikitext. If an 's', 'es', 'ies' or 'ves' is passed as the custom text, it will be appended to the end of the item name. Pluralism is partially intuitive - adding 's' to Butterfly will return Butterflies.

t
Custom link text, it will override unnamed Parameter 2, and it will be displayed as-is, without plural processing.

mode
Display mode. It can be:

* **`image`**(Preferred) or **`imageonly`** or **`onlyimage`** means only image will be displayed;
* **`text`**(Preferred) or **`noimage`** means no image will be displayed;

Use preferred values as much as possible to get the best performance.

image
image filename, no brackets nor "File:"(must include file extension, eg. Parrot.png).

You can specify multiple images, just seperate filenames with slashes(eg. Parrot.png/Parrot (placed).png).

size
Custom graphic size (Read Extended image syntax for details).

You can specify multiple sizes, just seperated with slashes(eg. 32px/24x24px).

When multiple images specified:

* + If only one size specified, it will apply to all images
	+ if size is less then image, extra images will be displayed as if they don't have size argument
	+ if size is more then image, extra sizes will simply be ignored.

And you can append it with `*[factor]` to scale image, e.g. `24x24px*0.5`, `24px*0.5/24px*2` ...

scale

maxsize
Image size limit. Using standard image size syntax, eg. 32px/24x24px. will be applied **after** scale.

ext
image file extension, default is **png**. Only valid when there is no **image** input.

link
Custom link target. If blank given(i.e. **`|link=|`**), it will be no link(See example below).

nolink = y/yes

anchor = y/yes
If set, will create an anchor for **{{{1}}}**.

note
Extra note text. By default, it will displayed as smaller and gray text next to the item name, and without link on it.

note2
Another note text. By default, it will displayed as gray txt in normal size, without link, and always take a single line.

wrap = y/yes
Only valid when there is no **id=** or **note2=** input. If set, the note will be displayed in a new line.

id
Number, will display items(or other type) ID infomation.

type
the type of ID, case-insensitive, default is **`item`**, only valid when **id** is sepcified. can be **`tile`**, **`wall`**, **`npc`**, **`mount`**, **`buff`**, **`debuff`**, **`projectile`**, or **`armor`**. All other values are treated as **`item`**.

showid = y/yes/n/no
Explicitly turn on/off id display. Default is on when `id` is set, off when `id` is not set.

class
Custom Css class(es). There're some predefined classes for certain formatting purpose(see examples below). You can add yours if needed.

css or style
Custom css style rules.

## Examples

### "#", "##", and "@" syntax

You can place "#" or "##" before main item name to auto append mod name, example:

And you can use `|mod=` or "@" in item name to specify mod name:

### Size and scale

Note: Due to the way of [[File:]]'s size option works, if you want to set a size(after scale) larger then origin image size, you need to set it in DDpx or DDxDDpx, and xDDpx will be no effect. e.g. for Beeswax, `{{item|Beeswax|size=x40px}}` will be no effect.

### Wrap, id and note2

`wrap` is valid only when `id` and `note2` are not specified.

### Css and predefined classes

#### Transform

You can transform item image via these CSS classes.

The transformation happens at the center of the image and its effective dimensions will retain the original values of the object as if untransformed. So be careful with `rotate90` and `rotate270`.

## Change default options

You can use **{{item/options}}** to set/get and reset some options' default value.

### Usage

* get: **`{{item/options|get|nolink}}`**
* reset: **`{{item/options|reset}}`** or **`{{item/options|resetall}}`**

**NOTE: In order to avoid unwanted influences, it is very important to reset options as soon as possible. Especially in the template, you should reset options before the template ends.**
All parameters:

unnamed parameter 1
Action. **`get`** or **`load`** means get the current value of a option, **`reset`** or **`resetall`** means reset all options to default value, other values(include none. if you want, recommend to use **`set`** for better readability) means set options' value.

unnamed Parameter 2
The name of option which you want to get its value, only valid when action is **get**. Can be **`mode`**, **`wrap`**, **`nolink`**, **`class`**, **`css`** or **`style`**.

mode
Only valid when action is **set**. Set the default value for {{item}}'s **mode** parameter. You can use any valid value for {{item}}'s **mode** parameter, and a invalid value(recommend to use **`default`**, **`all`**, or **`both`** for better readability) means change the mode back to default. See {{item}}'s **`mode`** parameter.

wrap = y/yes/n/no
Only valid when action is **set**. Turn on/off line wrap. See {{item}}'s **`wrap`** parameter.

anchor = y/yes/n/no
Only valid when action is **set**. Turn on/off anchor. See {{item}}'s **`anchor`** parameter.

nolink = y/yes/n/no
Only valid when action is **set**. Turn on/off no link option. See {{item}}'s **`nolink`** parameter.

class
Only valid when action is **set**. Default value for **`class`**. See {{item}}'s **`class`** parameter.

css/style
Only valid when action is **set**. Default value for **`css`**. See {{item}}'s **`css`** parameter.

See examples below for more details.

### Example

```
By default:

{{item|Beeswax|note=(note)}}

turn on line wrap, and set to text mode:
{{item/options|set|wrap=y|mode=text}}
{{item|Beeswax|note=(note)}}

turn on no link mode:
{{item/options|set|nolink=y}}
{{item|Beeswax|note=(note)}}

get current setting:

nolink = {{item/options|get|nolink}} ;
wrap = {{item/options|get|wrap}} ;
mode = {{item/options|get|mode}} ;

reset all options:
{{item/options|reset}}
{{item|Beeswax|note=(note)}}

custom css and class:
{{item/options|set|css=border:1px solid red;padding:3px}}
{{item|Beeswax|note=(note)}}
{{item/options|set|class=boldname}}
{{item|Beeswax|note=(note)}}

reset all:
{{item/options|resetall}}
{{item|Beeswax|note=(note)}}

```

turn on line wrap, and set to text mode:
Template:Item/options
turn on no link mode:
Template:Item/options
get current setting:
nolink = Template:Item/options ;
wrap = Template:Item/options ;
mode = Template:Item/options ;
reset all options:
Template:Item/options
custom css and class:
Template:Item/options
Template:Item/options
reset all:
Template:Item/options