Template:Px
This is the {{px}} template.
This meta-template helps other templates, such as infoboxes, to take image size parameters in both of the forms "40" or "40px". It takes up to three parameters and returns the first one that has any content. That is, the first one that is defined (not null) and not empty. Thus a default value for the width of the image can be fed as the second or third parameter.
Usage
[alilan ya ing pikuwanan]Here is what this template does. Code to the left, actual rendering to the right:
- Template:Tlc = 40px
- Template:Tlc = 40px
And with an optional second or even third parameter to be used as a default value if the first or second parameter is empty or undefined:
- Template:Tlc = 50px
- Template:Tlc = 50px
- Template:Tlc = 60px
- Template:Tlc = 60px
And here is how it can be used inside another template:
[[Image:{{{image}}} | {{px|{{{size|}}}}} | {{{caption|}}} ]]
[[Image:{{{image}}} | {{px|{{{size|}}}|250}} | {{{caption|}}} ]]
[[Image:{{{image}}} | {{px| {{{size|}}} | {{{width|}}} | 250 }} | {{{caption|}}} ]]
Default values
[alilan ya ing pikuwanan]It used to be a bit tricky to handle empty but defined image size values in a template, since the MediaWiki pipetrick doesn't return the default value for empty parameters. That is, {{{width|250px}}}
does not return "250px" if the template was called like this: {{template|width=}}
The usual workaround was to do like this:
{{#if:{{{width|}}}|{{{width}}}|250px}}
When at the same time handling the "pxpx" bug this became even more messy code:
[[Image:{{{image}}} | {{#if:{{{width|}}}|{{px|{{{width}}}}}|250px}} ]]
To simplify the coding, {{px}} allows for an optional default value to be defined allowing for the following:
[[Image:{{{image}}} | {{px|{{{width|}}}|250}} ]]
Note! The parameters to {{px}} must use the pipe "|", like this: {{{width|}}}
. Or else {{px}} will be fed and return the string "{{{width}}}
" if width was not defined.
Background
[alilan ya ing pikuwanan]Old usage was to always pad on "px" since MediaWiki used to tolerate "40pxpx":
[[Image:{{{image}}} | {{{size}}}px | {{{caption|}}} ]]
But since 25 March 2008 that does not work anymore. That is, image sizes on Wikipedia now needs to be given in the form "40px", not "40" or "40pxpx". This template helps doing that. Note that the bug has since been fixed, although you can continue using this template.
See also
[alilan ya ing pikuwanan]- Wikipedia:ClickFix – About the "pxpx" bug.
- {{ifempty}} – Helps detect empty parameters and fall back to default values. For instance for handling multiple image name parameters.
Test examples
[alilan ya ing pikuwanan]- Template:Tlc = 40px
- Template:Tlc = 40px
- Template:Tlc = 40pxpx
- Template:Tlc = junk
- Template:Tlc =
- Template:Tlc =
- Template:Tlc =
- Template:Tlc =
- Template:Tlc = 40px
- Template:Tlc = 50px
- Template:Tlc = 50px
- Template:Tlc = 50px
- Template:Tlc = 60px
- Template:Tlc = 60px
[[Image:Example.png | 50 | thumb ]]
=
[[Image:Example.png | 50pxpx | thumb ]]
=
- Currently fails. But the devs have stated that they are adding back parsing of "pxpx" in the next update to Wikipedia. So if you see a small image to the right then Wikipedia again accepts "pxpx".
[[Image:Example.png | 50px | thumb ]]
=
[[Image:Example.png | {{px|50}} | thumb ]]
=
[[Image:Example.png | {{px|50px}} | thumb ]]
=
[[Image:Example.png | {{px|junk}} | thumb ]]
=
[[Image:Example.png | {{px|}} | thumb ]]
=
[[Image:Example.png | {{px}} | thumb ]]
=
[[Image:Example.png | {{px||50}} | thumb ]]
=
- Giving the default width if the 1st parameter is empty
[[Image:Example.png | {{px|{{{width|}}}|50}} | thumb ]]
=
[[Image:Example.png | {{px|{{{width}}}|50}} | thumb ]]
=
- Fails to use the default value of 50. Note the missing "|" in {{{width}}}.
[[Image:Example.png | {{px| {{{width|}}} | {{{size|}}} | 50 }} | thumb ]]
=