Template:Defn/doc

From Hârn
Jump to navigation Jump to search

Usage[edit source]

The template {{defn}} is used in template-structured glossaries to create definitions of terms. It is a wrapper for TAG, the description list definition HTML element. The template has a mnemonic redirect at {{dd}}.

Basic usage:

{{glossary}}
{{term}}
{{defn|1=Definition.}}
{{glossary end}}

Links, inline templates, reference citations, wikimarkup styles, etc., can be applied to the definition. Technically, the |1= part is optional if the content of the definition does not contain the "=" character, but as any editors can add content, including templates with this character in them, it is always safest to explicitly name the parameter. The |1= parameter can also be called |defn= for those who don't care for numeric parameters.

  • This will work: {{defn|1=The concept that the mass of a body is a measure of its energy content, expressed by the formula E=MC²}}
  • This will work: {{defn|defn=The concept that the mass of a body is a measure of its energy content, expressed by the formula E=MC²}}
  • This will fail: {{defn|The concept that the mass of a body is a measure of its energy content, expressed by the formula E=MC²}}

More complex usage is typically:

{{defn|defn=Definition. |no=# |term=term_id}}

where |no=# gives a leading number for a definition in a list of definitions, and |term=term_id provides the name of the term used in the {{Term}} template to which this definition pertains.

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 like {{more}} can be placed at the ends of but inside {{defn}}s.


{{glossary}}
{{term|1=colour ball |content= colour ball {{anchor}}}}
{{defn|1=
[[File:Set of Snookerballs.png|thumb|right|150px|A complete set of snooker balls, with six '''colour balls''']]
{{ghat}} 
In [[snooker]], any of the {{cuegloss}}s that are not {{cuegloss|red ball|reds}}.
}}
{{glossary end}}


colour ball




A complete set of snooker balls, with six colour balls


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



In snooker, any of the object balls that are not reds.








=== Multiple definitions for one term ===

If a single {{term}} has multiple definitions, they are simply numbered with the |2=parameter explicitly. Think of the parameter as standing for "2nd or later definition". You can also call it |no=, if you prefer (from "No.") Example:

{{glossary}}
{{term|1=blubbermonster}}
{{defn|1=Lorem ipsum dolor sit amet. |no=1}}
{{defn|1=Consectetur adipisicing elit. |no=2}}
{{glossary end}}



blubbermonster

1.  Lorem ipsum dolor sit amet.

2.  Consectetur adipisicing elit.

Because of the uneven length of definitions, it is usually more convenient to put the |2= before the |1= description:

{{defn |2=1 |1=Lorem ipsum dolor sit amet.}}

or

{{defn |no=1 |1=Lorem ipsum dolor sit amet.}}

This is a very robust method, because it permits complex content like block quotations, nested lists, {{main}} cross-reference hatnotes, and other block-level markup inside each definition. The definitions can also be independently linked.

Use of a hatnote with a numbered definition requires manual numbering or it will look weird:

{{term|1=blackjack|content=blackjack{{anchor|Blackjack}} }}
{{defn|1={{main|Blackjack}}
1.  A card game in which players attempt to approach 21 but not exceed it.
}}

{{defn|no=2|1=The best possible hand in the game of blackjack, made up of an ace and a card valued at 10 (namely, 10, J, Q, K). }}

Making the definition independently linkable

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. Wikipedia's MediaWiki engine is smart enough to auto-escape any problematic characters, on the fly.

To enable a link directly to a specific definition, name the definition with its {{term}} (or it must be the |id=foo value, if any, used in {{term}}). This must be unique on the page for each term, but should be the same for multiple definitions of the same term). This is done with the {{defn}}'s |term= parameter. This will produce a #-link target ID in the form term-defn#, where the # is the number of the definition (see #Multiple definitions for one term, above), defaulting to "1". Example:

{{glossary}}
{{term|1=blubbermonster}}
{{defn|no=1 |1=Lorem ipsum dolor sit amet. |term=blubbermonster}}
{{defn|no=2 |1=Consectetur adipisicing elit. |term=blubbermonster}}
{{term|1=snorkelweasel (noun)}}
{{defn|1=Ut enim ad minim veniam |term=snorkelweasel (noun)}}
{{glossary end}}

blubbermonster

1.  Lorem ipsum dolor sit amet.

2.  Consectetur adipisicing elit.

snorkelweasel (noun)

Ut enim ad minim veniam

 HTML output:
<dl class="glossary">
  <dt class="glossary" id="blubbermonster" style="margin-top: 0.4em;"><dfn class="glossary">blubbermonster</dfn></dt>
  <dd class="glossary" id="blubbermonster-defn1">1.&nbsp;&nbsp;Lorem ipsum dolor sit amet.</dd>
  <dd class="glossary" id="blubbermonster-defn2">2.&nbsp;&nbsp;Consectetur adipisicing elit.</dd>
  <dt class="glossary" id="snorkelweasel_(noun)" style="margin-top: 0.4em;"><dfn class="glossary">snorkelweasel (noun)</dfn></dt>
  <dd class="glossary" id="snorkelweasel_(noun)-defn1">Ut enim ad minim veniam</dd>
</dl>

Note that some characters in snorkelweasel (noun)" have been converted on the fly by MediaWikia by the time it sends the ID to the browser as snorkelweasel_.28noun.29-defn1. You can still link to it on this page as #snorkelweasel (noun)-defn1 (view page source and see for yourself – that link has href=#snorkelweasel_.28noun.29-defn1).

The IDs blubbermonster-defn1, blubbermonster-defn2,  and snorkelweasel_(noun)-defn1 are all individually linkable, e.g. as [[Glossary of weird terms#blubbermonster-defn1]]. This is especially useful for cross-references within the glossary, e.g. See also [[#blubbermonster-defn2|"blubbermonster", sense 2]].

To add more than one linkable anchor, use the {{anchor}} template at the beginning of the definition's content:

{{defn|no=2|1={{anchor|elit|Elit}}Consectetur adipisicing elit.|term=blubbermonster}}

Languages

There is no |lang= parameter, as on English Wikipedia all definitions are necessarily in English. For uses of glossary markup for non-glossary purposes in which some content may be in a foreign language, use language templates. E.g. in a list of film title translations formatted using glossary markup:

{{glossary}}
{{term|1=Titles of La Vie en Rose in various languages&nbsp;|content=Titles of ''[[La Vie en Rose]]'' in various languages}}
{{defn|1=French: ''{{lang|fr|La Vie en Rose}}''}}
{{defn|1=English: ''Life in Pink''}}
...
{{glossary end}}

Examples

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

==A–M==
{{glossary}}
{{term|1=applesnorkel}}
{{defn|1=Definition of term 1.}}
{{term|term=arglefarst |content=''{{lang|xx|arglefarst}}''{{anchor|argle-farst|argle farst}} }}
{{defn|no=1 |defn=
Beginning of first definition of term 2
{{gbq|1=Block quotation in first definition of term 2.}}
Conclusion of first definition of term 2.}}
{{defn|no=2 |defn=Second definition of term 2.}} {{glossary end}}
A–M





applesnorkel

Definition of term 1.


[arglefarst] error: {{lang}}: unrecognized language code: xx (help)

1.  
Beginning of first definition of term 2
Block quotation in first definition of term 2.

Conclusion of first definition of term 2.

2.  Second definition of term 2.



Applying CSS styles to the definition

The |style= parameter will pass CSS styling on to the TAG element, e.g. |style=font-family:serif; or whatever. I.e., this styles the definition itself, not the term it applies to, other definitions, or the glossary as a whole. This feature is rarely if ever needed in articles, but can be useful elsewhere for things like matching custom user page style.

Other parameters

The |id= parameter can be used to assign a one-word, case-sensitive ID name to definition. It must be unique on the page. This can be used as a #link target, and could have other metadata uses. See the #Making the definition independently linkable section for how to normally make a definition linkable. Probably the only reason to use this feature is if there are two terms with the same name on the page, which would result in conflicting IDs.

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

Template:Glossary[edit source]

Usage

The template {{glossary}} (a.k.a. {{glossary start}} or {{glossary begin}}) is used with {{glossary end}} to explicitly bracket a glossary or glossary-like description list (also called a definition list or association list), especially in a template-structured glossary, although such lists can be used more generally. This is required (as a technical matter) for template-structured glossaries, and is good practice anywhere description/definition lists are used for glossaries. The template pair invoke the TAG description list HTML element. Unfortunately, the "{{dl}}" mnemonic is not available as a redirect as of this writing.

The pair of templates incidentally prevent Hârnipedia's MediaWiki software engine from auto-creating redundant definition list code (TAG) around terms and definitions if they have blank lines between them, as they often do, especially in non-structured glossaries.

Typical usage:

{{glossary}}
{{term}}
{{defn}}
{{glossary end}}
Parameters
  • |id=   can be used to assign a one-word ID name to the glossary. This can be used as a #id link target, and could have other metadata uses.
  • |style=   will pass CSS styling on to the TAG element. I.e., this styles the definition list itself, as a container, not the individual terms and definitions with it. There is rarely any reason to do this.
  • |class=   will pass one or more space-separate CSS classes on to TAG element, in addition to the automatically included class glossary. There is rarely any reason to do this.
Examples

This shows both a very simple then a rather complex instance in a structured glossary (including an entry with a block quotation, using the glossary block quotation template, {{gbq}}):


==A&ndash;M==

{{glossary}}

{{term|1=applesnorkel}}
{{defn|1=Definition of term 1.}}

{{term|term=arglefarst |content=''{{lang|xx|arglefarst}}''{{anchor|argle-farst|argle farst}} }}
{{defn|no=1 |defn=Beginning of first definition of term 2
{{gbq|1=Block quotation in first definition of term 2.}}
Conclusion of first definition of term 2.
}}
{{defn|no=2 |defn=Second definition of term 2.}}

{{glossary end}}
A–M




applesnorkel

Definition of term 1.


arglefarst

1.  Beginning of first definition of term 2

Block quotation in first definition of term 2.

Conclusion of first definition of term 2.

2.  Second definition of term 2.



Scope

This family of templates, like the underlying definition list code, is primarily intended for definitional uses, but can have other applications. The HTML 4.01 Specification itself says:

Definition lists...generally consist of a series of term/definition pairs (although definition lists may have other applications). Thus, when advertising a product, one might use a definition list:
Lower cost
The new version of this product costs significantly less than the previous one!
Easier to use
We've changed the product so that it's much easier to use!
Safe for kids
You can leave your kids alone in a room with this product and they won't get hurt (not a guarantee).

Thus, editors should feel free to use definition list markup as an alternative to bulleted or numbered lists when the material is well-suited to definition list presentation.

Template:Term[edit source]

Usage

The template {{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, the description list term HTML element. The template has a mnemonic redirect at {{dt}}.

Basic usage:

{{glossary}}
{{term|1=term}}
{{defn}}
{{glossary end}}

Inline templates, reference citations, wikimarkup styles, etc., 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=esprit de corps|2=''esprit de corps''}}
  • Wrong: {{term|1=''esprit de corps''}}

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=esprit de corps}}''

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

  • Deprecated: {{term|1=esprit de corps|2=''[[esprit de corps]]''}}
  • Preferred: {{term|1=esprit de corps|2=''esprit de corps''}}, and use of a {{ghat}} hatnote in the {{defn}} definition to link to the main article Esprit de corps.

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 anchors from the original term (|term= or |1=) or |id= value, as entered, and an all-lower-case version. About 90% of the links to glossary entries are going to be mid-sentence, and will expect to start with a lower-case letter, except for proper names. If your glossary has a case where one entry and another share the same name except for case, the second one must be given a unique |id=:

  {{term|term=Foo}}
  {{term|term=foo|id=foo (2)}}

You can then link to them as #Foo and foo (2) respectively. List the one first that is likely to get the most links.

The template {{anchor}} can also be used in the |content= a.k.a. |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. This feature can be used for cases where something has mixed case in mid-sentence but begins with upper case at the beginning of one (i.e., where you need something other than the original mixed case and the auto-generated all-lower-case version).

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 as an anchor explicitly if link anchorage is desired (which is almost always the case):

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

or use {{vanchor}}

;{{vanchor|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 {{terms}} 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...}}
Result: 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...
Languages

To indicate the language of a non-English term, use the {{lang}} template and the ISO 639 language codes as documented at that template:

{{term|1=esprit de corps |content=''{{lang|fr|esprit de corps}}''}}

This shows no visual change for most languages:

esprit de corps

For all non-English languages this provides many metadata features, but it is essential for those that do not use the Latin alphabet, so that the content displays properly in various browsers.

If it is useful to indicate the name of the language, there are individual templates for most languages, with names based on the ISO codes, and which automatically italicize the foreign content:

{{term|1=esprit de corp |content={{lang-fr|esprit de corps}}s}}

which renders as:

French: esprit de corps
When two or more language variants of a term share the same definition:

As detailed above, two or more terms, as variations or alternatives, can share definitions. The most common use case for this is presenting the term in two variants of English. Example:

{{term|1=tyre|content={{lang-en-GB|tyre}} }}
{{term|1=tire|content={{lang-en-US|tire}} |multi=y}}
{{defn|1=A resilient wheel covering usually made of vulcanized rubber.}}

Note the use of |multi=y in the second term; this groups the two terms together.

Result:

British English: tyre
American English: tire
A resilient wheel covering usually made of vulcanized rubber.

In a different format, more appropriate for alphabetical glossaries:

{{term|1=tyre|content={{lang|en-GB|tyre}} {{small|([[British English]])}} }}
{{term|1=tire|content={{lang|en-US|tire}} {{small|([[American English]])}} |multi=y}}
{{defn|1=A resilient wheel covering usually made of vulcanized rubber.}}

Result:

tyre (British English)
tire (American English)
A resilient wheel covering usually made of vulcanized rubber.

That example uses the {{Lang}} template with language codes as the first parameter, rather than the {{lang-xx}} templates.

The {{Term}} template has no |lang= parameter of its own (and shouldn't – there are too many pitfalls).

Applying CSS styles to the term

The |style= parameter will pass CSS styling on to the TAG 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. Wikipedia'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).

The |class= parameter will pass one or more space-separated CSS classes on to the TAG 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–M==

{{glossary}}

{{term|1=applesnorkel}}
{{defn|1=Definition of term 1.}}

{{term|term=arglefarst |content=''{{lang|xx|arglefarst}}''{{anchor|argle-farst|argle farst}} }}
{{defn|no=1 |defn=
Beginning of first definition of term 2
{{gbq|1=Block quotation in first definition of term 2.}}
Conclusion of first definition of term 2.
}}
{{defn|no=2 |defn=Second definition of term 2.}}

{{glossary end}}
A–M
applesnorkel
Definition of term 1.
[arglefarst] error: {{lang}}: unrecognized language code: xx (help)
1.  Beginning of first definition of term 2
Block quotation in first definition of term 2.
Conclusion of first definition of term 2.
2.  Second definition of term 2.
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 like {{more}} can be placed at the end of, but inside, a {{defn}}. When used with a multi-definition term, the definition in which the {{ghat}} 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''']]
{{ghat|Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.}}
1.&nbsp; In [[snooker]], any of the {{cuegloss|object ball|object balls}} that are not {{cuegloss|red ball|reds}}.
}}
{{defn|no=2 |1=
In [[Blackball (pool)|blackball]], a generic, collective term for the red and yellow {{cuegloss|group|groups}} of object balls.
}}
colour ball

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

A complete set of snooker balls, with six colour balls
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 TAG 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 TAG term element of a TAG 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 TAG element. That class isn't doing anything yet, but it could later, like a slight font size increase.

See also

  • {{glossary}} a.k.a. {{gloss}} – Half of a template pair; uses TAG with a class to open the structured glossary definition list that {{glossend}} closes.
  • {{glossary end}} a.k.a. {{glossend}} – The other half of this template pair; uses TAG to close the definition list that {{gloss}} opens.
  • {{term}} – The glossary term to which the {{defn}} definition applies; a customized TAG with a class and an embedded TAG.
  • {{defn}} – The definition that applies to the {{term}}; uses TAG with a class
  • {{ghat}} – a hatnote template properly formatted for the top of a {{defn}} definition
  • {{gbq}} a.k.a. {{gquote}} – a block quotation template properly formatted for inclusion in a {{defn}} definition
  • {{glossary link}} – meta-template for creating shortcut templates for linking to definitions in specific glossaries
  • Hârnipedia:Manual of Style/Glossaries