Usage
editThis template takes as its one parameter the name of a category, and generates a potentially customized infobox for that category. Customizations for any given category are specified in a simply formatted page for that category. Customizations do not involve passing additional parameters to {{Wn/kaa/Infobox}}, and do not involve hacking esoteric internals of templates.
For example, {{Wn/kaa/Infobox|Tuvalu}}
would produce the infobox on the right. Script error: No such module "Wn/kaa/Infobox".
To specify customizations for some category Foobar
, create a page called Template:Infobox/lookup/Foobar
, containing a call to template {{Wn/kaa/Infobox table}} with parameters to that template specifying the customizations for the Foobar infobox. Template {{Wn/kaa/Infobox table}} formats these parameters into a wikitable; see for example the customization page for Tuvalu, here.
If there is no customization page for the named category, customizations are read from the table at {{Wn/kaa/Infobox/default}}.
(When editing a page containing a call {{Wn/kaa/Infobox|Wn/kaa/Foobar}}
, the Foobar infobox customization page appears under "templates used" even if the customization page has not been created.)
Optional parameter lookup
overrides the name of the customization table; for example, {{Wn/kaa/Infobox|Eswatini|lookup=Swaziland}} uses Category:Wn/kaa/Eswatini with customization page Infobox/lookup/Swaziland.
Setting up infoboxes
editIf you're converting an existing infobox template to use {{Wn/kaa/Infobox}}, check first to see whether the old version of the template categorized articles that used it, and if it did, check all the transcluding articles to make sure they are all directly categorized, so that converting the template won't cause those articles to drop out of the category(-ies). Supposing the infobox template has the same name as the category it represents, cut-and-paste the following as the content of the template page:
{{Wn/kaa/Infobox|{{subst:PAGENAME}}}}<noinclude> An infobox for {{PAGENAME}} and its news. ''Are newer articles not showing? [{{fullurl:{{FULLPAGENAME}}|action=purge}} Refresh]'' Customize this infobox '''{{#ifexist:Template:Wn/kaa/Infobox/lookup/{{PAGENAME}}|[[Template:Wn/kaa/Infobox/lookup/{{PAGENAME}}|here]]|{{Wn/kaa/Plainlinks|{{fullurl:Template:Wn/kaa/Infobox/lookup/{{PAGENAME}}|action=edit&preload=Template:Wn/kaa/Infobox+table/preload}}|here}}}}{{Wn/kaa/Hidden use|Template:Wn/kaa/Infobox table/preload}}'''. [[:Category:Wn/kaa/Infoboxes]] </noinclude>
Replace [[Category:Wn/kaa/Infoboxes]]
with some subcategory when appropriate, such as [[Category:Wn/kaa/Country infoboxes]]
. Put any interwiki markup immediately after the category and before the </noinclude>
.
When you preview (or save) the template page, at the bottom of the displayed documentation is a line "Customize this infobox here", with a wikilink on "here". If the customization page does not already exist, following this link provides a default setup for you, with sample contents for you to change. The default customization content provided contains not only a suitable table with customization fields, but also a sample infobox so anyone editing the customization page can see from the page preview what their customizations look like.
We usually fully protect the infobox template itself, as customization takes place on the customization page.
The customization page typically follows the following pattern:
{{Wn/kaa/Infobox table |list dates=yes |image heading=Sample image |image=Example.svg }} {{Wn/kaa/Infobox|{{#titleparts:{{PAGENAME}}||-1}}}} Available fields are documented at {{Wn/kaa/Tl|Wn/kaa/Infobox table}}.
Internals
editThis template uses subtemplates to decompose its operation into manageable subtasks. The main template is responsible only for checking for a customization file and, if found, parsing it. The result, or non-result, of this parse is passed on to {{infobox/p1}}.
This template does not need to know the set of parameters used to customize the infobox. Those parameters are not passed to this template, and this template can parse a customizing table and pass on whatever parameters are specified by the customizing table, leaving it to subtemplates to worry about whether the parameters provided are valid. For explanations of the valid customization parameters, and how to change the set of them if necessary, see {{infobox table}}.
When parsing the customization file, square brackets []
and angle brackets <>
are removed, isolating markup functions involving those characters in the central template; however, pipe characters |
are left intact to allow customization of an image by means of field-display fields embedded in the image name, such as example.svg|border
.