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:
  {{#invoke:categorize|getWikitext|Kategorinamn}} [[Kategori:Kategorinamn]] [[Kategori:Kategorinamn]]
  {{#invoke:categorize|getWikitext|Kategorinamn1|Kategorinamn2}} [[Kategori:Kategorinamn1]][[Kategori:Kategorinamn2]] [[Kategori:Kategorinamn1]][[Kategori:Kategorinamn2]]
Text Expected Actual
test2_basic_dont_capitalize:
  {{#invoke:categorize|getWikitext|gement kategorinamn}} [[Kategori:gement kategorinamn]] [[Kategori:gement kategorinamn]]
Text Expected Actual
test3_basic_with_sort:
  {{#invoke:categorize|getSortedWikitext|sv|Kategorinamn}} [[Kategori:Kategorinamn|kategorinamn]] [[Kategori:Kategorinamn|kategorinamn]]
  {{#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:
  {{#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]]
  {{#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:
  {{#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]]
  {{#invoke:categorize|getTemplateWikitext|test-templatename=@}} [[Kategori:Wiktionary:Mallar|*@]] [[Kategori:Wiktionary:Mallar|*@]]
  {{#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:
  {{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]]
  {{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]]
  {{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|*♆]]
  {{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|*♆]]
  {{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]]
  {{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]]