Template:descendant tree

Revision as of 19:10, 2 June 2024 by TheNightAvl (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
TemplateDocumentation.svg Template documentation [view] [edit] [purge]

This template generates descendant trees which are automatically sorted. Borrowings are listed after inherited terms, and unattested forms are listed after attested terms.

Usage

This template has various features, and so will be discussed in sections.

Base functionality

Language entries are added as arguments in the format |code:term1|term2|term3…. Space characters after the colon are ignored. Just as with {{descendant}}, inline arguments can be used:

{{descendant tree
|hrd-pro: ṯṓchus
|rad-pro: hāšur
|rad: háșe|háș
|lfv: tus
|ryn: húr<t:night-time religious service>
}}

Languages without a specified term are displayed as lost:

{{descendant tree
|lfv:ejym
|ryn:firo
|ryn-o:firaom
|ryn-pro:firáumă
|hrd-pro:p̄iḏɔ̄́məs
|rad-pro:
}}

Inline arguments can also be given after the language code, which would be the equivalent of an argument to {{descendant}}:

{{descendant tree
|lfv: ejym
|ryn: firo
|ryn-o: firaom
|ryn-pro: firáumă
|hrd-pro: p̄iḏɔ̄́məs
|rad-pro<lost:this is a custom lost text>:
}}

Language-wide arguments without a defined value are interpreted as true:

{{descendant tree
|lfv-pro: aðəh
|lfv: ao
|hrd-pro: p̄ɯ́ḏɯs
|rad-pro<see>: hırs
|ryn-pro: fúru
|ryn: fur
}}

Indentation

Extra indentation can be done with |indent= or |in= specifying the list type. The template must be on the same line as its superordinate item. This is useful on root pages:

* {{lnk-pro-morph|cin|-Cé:n|-s}} (nominalisation)<!--
-->{{descendant tree|indent=*
|kil:šinni
|hrd-pro:c̱innés
|ryn:șinne
|rad-pro:šinner
|lus:sìnni
|rad:sjena
}}

Borrowing

Borrowing can specified either with the inline argument <bor> or by using > before the language code.

{{descendant tree
|ryn<bor>:líra
}}
{{descendant tree
|>rad:Riás
}}

The advantage of using >, however, is that it can be sorted below its source language with the language code before >.

{{descendant tree
|lus-o:zāht
|lus:zā
|rad-o:ðātt
|rad:lát
|rad>ryn:lâtad
}}

Descendants of borrowings

The caveat to using the borrowing sorting system is that all descendants of borrowings must be individually specified as full extensions of the borrowed language code via _:

{{descendant tree
|rad-o:rījø̄r
|rad-m:Ríǿr
|rad:Rỷr
|rad-o>ryn-o:rīŗa
|rad-o>ryn-o_ryn:ríŗa
}}

This allows for borrowed doublets:

{{descendant tree
|hrd-pro:Thwɛ̄́ljeŋjəs
|rad-pro:Θwêljeŋjs
|rad-o:Þø̄ljeŋjs
|rad:Þýljenș
|ryn-pro:Páiljeḡă
|ryn-o:Pailjeŗ
|ryn:Pailiŗ
|ryn-pro>rad-pro:Pailjeɣs
|ryn-pro>rad-pro_rad-o:Pailjews
|ryn-pro>rad-pro_rad-o_rad:Paijøs
}}

Order-based shorthand

As a shorthand to the above system, prefacing a language code with >> will parse it as a borrowing from the language specified before it. Similarly, using the prefix _ without a language code before it will parse it as a descendant of the last defined language code. While useful as a shorthand, this only works with a singular descendant branch.

{{descendant tree
|hrd-pro:Thwɛ̄́ljeŋjəs
|rad-pro:Θwêljeŋjs
|rad-o:Þø̄ljeŋjs
|rad:Þýljenș
|ryn-pro:Páiljeḡă
|>>rad-pro:Pailjeɣs
|_rad-o:Pailjews
|_rad:Paijøs
|ryn-o:Pailjeŗ
|ryn:Pailiŗ
}}

Internal doublets

In the case of having multiple internal reflexes which then have their own descendants, specifying the language code more than once will generate different branches. This will be sorted into the most recent unnumbered historical form:

{{descendant tree
|hrd-pro:lȳ́rḡis
|ryn-pro:lȳ́rḡi
|ryn-o:lȳr
|ryn:lyr
|rad-pro:lȳrdzir
|rad-o:lȳrdzre|lȳrwre
|rad-m:lýrdzs
|rad:lyerdzs<t:gas>
|rad-m:lýrus
|rad:lýrus<t:air>
}}

Multiple occurrences of a language code are numbered automatically, and are displayed in order of specification in the template, not in alphabetical order of the terms. Note that different branches of hierarchical languages are sorted based on order of specification, i.e. if both |ryn: and |ryn-o: are specified twice, the first specification of |ryn: will be listed under the first specification of |ryn-o:, the second under the second etc.

{{descendant tree
|hrd-pro:lȳ́rḡis
|ryn-pro:lȳ́rḡi
|ryn-o:lȳr
|ryn:lyr
|rad-pro:lȳrdzir
|rad-o:lȳrdzre|lȳrwre
|rad-m:lýrdzs
|rad-m:lýrus
|rad:lyerdzs<t:gas>
|rad:lýrus<t:air>
}}

The indexing can also be specified manually, e.g. |ryn2: and |ryn-o2:. Be aware that if some instances are numbered manually and some aren't, the code will renumber all instances in order of appearance. If you specify |rad:|rad:|rad2: in this order, |rad2: would be reassigned to |rad3:. This is to be borne in mind when organising borrowings, though the numbering can be inferred from the ordering of the branches. All code reassignments result in a script warning for your awareness.

{{descendant tree
|hrd-pro:lȳ́rḡis
|ryn-pro:lȳ́rḡi
|ryn-o:lȳr
|ryn:lyr
|rad-pro:lȳrdzir
|rad-o:lȳrdzre|lȳrwre
|rad-m2:lýrdzs
|rad2:lyerdzs<t:gas>
|rad-m:lýrus
|rad:lýrus<t:air>
}}

It is also worth noting that if borrowings occur from post-initial specifications of a language, the source language code requires the number to be cited. For example, if you want to specify a |rad: loan from the second specification of |ryn:, you would need to tag it as |ryn2>rad:.

{{descendant tree
|hrd-pro:lȳ́rḡis
|ryn-pro:lȳ́rḡi
|ryn-o:lȳr
|ryn:lyr
|rad-pro:lȳrdzir
|rad-o:lȳrdzre|lȳrwre
|rad-m:lýrdzs
|rad:lyerdzs<t:gas>
|rad-m:lýrus
|rad:lýrus<t:air>
|rad-m2>lus:lȳru
}}