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.
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.
localsort=require("Modul:sort")locallang=require("Modul:lang")localh3=require("Modul:h3")localexport={}localfunctionucFirst(str)returnmw.ustring.gsub(str,"^%l",mw.ustring.upper)endlocalfunctionextractLanguageCode(templatename)locallanguage_code=""localparts=mw.text.split(templatename,"-",true)ifparts[1]theniflang.hasLanguage(parts[1])thenlanguage_code=parts[1]elseifparts[2]andlang.hasLanguage(parts[1].."-"..parts[2])thenlanguage_code=parts[1].."-"..parts[2]endendreturnlanguage_codeendlocalfunctionisPalindrome(str,short_h3)returnfalse;--ej aktiverat ännu --exkludera tecken, koder och förkortningar (den senaste borde nog tas med ändå)--if short_h3 == "tecken" or short_h3 == "kod" or short_h3 == "förkortning" then-- return false--end--skapa omvänd textsträng--local temp_str = ""--reversed_str = mw.ustring.gsub(str, ".", function(c) temp_str = c .. temp_str end)--ta bort alla tecken som inte är bokstäver eller siffror och gör inte skillnad på gemener och versaler--str = mw.ustring.gsub(mw.ustring.lower(str), "%W", "")--reversed_str = mw.ustring.gsub(mw.ustring.lower(reversed_str), "%W", "")--return reversed_str == strendfunctionexport.getWikitext(frame)localcategories=frame.argslocaltext=""fork,vinpairs(categories)dotext=text.."[[Kategori:"..v.."]]"endreturntextendfunctionexport.getSortedWikitext(frame)locallanguage_code=frame.args[1]or"xx"localtext=""fork,vinpairs(frame.args)doifk~=1thenlocalsort_key=sort.getSortKey(language_code,v)text=text.."[[Kategori:"..v.."|"..sort_key.."]]"endendreturntextendfunctionexport.getTemplateWikitext(frame)localtitle=mw.title.getCurrentTitle()localis_test=title.rootText=="categorize"andtitle.nsText=="Modul"localtemplatename=is_testandframe.args["test-templatename"]ortitle.textlocallanguage_code=extractLanguageCode(templatename)localis_grammar_template=language_code~=""localis_part_of_speech_template=h3.hasH3(templatename)localtext=""ifis_grammar_templatethenlocallanguage=lang.getLanguage(language_code)text="[[Kategori:Wiktionary:Mallar för "..language.."|*"..templatename.."]]"elseifis_part_of_speech_templatethentext="[[Kategori:Wiktionary:Ordklassmallar|*"..templatename.."]]"elsetext="[[Kategori:Wiktionary:Mallar|*"..templatename.."]]"endreturntextendfunctionexport.getMainWikitext(frame)localtitle=mw.title.getCurrentTitle()localis_test=title.rootText=="categorize"andtitle.nsText=="Modul"locallanguage_code=frame.args[1]or"xx"localshort_h3=frame.args[2]or""localpagename=is_testand(frame:getParent().args["test-pagename"]orframe.args["test-pagename"])ortitle.textlocalis_always_translingual=notnotframe.args["is-always-translingual"]localsupports_alt_categories=notnotframe.args["support-alternative-categories"]localalternative_categories_args=frame:getParent().argslocalalternative_categories_start_index=is_always_translingualand1or2locallanguage=lang.getLanguageUCFirst(language_code)localh3_plural=h3.getLongPlurUCFirst(short_h3)localsort_key=is_always_translingualand"*"..pagenameorsort.getSortKey(language_code,pagename)locallanguage_slash_text=is_always_translingualand""orlanguage.."/"localtext=""iftitle:inNamespace(0)oris_testthenifnotis_always_translingualthentext="[[Kategori:"..language_slash_text.."Alla uppslag|"..sort_key.."]]"endifsupports_alt_categoriesandalternative_categories_args[alternative_categories_start_index]thenfork,vinpairs(alternative_categories_args)doiftype(k)=="number"andk>=alternative_categories_start_indexthentext=text.."[[Kategori:"..language_slash_text..ucFirst(v).."|"..sort_key.."]]"endendelsetext=text.."[[Kategori:"..language_slash_text..h3_plural.."|"..sort_key.."]]"endifisPalindrome(pagename,short_h3)thentext=text.."[[Kategori:"..language.."/Palindrom|"..sort_key.."]]"endendreturntextendreturnexport