Template:Term/doc: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
(Import documentation from enwiki)
 
(Finish cleaning up and rewriting import of documentation from enwiki)
Line 2: Line 2:


== Usage ==
== Usage ==
The template {{Tnull|Term}} is used in template-structured glossaries to create terms to be defined, that are properly structured, have semantic value, and can be linked to as if independent sections. It is a wrapper for {{Tag|dt}}, the ''description list term'' HTML element.
The {{Tnull|Term}} template is used in template-structured glossaries to create terms to be defined, that are properly structured, have semantic value, and can be linked to as if independent sections. It is a wrapper for {{Tag|dt}}, the ''description list term'' HTML element.


Basic usage:
Basic usage:


  <span style="color:gray">{{Tl|Glossary}}</span>
  <span style="color: gray;">{{Tl|Glossary}}</span>
  <span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Term|1{{=}}<var>term</var>}}</span>
  <span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tl|Term|1{{=}}<var>term</var>}}</span>
  <span style="color:gray">{{Tl|Defn|1{{=}}<var>Definition.</var>}}</span>
  <span style="color: gray;">{{Tl|Defn|1{{=}}<var>Definition.</var>}}</span>
  <span style="color:gray">{{Tl|Glossary end}}</span>
  <span style="color: gray;">{{Tl|Glossary end}}</span>


Inline templates, reference citations, wikimarkup styles, etc., can be applied to the term in the second parameter ({{Para|content}} or {{Para|2}}) as long as it remains without markup in the first parameter ({{Para|term}} or {{Para|1}}). Technically, the explicit parameter names are optional if the term or content does not contain the "=" character, but as any editors can add material, including templates or URLs with this character in them, <em>it is always safest to explicitly name or number the parameters</em>.
Inline templates, reference citations, wikimarkup styles, et cetera, can be applied to the term in the second parameter, {{Para|content}} or {{Para|2}}, as long as it remains without markup in the first parameter, {{Para|term}} or {{Para|1}}. Technically, the explicit parameter names are optional if the term or content does not contain the "=" character, but as any editors can add material, including templates or URLs with this character in them, <em>it is always safest to explicitly name or number the parameters</em>.
* This will work: <span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Term|term{{=}}E{{=}}MC²}}</span>
* This will work: <span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Term|term{{=}}E{{=}}MC²}}</span>
* This will work: <span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Term|1{{=}}E{{=}}MC²}}</span>
* This will work: <span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Term|1{{=}}E{{=}}MC²}}</span>
* This will <strong style="color: red;">fail</strong>: <span class="example deprecated-content example-bad example-bold" style="font-weight: bold; color: #8B0000;">{{Tnull|Term|E{{=}}MC²}}</span>
* This will <strong style="color: red;">fail</strong>:&nbsp;&nbsp;&nbsp;<span class="example deprecated-content example-bad example-bold" style="font-weight: bold; color: #8B0000;">{{Tnull|Term|E{{=}}MC²}}</span>


More complex usage is typically:
More complex usage is typically:


<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|term{{=}}<var>term with no markup</var>&nbsp;|content{{=}}<var>term with markup</var>}}</div>
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|term{{=}}<var>term with no markup</var>|content{{=}}<var>term with markup</var>}}</div>
or
or
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|1{{=}}<var>term with no markup</var>&nbsp;|2{{=}}<var>term with markup</var>}}</div>
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|1{{=}}<var>term with no markup</var>|2{{=}}<var>term with markup</var>}}</div>
or
or
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|1{{=}}<var>term with no markup</var>&nbsp;|content{{=}}<var>term with markup</var>}}</div>
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|1{{=}}<var>term with no markup</var>|content{{=}}<var>term with markup</var>}}</div>


