Modul:KategoriKjønn: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
Endrer kategorisering fra Kvinner og Menn til Enkeltkvinner og Enkeltmenn for å gi plass til generelle kategorier |
Statistikk: Midlertidig sammensetting av nye og gamle artikkelnavn for statistikkantall på kategorisider |
||
| Linje 78: | Linje 78: | ||
local menn = mw.site.stats.pagesInCategory("menn", "pages") | local menn = mw.site.stats.pagesInCategory("menn", "pages") | ||
local kvinner = mw.site.stats.pagesInCategory("kvinner", "pages") | local kvinner = mw.site.stats.pagesInCategory("kvinner", "pages") | ||
local alle = menn+kvinner | local emenn = mw.site.stats.pagesInCategory("enkeltmenn", "pages") | ||
local prosMenn = menn*100/alle | local ekvinner = mw.site.stats.pagesInCategory("enkeltkvinner", "pages") | ||
local prosKvinner = kvinner*100/alle | local alle = menn+kvinner+ekvinner+emenn | ||
return " | local prosMenn = (menn+emenn)*100/alle | ||
"- Kvinner " .. mw.language.getContentLanguage():formatNum(kvinner) .. " (" .. math_mod._precision_format(prosKvinner,2) .. " %)<br/>" .. | local prosKvinner = (kvinner+ekvinner)*100/alle | ||
"- Menn " .. mw.language.getContentLanguage():formatNum(menn) .. " (" .. math_mod._precision_format(prosMenn,2) .. " %)" | return "Antall biografier:<br/>" .. | ||
"- Kvinner " .. mw.language.getContentLanguage():formatNum(kvinner+ekvinner) .. " (" .. math_mod._precision_format(prosKvinner,2) .. " %)<br/>" .. | |||
"- Menn " .. mw.language.getContentLanguage():formatNum(menn+emenn) .. " (" .. math_mod._precision_format(prosMenn,2) .. " %)" | |||
end | end | ||
return p | return p | ||
Sideversjonen fra 1. jul. 2023 kl. 19:23
Formål
Legger biografiartikler i artikkel basert på hvilket kjønn som er registrert i Wikidata.
Bruk
Modulen brukes ved å legge inn {{#invoke:KategoriKjønn|kjonnskategori}} i en mal. Malen {{KategoriKjønn}} har implementert dette.
local math_mod = require( "Module:Math" )
local p = {}
local useKategory = {
["Q43445"] = " ", -- kjønn hunn for dyr - kategoriserer vi ikke
["Q44148"] = " ", -- kjønn hann for dyr - kategoriserer vi ikke
["Q48270"] = " ", -- kjønnsskeiv -- på vent
["Q189125"] = " ", -- "[[Kategori:transpersoner]]", .. utsettes litt
["Q1052281"] = " " , -- Til vurdering: "[[Kategori:kvinner]][[Kategori:transpersoner]]",
["Q1097630"] = " ", -- interseksuell - på vent
["Q2449503"] = " " , -- Til vurdering: "[[Kategori:menn]][[Kategori:transpersoner]]",
["Q6581072"] = "[[Kategori:Enkeltkvinner]]",
["Q6581097"] = "[[Kategori:Enkeltmenn]]",
["Q18116794"] = " ", -- genderfluid - på vent
["Q27679684"] = " ", -- transfeminine - på vent
["Q96000630"] = " " -- X-gender - på vent
}
local function selectSingleClaim(claims)
if not claims then
return nil
end
local selectedClaim = nil
for idx,claim in pairs(claims) do
if claim.rank == 'preferred' then
return claim
end
if claim.rank == 'normal' then
if not selectedClaim then
selectedClaim = claim
end
end
end
return selectedClaim
end
-- Return kjønn til artikkelen
function p.kjonnskategori(frame)
if not mw.wikibase then
return ""
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
local nsp = mw.title.getCurrentTitle().namespace
if nsp == 0 then -- bare kategoriser i hovednavnerommet.
return "[[Kategori:Artikler som ikke er koblet til Wikidata]]"
end
return ""
end
local claims = artikkel.claims
if not claims then
return "[[Kategori:Artikler som mangler utsagn på Wikidata]]"
end
local p21 = selectSingleClaim(claims.P21)
if not p21 then
local p31 = claims.P31
if p31 then
local forekomst = p31[1].mainsnak.datavalue.value["numeric-id"]
if forekomst == 5 then
return "[[Kategori:Artikler hvor kjønn mangler på Wikidata]]"
end
end
return ""
end
if p21.mainsnak.datavalue == nil then
return "[[Kategori:Kjønn ukjent]]"
else
local kjonnid = p21.mainsnak.datavalue.value["numeric-id"]
local kjonn = "Q" ..kjonnid
local kjonnkat = useKategory[kjonn] or "[[Kategori:Kjønn ukjent]]"
return kjonnkat
end
end
function p.statistikk()
local menn = mw.site.stats.pagesInCategory("menn", "pages")
local kvinner = mw.site.stats.pagesInCategory("kvinner", "pages")
local emenn = mw.site.stats.pagesInCategory("enkeltmenn", "pages")
local ekvinner = mw.site.stats.pagesInCategory("enkeltkvinner", "pages")
local alle = menn+kvinner+ekvinner+emenn
local prosMenn = (menn+emenn)*100/alle
local prosKvinner = (kvinner+ekvinner)*100/alle
return "Antall biografier:<br/>" ..
"- Kvinner " .. mw.language.getContentLanguage():formatNum(kvinner+ekvinner) .. " (" .. math_mod._precision_format(prosKvinner,2) .. " %)<br/>" ..
"- Menn " .. mw.language.getContentLanguage():formatNum(menn+emenn) .. " (" .. math_mod._precision_format(prosMenn,2) .. " %)"
end
return p