Hej, du har kommit hit för att leta efter betydelsen av ordet
Modul:categorize. I DICTIOUS hittar du inte bara alla ordboksbetydelser av ordet
Modul:categorize, utan du får också veta mer om dess etymologi, dess egenskaper och hur man säger
Modul:categorize i singular och plural. Allt du behöver veta om ordet
Modul:categorize finns här. Definitionen av ordet
Modul:categorize hjälper dig att vara mer exakt och korrekt när du talar eller skriver dina texter. Genom att känna till definitionen av
Modul:categorize och andra ord berikar du ditt ordförråd och får tillgång till fler och bättre språkliga resurser.
Dokumentation för denna modul finns på /dok (redigera), /test
Syfte
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
- 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
- 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.
]]
- 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.
]]
- 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:
]
samt ]
- 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>":
]
- 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 ]]
- Om tillsammans med is-always-translingual= så tas språkdelen av kategorinamnet bort:
]]
- 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.
]
- 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 ]
- Om mallen är på formen
{{<h3-kod>}}
returneras kategorin ]
(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
]
.
- Funktionen är tänkt att kompletteras med stöd för fler typer av mallar.
Tester
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]]
|
local sort = require("Modul:sort")
local lang = require("Modul:lang")
local h3 = require("Modul:h3")
local export = {}
local function ucFirst(str)
return mw.ustring.gsub(str, "^%l", mw.ustring.upper)
end
local function extractLanguageCode(templatename)
local language_code = ""
local parts = mw.text.split(templatename, "-", true)
if parts then
if lang.hasLanguage(parts) then
language_code = parts
elseif parts and lang.hasLanguage(parts .. "-" .. parts) then
language_code = parts .. "-" .. parts
end
end
return language_code
end
local function isPalindrome(str, short_h3)
return false; --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 == str
end
function export.getWikitext(frame)
local categories = frame.args
local text = ""
for k, v in pairs(categories) do
text = text .. "]"
end
return text
end
function export.getSortedWikitext(frame)
local language_code = frame.args or "xx"
local text = ""
for k, v in pairs(frame.args) do
if k ~= 1 then
local sort_key = sort.getSortKey(language_code, v)
text = text .. "]"
end
end
return text
end
function export.getTemplateWikitext(frame)
local title = mw.title.getCurrentTitle()
local is_test = title.rootText == "categorize" and title.nsText == "Modul"
local templatename = is_test and frame.args or title.text
local language_code = extractLanguageCode(templatename)
local is_grammar_template = language_code ~= ""
local is_part_of_speech_template = h3.hasH3(templatename)
local text = ""
if is_grammar_template then
local language = lang.getLanguage(language_code)
text = "]"
elseif is_part_of_speech_template then
text = "]"
else
text = "]"
end
return text
end
function export.getMainWikitext(frame)
local title = mw.title.getCurrentTitle()
local is_test = title.rootText == "categorize" and title.nsText == "Modul"
local language_code = frame.args or "xx"
local short_h3 = frame.args or ""
local pagename = is_test and (frame:getParent().args or frame.args) or title.text
local is_always_translingual = not not frame.args
local supports_alt_categories = not not frame.args
local alternative_categories_args = frame:getParent().args
local alternative_categories_start_index = is_always_translingual and 1 or 2
local language = lang.getLanguageUCFirst(language_code)
local h3_plural = h3.getLongPlurUCFirst(short_h3)
local sort_key = is_always_translingual and "*" .. pagename or sort.getSortKey(language_code, pagename)
local language_slash_text = is_always_translingual and "" or language .. "/"
local text = ""
if title:inNamespace(0) or is_test then
if not is_always_translingual then
text = "]"
end
if supports_alt_categories and alternative_categories_args then
for k, v in pairs(alternative_categories_args) do
if type(k) == "number" and k >= alternative_categories_start_index then
text = text .. "]"
end
end
else
text = text .. "]"
end
if isPalindrome(pagename, short_h3) then
text = text .. "]"
end
end
return text
end
return export