Modul:categorize/dok

Definition från Wiktionary, den fria ordlistan.
Hoppa till navigering Hoppa till sök

Detta är dokumentationssidan för Modul:categorize

Syfte[redigera]

Modulens syfte är att bistå mallar med kategorisering. Med hjälp av modulen kan mallar kategorisera sidor från huvudnamnrymden i lämpliga kategorier, eller kategorisera sig själva för att på så sett bidra till en överblick av alla mallar som finns.

Användning[redigera]

Den här modulen bör bara användas av mallar, inte av andra moduler.
getWikitext
{{#invoke:categorize|getWikitext|Kategori1|Kategori2|...}}
Denna funktion kan användas av alla mallar som vill kategorisera ett uppslag.
getSortedWikitext
{{#invoke:categorize|getSortedWikitext|språkkod|Kategori1|Kategori2|...}}
Denna funktion kan användas av alla mallar som vill kategorisera uppslag inkluderande en sorteringsnyckel.
getMainWikitext
{{#invoke:categorize|getMainWikitext|språkkod|h3-kod}}
Denna funktion kan användas av alla ordklassmallar och grammatikmallar.
För mallar som är tvärspråkliga, ange is-always-translingual= (används av {{kod}} och {{tecken}}). Språkkoden för tvärspråklighet är "--".
{{#invoke:categorize|getMainWikitext|språkkod|h3-kod|is-always-translingual=}}
För mallar som stödjer alternativa kategorier, ange support-alternative-categories= (används av {{förkortning}}, {{kod}} och {{tecken}}).
{{#invoke:categorize|getMainWikitext|språkkod|h3-kod|support-alternative-categories=}}
getInflectionWikitext
{{#invoke:categorize|getInflectionWikitext|språkkod|h3-kod}}
Denna funktion kan användas av böjningsformsmallen {{böjning}}.
getTemplateWikitext
{{#invoke:categorize|getTemplateWikitext}}
Denna funktion kan användas av alla ordklassmallar och grammatikmallar för att kategorisera den egna mallen. Fler kommer.

Specifikation[redigera]

Samtliga funktioner returnerar wikitext bestående av en eller flera kategorier. Information om sorteringsnycklar hittas på Modul:sort.
 
getWikitext
1=, 2=, ... osv. explicit angivna kategorier
Returnerar en kategori för varje argument som angivits, versaliserad på första bokstaven. Ingen sorteringsnyckel. [[Kategori:<Argument1>]][[Kategori:<Argument2>]]
getSortedWikitext
1= språkkod (används för sorteringsnyckel)
2=, 3=, ... osv. explicit angivna kategorier
Returnerar en kategori för varje argument som angivits, versaliserad på första bokstaven och med sorteringsnyckel. [[Kategori:<Argument2>|<sorteringsnyckel>]][[Kategori:<Argument3>|<sorteringsnyckel>]]
getMainWikitext
1= språkkod (används för sorteringsnyckel samt första delen i kategorinamnet)
2= h3-kod (används för kategorinamnet)
Returnerar de två standardkategorierna för huvuduppslag: [[Kategori:<Språk>/Alla uppslag|<sorteringsnyckel>]] samt [[Kategori:<Språk>/<H3 i plural>|<sorteringsnyckel>]]
is-always-translingual= anger att sidan saknar språkdimension i kategorierna.
Returnerar endast den andra standardkategorin ("Alla uppslag"-kategorin returneras inte). Språkargumentet ignoreras. Sorteringsnyckel skapas inte på det vanliga sättet via sortmodulen, utan genom "*" + "<sidnamnet>": [[Kategori:<H3 i plural>|*<sidnamnet>]]
support-alternative-categories= anger att alternativa kategorier ska läsas av från det ursprungliga mallanropet och, om sådana finns, användas versaliserade istället för standardkategorin som baseras på h3-koden.
{{mall|<språkkod>|<alternativ kategori1>|<alternativ kategori2>}} ger "Alla uppslag"-kategorin som vanligt samt [[Kategori:<Språk>/<Alternativ kategori1>|<sorteringsnyckel>]][[Kategori:<Språk>/<Alternativ kategori2>|<sorteringsnyckel>]]
Om tillsammans med is-always-translingual= så tas språkdelen av kategorinamnet bort: [[Kategori:<Alternativ kategori1>|<sorteringsnyckel>]][[Kategori:<Alternativ kategori2>|<sorteringsnyckel>]]
Om inga alternativa kategorier anges i det usprungliga mallanropet, baseras kategorin på h3-koden som anges av 2= i modulanropet.
Funktionen är tänkt att utökas med stöd för diverse specialkategorier, t.ex. [[Kategori:<Språk>Palindrom|<sorteringsnyckel>]]
getTemplateWikitext
Anropas utan argument.
Koden tolkar den anropande mallens namn och returnerar kategorin för den mallen.
Om mallen är på formen {{<språkkod>-<h3-kod>(-...)}} returneras kategorin [[Kategori:Wiktionary:Grammatikmallar för <språk>|*<mallens namn>]]
Om mallen är på formen {{<h3-kod>}} returneras kategorin [[Kategori:Wiktionary:Ordklassmallar|*<mallens namn>]] (stödjer även språkkoder innehållande ett bindestreck, t.ex. gmq-fsv för fornsvenska).
Om mallen inte matchar ovanstående mönster, returneras kategorin [[Kategori:Wiktionary:Mallar|*<mallens namn>]].
Funktionen är tänkt att kompletteras med stöd för fler typer av mallar.

Tester[redigera]

All tests passed. (refresh)

Text Expected Actual
test1_basic:
Passed {{#invoke:categorize|getWikitext|Kategorinamn}} [[Kategori:Kategorinamn]] [[Kategori:Kategorinamn]]
Passed {{#invoke:categorize|getWikitext|Kategorinamn1|Kategorinamn2}} [[Kategori:Kategorinamn1]][[Kategori:Kategorinamn2]] [[Kategori:Kategorinamn1]][[Kategori:Kategorinamn2]]
Text Expected Actual
test2_basic_dont_capitalize:
Passed {{#invoke:categorize|getWikitext|gement kategorinamn}} [[Kategori:gement kategorinamn]] [[Kategori:gement kategorinamn]]
Text Expected Actual
test3_basic_with_sort:
Passed {{#invoke:categorize|getSortedWikitext|sv|Kategorinamn}} [[Kategori:Kategorinamn|kategorinamn]] [[Kategori:Kategorinamn|kategorinamn]]
Passed {{#invoke:categorize|getSortedWikitext|sv|Kategori1|Å-kategori}} [[Kategori:Kategori1|kategori:1]][[Kategori:Å-kategori|z~kategori]] [[Kategori:Kategori1|kategori:1]][[Kategori:Å-kategori|z~kategori]]
Text Expected Actual
test4_main:
Passed {{#invoke:categorize|getMainWikitext|en|subst|test-pagename=pagename}} [[Kategori:Engelska/Alla uppslag|pagename]][[Kategori:Engelska/Substantiv|pagename]] [[Kategori:Engelska/Alla uppslag|pagename]][[Kategori:Engelska/Substantiv|pagename]]
Passed {{#invoke:categorize|getMainWikitext|sv|adv|test-pagename=zåäö}} [[Kategori:Svenska/Alla uppslag|zz~z¡z°]][[Kategori:Svenska/Adverb|zz~z¡z°]] [[Kategori:Svenska/Alla uppslag|zz~z¡z°]][[Kategori:Svenska/Adverb|zz~z¡z°]]
Text Expected Actual
test6_template:
Passed {{#invoke:categorize|getTemplateWikitext|test-templatename=sv-verb-er}} [[Kategori:Wiktionary:Mallar för svenska|*sv-verb-er]] [[Kategori:Wiktionary:Mallar för svenska|*sv-verb-er]]
Passed {{#invoke:categorize|getTemplateWikitext|test-templatename=@}} [[Kategori:Wiktionary:Mallar|*@]] [[Kategori:Wiktionary:Mallar|*@]]
Passed {{#invoke:categorize|getTemplateWikitext|test-templatename=subst}} [[Kategori:Wiktionary:Ordklassmallar|*subst]] [[Kategori:Wiktionary:Ordklassmallar|*subst]]
Text Expected Actual
test7_main_with_special_h3_codes_by_template_call:
Passed {{förkortning|sv|test-pagename=osv.}} [[Kategori:Svenska/Alla uppslag|osv]][[Kategori:Svenska/Förkortningar|osv]] [[Kategori:Svenska/Alla uppslag|osv]][[Kategori:Svenska/Förkortningar|osv]]
Passed {{förkortning|--|auktorsförkortningar|test-pagename=A.Becker}} [[Kategori:Tvärspråkligt/Alla uppslag|abecker]][[Kategori:Tvärspråkligt/Auktorsförkortningar|abecker]] [[Kategori:Tvärspråkligt/Alla uppslag|abecker]][[Kategori:Tvärspråkligt/Auktorsförkortningar|abecker]]
Passed {{tecken|tecken=test|test-pagename=♆}} <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Tecken|*♆]] <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Tecken|*♆]]
Passed {{tecken|tecken=test|test-pagename=♆|mytologiska tecken|astronomiska tecken|astrologiska tecken}} <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Mytologiska tecken|*♆]][[Kategori:Astronomiska tecken|*♆]][[Kategori:Astrologiska tecken|*♆]] <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Mytologiska tecken|*♆]][[Kategori:Astronomiska tecken|*♆]][[Kategori:Astrologiska tecken|*♆]]
Passed {{kod|kod=test|test-pagename=SEK}} <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Koder|*SEK]] <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Koder|*SEK]]
Passed {{kod|valutakoder|kod=test|test-pagename=SEK}} <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Valutakoder|*SEK]] <div class="symbol-display"><div class="symbol">test</div></div>[[Kategori:Valutakoder|*SEK]]