== Wiki-styling and linking of the term ==
== Wiki-styling and linking of the term ==
Line 33: Line 33:
For the same reasons that links to other pages are discouraged in headings, <strong>links are discouraged in glossary terms</strong>:
For the same reasons that links to other pages are discouraged in headings, <strong>links are discouraged in glossary terms</strong>:
* <span class="example deprecated-content example-deprecated" style="font-family: Georgia, 'DejaVu Serif', serif; color: #696969;">Deprecated</span>: <del class="deprecated-content" style="color: #808080; text-decoration: none;"><code>{{Tnull|Term|1{{=}}EventServer|2{{=}}<nowiki>''&#91;&#91;EventServer&#93;&#93;''</nowiki>}}</code></del>
* <span class="example deprecated-content example-deprecated" style="font-family: Georgia, 'DejaVu Serif', serif; color: #696969;">Deprecated</span>: <del class="deprecated-content" style="color: #808080; text-decoration: none;"><code>{{Tnull|Term|1{{=}}EventServer|2{{=}}<nowiki>''&#91;&#91;EventServer&#93;&#93;''</nowiki>}}</code></del>
* <span class="example" style="font-family: Georgia, 'DejaVu Serif', serif; color: #006400;">Preferred</span>: <code>{{Tnull|Term|1{{=}}EventServer|2{{=}}<nowiki>''EventServer''</nowiki>}}</code>, and use of a hatnote in the {{Tlx|Defn}} definition to link to the main article [[EventServer]].
* <span class="example" style="font-family: Georgia, 'DejaVu Serif', serif; color: #006400;">Preferred</span>: <code>{{Tnull|Term|1{{=}}EventServer|2{{=}}<nowiki>''EventServer''</nowiki>}}</code>, and use of a hatnote in the associated {{Tl|Defn}} template to link to the main article [[EventServer]].


Again, as with the first parameter (the term) itself, if the "<code>=</code>" character (equals sign) is used in the content of this second parameter, the syntax <em>requires</em> that the parameter be explicitly specified (and because many URLs, e.g. in reference citations, can contain this character, it is always safest to number or name the parameters):
Again, as with the first parameter (the term) itself, if the "<code>=</code>" character (equals sign) is used in the content of this second parameter, the syntax <em>requires</em> that the parameter be explicitly specified (and because many URLs, e.g. in reference citations, can contain this character, it is always safest to number or name the parameters):
Line 43: Line 43:


== Linking to the term ==
== Linking to the term ==
{{Tlx|Term}} automatically creates a link anchor point (an HTML <code>id</code>) from an <em>all-lowercase</em> conversion of the original term ({{Para|term}} or {{Para|1}}) or {{Para|id}}. About 90% of the links to glossary entries are going to be mid-sentence, and thus will start with a lower-case letter, except for proper names. The Glossary link template will auto-lowercase any input they're given as a link target for you. So, the only catch is if you manually create a link like <code><nowiki>[[List of built-in functions#System built-in.27s|System built-ins]]</nowiki></code> and do not lower-case the <code>#Democratic Party</code> part. Thus, you should use Glossary link.
{{Tnull|Term}} automatically creates a link anchor point (an HTML <code>id</code>) from an <em>all-lowercase</em> conversion of the original term ({{Para|term}} or {{Para|1}}) or {{Para|id}}. About 90% of the links to glossary entries are going to be mid-sentence, and thus will start with a lower-case letter, except for proper names. So, the only catch is if you manually create a link like <code><nowiki>[[List of built-in functions#system built-in.27s|System built-ins]]</nowiki></code> and do not lower-case the <code>#system built-in.27s</code> part.


If your glossary has an unusual case in which one entry and another share the exact same name except for case (thus would get the same lower-cased HTML <code>id</code>), then the upper-case one must be given a unique {{Para|id}} value, <em>and</em> prevented from conflicting with the lower-case one's HTML <code>id</code>. This can be done by changing its {{Para|id}} to a variant (e.g. with a number), then manually injecting a second HTML <samp>id</samp> (with upper-case) by using the {{Para|content|=}} parameter and an anchor template:
If your glossary has an unusual case in which one entry and another share the exact same name except for case (thus would get the same lower-cased HTML <code>id</code>), then the upper-case one must be given a unique {{Para|id}} value, <em>and</em> prevented from conflicting with the lower-case one's HTML <code>id</code>. This can be done by changing its {{Para|id}} to a variant (e.g. with a number), then manually injecting a second HTML <samp>id</samp> (with upper-case) by using the {{Para|content|=}} parameter and an anchor template:
Line 50: Line 50:
   {{Term|term=foo}}
   {{Term|term=foo}}
   {{Defn|Definition of lower-case version here ...
   {{Defn|Definition of lower-case version here ...
   {{Term|term=Foo |id=Foo_2 |content={{Anchor|Foo}} }}
   {{Term|term=Foo|id=Foo_2|content={{Anchor|Foo}}}}
   {{Defn|Definition of proper-name version here ...
   {{Defn|Definition of proper-name version here ...
</pre>
</pre>
Line 56: Line 56:
You can then link to them as <code>#foo</code> and <code>#Foo</code>, respectively. (Technically the second can also be addressed as <code>#foo_2</code>, which will have been lower-cased by the template code, but this would not be very intuitive and is just an artifact of the work-around.)
You can then link to them as <code>#foo</code> and <code>#Foo</code>, respectively. (Technically the second can also be addressed as <code>#foo_2</code>, which will have been lower-cased by the template code, but this would not be very intuitive and is just an artifact of the work-around.)


The template {{Tlx|Anchor}} can also be used in the {{Para|content}} a/k/a. {{Para|2}} parameter, e.g. to provide the plural of the term (the most common usage), an alternative spelling, the old name of an entry that was linked to but has since changed, or a shortcut link anchor name.
The template {{Tl|Anchor}} can also be used in the {{Para|content}} a/k/a {{Para|2}} parameter, for instance to provide the plural of the term (the most common usage), an alternative spelling, the old name of an entry that was linked to but has since changed, or a shortcut link anchor name.


As with styled terms, the first parameter must be used to provide the "bare" term, the second to provide this extra markup. It is not necessary to add the term itself to the {{Tnull|Anchor}} template when using {{Tnull|Term}}:
As with styled terms, the first parameter must be used to provide the "bare" term, the second to provide this extra markup. It is not necessary to add the term itself to the {{Tnull|Anchor}} template when using {{Tnull|Term}}:
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|2=1=shortstop&nbsp;|3=content=shortstop<span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Anchor|shortstops|short-stop|short stop|sslink}}</span>}}</div>
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">{{Tnull|Term|2=1=shortstop|3=content=shortstop<span class="example example-bold" style="font-weight: bold; color: #006400;">{{Tnull|Anchor|shortstops|short-stop|short stop|sslink}}</span>}}</div>


<div style="font-size: 90%;">
<div style="font-size: 90%;">
By contrast, when using semicolon-delimited terms in unstructured glossaries, the term <em>does</em> need to be added explicitly as an anchor if link anchorage is desired (which is almost always the case):
By contrast, when using semicolon-delimited terms in unstructured glossaries, the term <em>does</em> need to be added explicitly as an anchor if link anchorage is desired (which is almost always the case):


<div style="padding-left: 3em; padding-right: 0; overflow: hidden;"><code><nowiki>;</nowiki>shortstop</code>{{Tnull|Anchor|<span class="example example-bold" style="font-weight: bold; color: #006400;"><code>shortstop</code></span>|shortstops|short-stop|short stop|sslink}}</div>.
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;"><code><nowiki>; </nowiki>shortstop{{Tnull|Anchor|2=<span class="example example-bold" style="font-weight: bold; color: #006400;">shortstop</span>|3=shortstops|4=short-stop|5=short stop|6=sslink}}</code></div>.


(Strictly speaking, this fact has nothing to do with this template, but may be of use to editors who are converting from one glossary style to the other.)
(Strictly speaking, this fact has nothing to do with this template, but may be of use to editors who are converting from one glossary style to the other.)
Line 84: Line 84:


{| class="wikitable"
{| class="wikitable"
  |-
  ! Output with use of {{Para|multi|y}}
! Result:
  ! versus no {{Para|multi|y}}
  ! versus no {{Para|multi|y}}
  |-
  |-
Line 114: Line 113:


== Other parameters ==
== Other parameters ==
<div class="floatright" style="background-color: #f9f9f9; border: 1px solid #aaa; box-sizing: border-box; margin: 0.5em 0 0.8em 1.4em; padding: 10px; font-size: 88%; max-width: 100%; width: 30%;"><div style="background-color: #f9f9f9; text-align: center; font-size: larger; font-weight: bold;">HTML5 update:</div><blockquote style="margin: 0; padding: 0;">Most of the restrictions on the content of <code>id</code> have been removed, so <code>id</code> values no longer have to begin with an <code>[a-z][A-Z]</code> alphabetic character, avoid most punctuation marks, or suffer other such limitations. The MediaWiki engine is smart enough to auto-escape any problematic characters, on the fly.</blockquote></div>
<div class="floatright" style="background-color: #f9f9f9; border: 1px solid #aaa; box-sizing: border-box; font-size: 88%; margin: 0.5em 0 0.75em 1.5em; max-width: 100%; padding: 0.75em; text-align: center; width: 30%;"><div style="background-color: #f9f9f9; font-size: larger; font-weight: bold; text-align: center;">HTML5 update:</div><blockquote style="margin: 0; padding: 0;">Most of the restrictions on the content of <code>id</code> have been removed, so <code>id</code> values no longer have to begin with an <code>[a-z][A-Z]</code> alphabetic character, avoid most punctuation marks, or suffer other such limitations. Kodi Wiki's MediaWiki engine is smart enough to auto-escape any problematic characters, on the fly.</blockquote></div>


The {{Para|id}} parameter can be used to assign a one-word, case-sensitive ID name to term. It must be unique on the page. This can be used as another #link target, and could have other metadata uses.  <em>By default, the {{Para|term}} a.k.a. {{Para|1}} parameter is already set as the ID, and this should rarely be overridden, unless there are two identical terms on the same page creating conflicting IDs.</em>  Usually the {{Tlx|Anchor}} template is used to add more link targets to an entry (see [[#Linking to the term|Linking to the term]] for details). Note that providing an empty <code>id</code> (such as with HTML {{Tag|!--|content=comments}}) will emit an empty <code>id</code> parameter to the tag, which is invalid HTML.
The {{Para|id}} parameter can be used to assign a one-word, case-sensitive ID name to term. It must be unique on the page. This can be used as another #link target, and could have other metadata uses.  <em>By default, the {{Para|term}} a/k/a {{Para|1}} parameter is already set as the ID, and this should rarely be overridden, unless there are two identical terms on the same page creating conflicting IDs.</em>  Usually the {{Tl|Anchor}} template is used to add more link targets to an entry (see [[#Linking to the term|Linking to the term]] for details). Note that providing an empty <code>id</code> (such as with HTML {{Tag|!--|content=comments}}) will emit an empty <code>id</code> parameter to the tag, which is invalid HTML.


The {{Para|noid}} parameter, if given as <kbd>true</kbd> / <kbd>y</kbd> / <kbd>yes</kbd>, will suppress generation of the <code>id</code> field entirely. This is usually undesirable, except in the case where the anchor {{Para|text}} of the generated {{Para|term}} is to another {{Tlx|Term}} defined in the article.
The {{Para|noid}} parameter, if given as <kbd>true</kbd> / <kbd>y</kbd> / <kbd>yes</kbd>, will suppress generation of the <code>id</code> field entirely. This is usually undesirable, except in the case where the anchor {{Para|text}} of the generated {{Para|term}} is to another {{Tnull|Term}} defined in the article.


The {{Para|class}} parameter will pass one or more space-separated CSS classes on to the {{Tag|dt|o}} element, in addition to the automatically included class <code>glossary</code>. <em>There is rarely any reason to do this, especially in mainspace.</em>
The {{Para|class}} parameter will pass one or more space-separated CSS classes on to the {{Tag|dt|o}} element, in addition to the automatically included class <code>glossary</code>. <em>There is rarely any reason to do this, especially in mainspace.</em>
Line 125: Line 124:
This shows both a very simple then a rather complex instance:
This shows both a very simple then a rather complex instance:


{|
{| style="border: 1px solid black; border-collapse: collapse;"
| style="border: 1px solid black; vertical-align: top;" |  
| style="vertical-align: top;" | <syntaxhighlight lang="moin">
<nowiki>==A&ndash;M==</nowiki><br /><br />
== A&ndash;M ==
<nowiki>{{Glossary}}</nowiki><br /><br />
 
<span class="example example-bold" style="font-weight: bold; color: #006400;"><nowiki>{{Term|1=applesnorkel}}</nowiki></span><br />
{{Glossary}}
<nowiki>{{Defn|1=Definition of term 1.}}</nowiki><br /><br />
 
<span class="example example-bold" style="font-weight: bold; color: #006400;"><nowiki>{{Term|term=arglefarst |content=''arglefarst''{{Anchor|argle-farst|argle farst}} }}</nowiki></span><br />
{{Term|1=applesnorkel}}
<nowiki>{{Defn|num=1 |defn=</nowiki><br />
{{Defn|1=Definition of first term.}}
Beginning of first definition of term 2<br />
 
<nowiki>{{</nowiki>[[Template:Gbq|gbq]]<nowiki>|1=Block quotation in first definition of term 2.}}</nowiki><br />
{{Term|term=arglefarst|content=''arglefarst''{{Anchor|argle-farst|argle farst}}}}
Conclusion of first definition of term 2.<br />
{{Defn|num=1|defn=Beginning of first definition of second term
<nowiki>}}</nowiki><br />
<blockquote class="templatequote glossary-blockquote" style="line-height: 1.5em; margin: 0 0 -1.35em; overflow: hidden; padding: 0 0 1.6em 2.5em; text-align: left;">Block quotation in first definition of second term.</blockquote>
<nowiki>{{Defn|num=2 |defn=Second definition of term 2.}}</nowiki><br /><br />
Conclusion of first definition of second term.
<nowiki>{{Glossary end}}</nowiki>
}}
  |-
{{Defn|num=2|defn=Second definition of second term.}}
  | style="border: 1px solid black; vertical-align: top;" |  
 
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">
{{Glossary end}}
</syntaxhighlight>
  |- style="border-top: 4px dashed darkslategray;"
  | style="vertical-align: top;" | <div style="padding-left: 3em; padding-right: 1em; overflow: hidden;">
<div style="color: #000000; background: none; overflow: hidden; page-break-after: avoid; font-size: 1.5em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0.25em; line-height: 1.3; padding: 0; border-bottom: 1px solid #AAAAAA;">A&ndash;M</div>
<div style="color: #000000; background: none; overflow: hidden; page-break-after: avoid; font-size: 1.5em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0.25em; line-height: 1.3; padding: 0; border-bottom: 1px solid #AAAAAA;">A&ndash;M</div>
{{Glossary}}
{{Glossary}}


{{Term|1=applesnorkel}}
{{Term|1=applesnorkel}}
{{Defn|1=Definition of term 1.}}
{{Defn|1=Definition of first term.}}


{{Term|term=arglefarst |content=''arglefarst''{{Anchor|argle-farst|argle farst}} }}
{{Term|term=arglefarst|content=''arglefarst''{{Anchor|argle-farst|argle farst}}}}
{{Defn|num=1 |defn=
{{Defn|num=1|defn=Beginning of first definition of second term
Beginning of first definition of term 2
<blockquote class="templatequote glossary-blockquote" style="line-height: 1.5em; margin: 0 0 -1.35em; overflow: hidden; padding: 0 0 1.6em 2.5em; text-align: left;">Block quotation in first definition of term 2.</blockquote>
{{gbq|1=Block quotation in first definition of term 2.}}
Conclusion of first definition of second term.
Conclusion of first definition of term 2.
}}
}}
{{Defn|num=2 |defn=Second definition of term 2.}}
{{Defn|num=2|defn=Second definition of second term.}}


{{Glossary end}}
{{Glossary end}}
}}
</div>
|}
|}


==Images, hatnotes, and other content==
== Images, hatnotes, and other content ==
Images, hatnotes and other "add-in" content intended to immediately follow the {{tnull|term}} <em>must be used at the top of (inside) the first {{Tnull|Defn}} of the {{Tnull|Term}}.</em> They <strong>cannot</strong> be placed between the {{Tnull|Term}} and {{Tnull|Defn}} or it will break the glossary markup. Images can, of course, be placed elsewhere within the {{Tnull|Defn}}, and bottom-notes like {{Tl|More}} can be placed at the end of, but <em>inside</em>, a {{Tnull|Defn}}. When used with a multi-definition term, the definition in which the {{Tnull|ghat}} appears must be manually numbered (usually <code>1&amp;nbsp; ...</code>, as shown in the example below).
Images, hatnotes and other "add-in" content intended to immediately follow the {{Tnull|Term}} <em>must be used at the top of (inside) the first {{Tnull|Defn}} of the {{Tnull|Term}}.</em> They <strong>cannot</strong> be placed between the {{Tnull|Term}} and {{Tnull|Defn}} or it will break the glossary markup. Images can, of course, be placed elsewhere within the {{Tnull|Defn}}, and bottom-notes can be placed at the end of, but <em>inside</em>, a {{Tnull|Defn}}. When used with a multi-definition term, the definition in which the hatnote appears must be manually numbered (usually <code>1.&amp;nbsp; ...</code>, as shown in the example below).


{|
{| style="border: 1px solid black; border-collapse: collapse;"
| style="border: 1px solid black; vertical-align: top;" |  
| style="vertical-align: top;" | <syntaxhighlight lang="moin">
<nowiki>{{term|1=colour ball |content=colour ball {{anchor|coloured ball|coloured balls|colour|colours|color ball}} }}</nowiki><br />
{{Term|1=colour ball|content=colour ball{{Anchor|coloured ball|coloured balls|colour|colours|color ball}}}}
<nowiki>{{defn|1=</nowiki><br />
{{Defn|1=[[File:Set of Snookerballs.png|thumb|right|150px|A complete set of snooker balls, with six '''colour balls''']]
<span class="example example-bold" style="font-weight: bold; color: #006400;"><nowiki>[[File:Set of Snookerballs.png|thumb|right|150px|A complete set of snooker balls, with six '''colour balls''']]</nowiki></span><br />
<p class="glossary-hatnote"><span class="hatnote">Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.</span></p>
<span class="example example-bold" style="font-weight: bold; color: #006400;"><nowiki>{{ghat|Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.}}</nowiki></span><br />
1.&nbsp; In snooker, any of the object balls that are not reds.
<span class="example example-bold" style="font-weight: bold; color: #006400;">1.&amp;nbsp;</span><nowiki>In snooker, any of the object balls that are not reds.</nowiki><br />
<nowiki>}}</nowiki><br />
<nowiki>{{Defn|no=2 |1=</nowiki><br />
<nowiki>In [[Blackball (pool)|blackball]], a generic, collective term for the red and yellow groups of object balls.</nowiki><br />
<nowiki>}}</nowiki><br />
|-
| style="border: 1px solid black; vertical-align: top;" |
<div style="padding-left: 3em; padding-right: 0; overflow: hidden;">
{{glossary}}
{{term|1=colour ball |content=colour ball {{anchor|coloured ball|coloured balls|colour|colours|color ball}} }}
{{defn|1= {{ghat|Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.}} [[File:Set of Snookerballs.png|thumb|right|150px|A complete set of snooker balls, with six '''colour balls''']]
1.&nbsp; In [[snooker]], any of the object balls that are not reds.
}}
}}
{{Defn|no=2 |1=
{{Defn|num=2|1=In blackball, a generic, collective term for the red and yellow groups of object balls.}}
In blackball, a generic, collective term for the red and yellow groups of object balls.
</syntaxhighlight>
|- style="border-top: 4px dashed darkslategray;"
| style="vertical-align: top;" | <div style="padding-left: 3em; padding-right: 1em; overflow: hidden;">
{{Glossary}}
 
{{Term|1=colour ball|content=colour ball{{Anchor|coloured ball|coloured balls|colour|colours|color ball}}}}
{{Defn|1=[[File:Set of Snookerballs.png|thumb|right|150px|A complete set of snooker balls, with six '''colour balls''']]
<p class="glossary-hatnote"><span class="hatnote">Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.</span></p>
1. &nbsp;In snooker, any of the object balls that are not reds.
}}
}}
{{Glossary end}}</div>
{{Defn|num=2|1=In blackball, a generic, collective term for the red and yellow groups of object balls.}}
 
{{Glossary end}}
</div>
|}
|}
{{Clear}}
{{Clear}}


==Technical details==
== Technical details ==
What this template does on the technical level is wrap the <var>term</var> in the {{Tag|dfn}} HTML element to semantically mark the term as the <em>defining instance</em> on the page of the defined term, and puts this marked-up content inside a {{Tag|dt}} ''term'' element of a {{Tag|dl}} description list (a.k.a. definition list, association list; the list is generated by the {{Tlx|Glossary}} and {{Tlx|Glossary end}} templates), and gives CSS <code>class="glossary"</code> to the {{Tag|dt|o}} element. That class isn't doing anything yet, but it could later, like a slight font size increase.
What this template does on the technical level is wrap the <var>term</var> in the {{Tag|dfn}} HTML element to semantically mark the term as the <em>defining instance</em> on the page of the defined term, and puts this marked-up content inside a {{Tag|dt}} ''term'' element of a {{Tag|dl}} description list (a.k.a. definition list, association list; the list is generated by the {{Tl|Glossary}} and {{Tl|Glossary end}} templates), and gives CSS <code>class="glossary"</code> to the {{Tag|dt|o}} element. That class isn't doing anything yet, but it could later, like a slight font size increase.


Do not specify a null ID (such as <code><nowiki>id=<!-- no ID --></nowiki></code>). Empty or null <span class="monospaced" style="font-family: monospace, monospace;">id</span> HTML parameters produce invalid HTML5 output.<includeonly>
Do not specify a null ID (such as <code><nowiki>id=<!-- no ID --></nowiki></code>). Empty or null <span class="monospaced" style="font-family: monospace, monospace;">id</span> HTML parameters produce invalid HTML5 output.<includeonly>
<!-- CATEGORIES HERE, THANKS -->




<!-- CATEGORIES HERE, THANKS -->
[[Category:Definition list templates]]
[[Category:Glossary templates]]
[[Category:Glossary templates]]</includeonly>
[[Category:Definition list templates]]</includeonly>

Revision as of 06:45, 13 September 2021


Usage

The {{term}} template is used in template-structured glossaries to create terms to be defined, that are properly structured, have semantic value, and can be linked to as if independent sections. It is a wrapper for <dt>...</dt>, the description list term HTML element.

Basic usage:

{{Glossary}}
{{Term}}
{{Defn}}
{{Glossary end}}

Inline templates, reference citations, wikimarkup styles, et cetera, can be applied to the term in the second parameter, |content= or |2=, as long as it remains without markup in the first parameter, |term= or |1=. Technically, the explicit parameter names are optional if the term or content does not contain the "=" character, but as any editors can add material, including templates or URLs with this character in them, it is always safest to explicitly name or number the parameters.

  • This will work: {{term|term=E=MC²}}
  • This will work: {{term|1=E=MC²}}
  • This will fail:   {{term|E=MC²}}

More complex usage is typically:

{{term|term=term with no markup|content=term with markup}}

or

{{term|1=term with no markup|2=term with markup}}

or

{{term|1=term with no markup|content=term with markup}}

Wiki-styling and linking of the term

If the second or |content= parameter is styled with wikimarkup, linked, or otherwise altered inside the template, the term must also be retained in unstyled form as the first or |term= parameter. Failing to do so will cause the template to malfunction, since it must have a "clean" term name to use as the id of the element, for linking purposes, among other reasons. The order intentionally mirrors that of piped wikilinking ([[title|styled]]).

  • Correct: {{term|1=EventServer|2=''EventServer''}}
  • Wrong: {{term|1=''EventServer''}}

Style cannot be applied around the template, either, as it is a container for content (the term), not content itself (and doing so will produce invalid markup that will have unpredictable results depending upon browser):

  • Wrong: ''{{term|1=EventServer}}''

For the same reasons that links to other pages are discouraged in headings, links are discouraged in glossary terms:

  • Deprecated: {{term|1=EventServer|2=''[[EventServer]]''}}
  • Preferred: {{term|1=EventServer|2=''EventServer''}}, and use of a hatnote in the associated {{Defn}} template to link to the main article EventServer.

Again, as with the first parameter (the term) itself, if the "=" character (equals sign) is used in the content of this second parameter, the syntax requires that the parameter be explicitly specified (and because many URLs, e.g. in reference citations, can contain this character, it is always safest to number or name the parameters):

numbered:

{{term|1=E=MC²|2=E=MC<sup>2</sup>}}

or named:

{{term|term=E=MC²|content=E=MC<sup>2</sup>}}

Linking to the term

{{term}} automatically creates a link anchor point (an HTML id) from an all-lowercase conversion of the original term (|term= or |1=) or |id=. About 90% of the links to glossary entries are going to be mid-sentence, and thus will start with a lower-case letter, except for proper names. So, the only catch is if you manually create a link like [[List of built-in functions#system built-in.27s|System built-ins]] and do not lower-case the #system built-in.27s part.

If your glossary has an unusual case in which one entry and another share the exact same name except for case (thus would get the same lower-cased HTML id), then the upper-case one must be given a unique |id= value, and prevented from conflicting with the lower-case one's HTML id. This can be done by changing its |id= to a variant (e.g. with a number), then manually injecting a second HTML id (with upper-case) by using the |content= parameter and an anchor template:

  {{Term|term=foo}}
  {{Defn|Definition of lower-case version here ...
  {{Term|term=Foo|id=Foo_2|content={{Anchor|Foo}}}}
  {{Defn|Definition of proper-name version here ...

You can then link to them as #foo and #Foo, respectively. (Technically the second can also be addressed as #foo_2, which will have been lower-cased by the template code, but this would not be very intuitive and is just an artifact of the work-around.)

The template {{Anchor}} can also be used in the |content= a/k/a |2= parameter, for instance to provide the plural of the term (the most common usage), an alternative spelling, the old name of an entry that was linked to but has since changed, or a shortcut link anchor name.

As with styled terms, the first parameter must be used to provide the "bare" term, the second to provide this extra markup. It is not necessary to add the term itself to the {{anchor}} template when using {{term}}:

{{term|1=shortstop|content=shortstop{{anchor|shortstops|short-stop|short stop|sslink}}}}

By contrast, when using semicolon-delimited terms in unstructured glossaries, the term does need to be added explicitly as an anchor if link anchorage is desired (which is almost always the case):

; shortstop{{anchor|shortstop|shortstops|short-stop|short stop|sslink}}
.

(Strictly speaking, this fact has nothing to do with this template, but may be of use to editors who are converting from one glossary style to the other.)

Multiple terms sharing a definition

Two or more {{term}}s can be used for synonyms with a shared definition, though keep in mind that people looking for one and not finding it where they expect it to be alphabetized are liable to assume it is missing if you do not create a cross-reference entry. The parameter |multi=y is used on second and subsequent terms to visually group the terms close together so it is clear that they share a definition:

Example:

{{Term|1=aspirin}}
{{Defn|1=A mild analgesic of the non-steroidal anti-inflammatory drug (NSAID) family...}}
{{Term|1=heroin}}
{{Term|1=diacetylmorphine |multi=y}}
{{Term|1=diamorpine |multi=y}}
{{Defn|1=A synthetic narcotic drug of the opiate family...}}
{{Term|1=ranitidine}}
{{Defn|1=An antacid of the proton pump inhibitor family...}}
Output with use of |multi=y versus no |multi=y
aspirin
A mild analgesic of the non-steroidal anti-inflammatory drug (NSAID) family...
heroin
diacetylmorphine
diamorpine
A synthetic narcotic drug of the opiate family...
ranitidine
An antacid of the proton pump inhibitor family...
aspirin
A mild analgesic of the non-steroidal anti-inflammatory drug (NSAID) family...
heroin
diacetylmorphine
diamorpine
A synthetic narcotic drug of the opiate family...
ranitidine
An antacid of the proton pump inhibitor family...

Applying CSS styles to the term

The |style= parameter will pass CSS styling on to the <dt> element, e.g. |style=font-family: serif;. I.e., this styles the term itself, not the definitions of it, other term entries, or the glossary as a whole. This feature is uncommonly but sometimes importantly needed in articles (usually for formatting the appearance of an specific entry for some reason, e.g. certain mathematical constants and the like that are always given in a serif font). It can also be useful outside of articles, for things like matching custom projectpage or userpage style.

Other parameters

HTML5 update:

Most of the restrictions on the content of id have been removed, so id values no longer have to begin with an [a-z][A-Z] alphabetic character, avoid most punctuation marks, or suffer other such limitations. Kodi Wiki's MediaWiki engine is smart enough to auto-escape any problematic characters, on the fly.

The |id= parameter can be used to assign a one-word, case-sensitive ID name to term. It must be unique on the page. This can be used as another #link target, and could have other metadata uses. By default, the |term= a/k/a |1= parameter is already set as the ID, and this should rarely be overridden, unless there are two identical terms on the same page creating conflicting IDs. Usually the {{Anchor}} template is used to add more link targets to an entry (see Linking to the term for details). Note that providing an empty id (such as with HTML <!-->comments</!-->) will emit an empty id parameter to the tag, which is invalid HTML.

The |noid= parameter, if given as true / y / yes, will suppress generation of the id field entirely. This is usually undesirable, except in the case where the anchor |text= of the generated |term= is to another {{term}} defined in the article.

The |class= parameter will pass one or more space-separated CSS classes on to the <dt> element, in addition to the automatically included class glossary. There is rarely any reason to do this, especially in mainspace.

Examples

This shows both a very simple then a rather complex instance:

== A&ndash;M ==

{{Glossary}}

{{Term|1=applesnorkel}}
{{Defn|1=Definition of first term.}}

{{Term|term=arglefarst|content=''arglefarst''{{Anchor|argle-farst|argle farst}}}}
{{Defn|num=1|defn=Beginning of first definition of second term
<blockquote class="templatequote glossary-blockquote" style="line-height: 1.5em; margin: 0 0 -1.35em; overflow: hidden; padding: 0 0 1.6em 2.5em; text-align: left;">Block quotation in first definition of second term.</blockquote>
Conclusion of first definition of second term.
}}
{{Defn|num=2|defn=Second definition of second term.}}

{{Glossary end}}
A–M
applesnorkel
Definition of first term.
arglefarst
1.  Beginning of first definition of second term

Block quotation in first definition of term 2.

Conclusion of first definition of second term.
2.  Second definition of second term.

Images, hatnotes, and other content

Images, hatnotes and other "add-in" content intended to immediately follow the {{term}} must be used at the top of (inside) the first {{defn}} of the {{term}}. They cannot be placed between the {{term}} and {{defn}} or it will break the glossary markup. Images can, of course, be placed elsewhere within the {{defn}}, and bottom-notes can be placed at the end of, but inside, a {{defn}}. When used with a multi-definition term, the definition in which the hatnote appears must be manually numbered (usually 1.&nbsp; ..., as shown in the example below).

{{Term|1=colour ball|content=colour ball{{Anchor|coloured ball|coloured balls|colour|colours|color ball}}}}
{{Defn|1=[[File:Set of Snookerballs.png|thumb|right|150px|A complete set of snooker balls, with six '''colour balls''']]
<p class="glossary-hatnote"><span class="hatnote">Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.</span></p>
1.&nbsp; In snooker, any of the object balls that are not reds.
}}
{{Defn|num=2|1=In blackball, a generic, collective term for the red and yellow groups of object balls.}}
colour ball
A complete set of snooker balls, with six colour balls

Also coloured ball(s), colour(s); American spelling color sometimes also used.

1.  In snooker, any of the object balls that are not reds.
2.  In blackball, a generic, collective term for the red and yellow groups of object balls.

Technical details

What this template does on the technical level is wrap the term in the <dfn>...</dfn> HTML element to semantically mark the term as the defining instance on the page of the defined term, and puts this marked-up content inside a <dt>...</dt> term element of a <dl>...</dl> description list (a.k.a. definition list, association list; the list is generated by the {{Glossary}} and {{Glossary end}} templates), and gives CSS class="glossary" to the <dt> element. That class isn't doing anything yet, but it could later, like a slight font size increase.

Do not specify a null ID (such as id=<!-- no ID -->). Empty or null id HTML parameters produce invalid HTML5 output.