ಟೆಂಪ್ಲೇಟು:Px/doc
This is a documentation subpage for ಟೆಂಪ್ಲೇಟು:Px It may contain usage information, categories and other content that is not part of the original ಟೆಂಪ್ಲೇಟು page. |
This is the {{Px}}
meta-template.
It 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.
Parameters
[ಬದಲಾಯಿಸಿ]Meta-template: ensure ‘px’ unit with numbers for image sizes
ಪರಿಮಿತಿ | ವಿವರ | ನಮೂನೆ | ಸ್ಥಾನಮಾನ | |
---|---|---|---|---|
pixels | 1 2 3 | add ‘px’ to number, correct format is left unchanged | ಸಂಖ್ಯೆ | ಐಚ್ಛಿಕ |
Usage
[ಬದಲಾಯಿಸಿ]Here is what this template does. Code to the left, actual rendering to the right:
{{px|40}}
= 40px{{px|40px}}
= 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:
{{px|50}}
= 50px{{px|50px}}
= 50px
{{px|60}}
= 60px{{px|60px}}
= 60px
And here is how it can be used inside another template:
[[File:{{{image}}} | {{px|{{{size|}}}}} | {{{caption|}}} ]]
[[File:{{{image}}} | {{px|{{{size|}}}|250}} | {{{caption|}}} ]]
[[File:{{{image}}} | {{px| {{{size|}}} | {{{width|}}} | 250 }} | {{{caption|}}} ]]
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
[ಬದಲಾಯಿಸಿ]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:
[[File:{{{image}}} | {{#if:{{{width|}}}|{{px|{{{width}}}}}|250px}} ]]
To simplify the coding, {{Px}}
now allows for an optional default value to be defined allowing for the following:
[[File:{{{image}}} | {{px|{{{width|}}}|250}} ]]
The pxpx bug
[ಬದಲಾಯಿಸಿ]Old usage was to always pad on "px" since MediaWiki used to understand "40px" and "40pxpx", but not "40":
[[File:{{{image}}} | {{{size}}}px | {{{caption|}}} ]]
But after 25 March 2008 that did not work anymore. That is, image sizes on Wikipedia needed to be given in the form "40px", not "40" or "40pxpx". This template helps doing that. Note that the bug has since been fixed, so MediaWiki now understands "40px" and "40pxpx" again. But MediaWiki still does not understand "40".
But feel free to continue using this template since it is more convenient to use than the old methods.
Alternative approach
[ಬದಲಾಯಿಸಿ]Instead of letting your template take say the parameters image and size, you can build your template so it takes an image with full wiki notation. Like this:
{{your template | image = [[File:Example.png|40px]] }}
This approach is used with many templates, for instance the {{Ambox}}
and {{Dmbox}}
. This gives the users much more freedom in what they feed as the image parameter, and even allows such things as feeding two images at the same time. And it makes your template code much simpler.
See also
[ಬದಲಾಯಿಸಿ]{{Ifempty}}
– Helps detect empty parameters and fall back to default values. For instance for handling multiple image name parameters.- Wikipedia:ClickFix – About the old "pxpx" bug.
Test examples
[ಬದಲಾಯಿಸಿ]{{px|40}}
= 40 px{{px|40px}}
= 40px{{px|40pxpx}}
= 40pxpx{{px|junk}}
= junk{{px}}
={{px}}
={{px}}
={{px}}
={{px|40|50}}
= 40 px{{px|50}}
= 50 px{{px|50px}}
= 50px{{px|50|60}}
= 50 px{{px|60}}
= 60 px{{px|60px}}
= 60px{{px|frameless}}
= frameless{{px|frameless}}
= frameless{{px|40|frameless}}
= 40 px{{px|frameless|40px}}
= frameless
[[File:Example.png | thumb ]]
=
[[File:Example.png | 50 | thumb ]]
=
- Fails, MediaWiki does not understand "50" and just thinks it is an image caption.
[[File:Example.png | 50pxpx | thumb ]]
=
- Used to fail. But the devs added back parsing of "pxpx". So you should see a small image to the right without any image caption, since Wikipedia again accepts "pxpx".
[[File:Example.png | 50px | thumb ]]
=
[[File:Example.png | {{px| 50 }} | thumb ]]
=
[[File:Example.png | {{px| 50px }} | thumb ]]
=
[[File:Example.png | {{px| junk }} | thumb ]]
=
[[File:Example.png | {{px| }} | thumb ]]
=
[[File:Example.png | {{px}} | thumb ]]
=
[[File:Example.png | {{px| | 50 }} | thumb ]]
=
- Giving the default width if the 1st parameter is empty
[[File:Example.png | {{px| {{{width|}}} | 50 }} | thumb ]]
=
[[File:Example.png | {{px| {{{width}}} | 50 }} | thumb ]]
=
- Fails to use the default value of 50. Note the missing "|" in {{{width}}}.
[[File:Example.png | {{px| {{{width|}}} | {{{size|}}} | 50 }} | thumb ]]
=