Template:Tmbox/doc

This is the Tmbox ([T]alk page [m]essage [box]) metatemplate. This template is called by other templates to give a consistent structure and appearance to boilerplate messages used on talk pages across the project. It may be called directly on a talk page in order to present a one-off message in the same format as boilerplate messages, but this is non-standard (if a message is important enough to be presented in this form, you should consider creating a separate template so that it is easily available to other editors). Tmbox offers several different colors for different purposes, provides default images if no image parameter is given, and has some other pleasant features. This template works similarly to Ambox and uses the same parameters.

Suggested style standard
The types of talkpage messageboxes follow the same naming convention as the boxes for all other namespaces, but the type of any particular talkpage messagebox may not be as obvious as in other namespaces. When deciding on the type to use for a talkpage messagebox, please consider the following guidelines:
 * speedy should only be used for speedy deletion templates.
 * delete should only be used for templates relating to ongoing deletion discussions. Please do not use this type just to get a red border for a messagebox.
 * content and style should be used for warnings and alerts. Use content (which has an orange border) for more important and immediate alerts, and style (yellow border) for less important warnings.  Messageboxes of these types should ideally be transitory: they should not be expected to remain on a talkpage indefinitely.
 * move and protection should only be used for messageboxes relating to moves and merges, and page protection, respectively.
 * The notice type should be used for the majority of talkpage messageboxes; those that are intended to convey or summarise information. If a talkpage messagebox does not obviously fit into one of the other types, it is probably a notice type.

Usage
Simple usage example:

Complex example:

Talk page message box types
The following examples use different type parameters but use no image parameters thus they use the default images for each type.

Special
Some other parameter combinations.

Parameters
List of all parameters:

name
 * (Optional) Name of the template. This adds a CSS class with name  to the HTML element, for use by bots or scripts.

type
 * If no type parameter is given the template defaults to type notice. That means it gets a gray border.

image
 * No parameter = If no image parameter is given the template uses a default image. Which default image it uses depends on the type parameter.
 * An image = Should be an image with usual wiki notation. 40px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
 * none = Means that no image is used.
 * none = Means that no image is used.

imageright
 * No parameter = If no imageright parameter is given then no image is shown on the right side.
 * An image = Should be an image with usual wiki notation. 40px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
 * Anything = Any other object that you want to show on the right side.
 * Anything = Any other object that you want to show on the right side.

style
 * Optional CSS values used by the entire message box table. Without quotation marks  but with the ending semicolons  . For example:

textstyle
 * Optional CSS values used by the text cell. For example:

plainlinks
 * Normally, external links have an arrow icon next to them, like this: Example.com. However, in message boxes, the arrow icon is suppressed by default, like this: Example.com . To get the normal style of external link with the arrow icon, use no.

text
 * The message body text.

The small parameters
small
 * yes = Makes it a smaller right floating message box. This also makes the default images smaller. Note that any data fed to the smallimage, smallimageright and smalltext parameters is only used if "small=yes". To make it so your template also understands the small parameter you can use this code:

smallimage
 * No parameter = If no smallimage parameter is given then this template falls back to use the image parameter. If the image parameter also is empty then a small default image is used.
 * An image = Should be an image with usual wiki notation. 30px width is usually about right. For example:
 * none = Means that no image is used. This overrides any image fed to image, when "small=yes".
 * none = Means that no image is used. This overrides any image fed to image, when "small=yes".

smallimageright
 * No parameter = If no smallimageright parameter is given then this template falls back to use the imageright parameter. If the imageright parameter also is empty then no image is shown on the right side.
 * An image = Should be an image with usual wiki notation. 30px width is usually about right. For example:
 * Anything = Any other object that you want to show on the right side.
 * none = Means that no right side image is used. This overrides any image fed to imageright, when "small=yes".
 * none = Means that no right side image is used. This overrides any image fed to imageright, when "small=yes".

smalltext
 * A shorter version of the message body text. If no smalltext parameter is given then this template falls back to use the text parameter.

Technical details
If you need to use special characters in the text parameter then you need to escape them like this:

. And now a pipe and end braces |}}. }}

This template uses the tmbox CSS classes in MediaWiki:Common.css for most of its looks, thus it is fully skinnable.

This template calls Module:Message box which holds most of the code for tmbox, while tmbox itself does parameter preprocessing.

Internally this meta-template uses HTML markup instead of wiki markup for the table code. That is the usual way we make meta-templates since wiki markup has several drawbacks. For instance it makes it harder to use parser functions and special characters in parameters.