Template:Defn/sandbox
This is the template sandbox page for Template:Defn (diff). See also the companion subpage for test cases. |
Usage
[edit]The template {{defn}}
is used in template-structured glossaries to create definitions of terms.
It is a wrapper for <dd>...</dd>
, the description list definition HTML element. The template has a mnemonic redirect at {{dd}}
.
Basic usage:
{{glossary}} {{term|1=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 might be:
{{defn|1=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
[edit]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 the content of {{defn}}
s.
{{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''']]
{{ghat|Also '''coloured ball(s)''', '''colour(s)'''; American spelling '''color''' sometimes also used.}}
In [[snooker]], any of the {{cuegloss|object ball}}s that are not {{cuegloss|red ball|reds}}.
}}
{{glossary end}}
|
|
Multiple definitions for one term
[edit]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}}
|
|
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, cross-reference hatnotes, and other block-level markup inside each definition. The definitions can also be independently linked.
Use of a "standard" hatnote with a numbered definition would require manual numbering or it would look weird. But this method is deprecated anyway. An example of forcing it to kinda work:
{{term|1=blackjack|content=blackjack{{anchor|Blackjack}} }}
{{defn |1={{main|Blackjack}}}}
{{defn|no=1|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). }}
It's better to use the {{ghat}}
template, for glossary hatnotes, and put it inside the first (or most applicable) definition. This obviates creating a pseudo-definition to hold the hatnote, as shown above. {{Ghat}}
(which uses Module:Hatnote inline) has some CSS adjustments to work better than {{Hatnote}}
and its derivatives, when used inside a definition.
Making the definition independently linkable
[edit]Most of the restrictions on the content of
id
have been removed, soid
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.
{{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}}
|
|
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. Lorem ipsum dolor sit amet.</dd>
<dd class="glossary" id="blubbermonster-defn2">2. 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
[edit]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 |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
[edit]This shows both a very simple then a rather complex instance:
Markup |
|
---|---|
Renders as | A–M
|
Applying CSS styles to the definition
[edit]The |style=
parameter will pass CSS styling on to the <dd>
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
[edit]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 <dd>
element. There is rarely any reason to do this.
Note: With the use of TemplateStyles in the enclosing {{glossary}}
(which generates the HTML <dl class="glossary">
tag), this template no longer includes the glossary
class by default.
See also
[edit]{{glossary}}
a.k.a.{{glossary start}}
or{{glossary begin}}
– Half of a template pair; uses<dl>
with a class to open the structured glossary definition list that{{glossary end}}
closes.{{glossary end}}
– The other half of this template pair; uses</dl>
to close the definition list that{{glossary}}
opens.{{term}}
– The glossary term to which the{{defn}}
definition applies; a customized<dt>
with a class and an embedded<dfn>
.{{defn}}
– The definition that applies to the{{term}}
; uses<dd>
with a class{{ghat}}
– a hatnote template properly formatted for the top of a{{defn}}
definition{{glossary link}}
– meta-template for creating shortcut templates for linking to definitions in specific glossaries- Wikipedia:Manual of Style/Glossaries
- Not to be confused with {{dfn}}