Modul:KategoriKjønn
Hopp til navigering
Hopp til søk
Formål[rediger kilde]
Legger biografiartikler i artikkel basert på hvilket kjønn som er registrert i Wikidata.
Bruk[rediger kilde]
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"] = " ", -- ikke-binær -- på vent ["Q179294"] = "[[Kategori:Enkeltmenn]]", -- evnukk ["Q189125"] = " ", -- "[[Kategori:transpersoner]]", .. utsettes litt ["Q1052281"] = "[[Kategori:Enkeltkvinner]]" , -- transkvinner ["Q1097630"] = " ", -- interseksuell - på vent ["Q2449503"] = "[[Kategori:Enkeltmenn]]" , -- transmenn ["Q6581072"] = "[[Kategori:Enkeltkvinner]]", ["Q6581097"] = "[[Kategori:Enkeltmenn]]", ["Q12964198"] = " ", -- kjønnsskeiv - på vent ["Q18116794"] = " ", -- kjønnsflytende - på vent ["Q27679684"] = " ", -- transfeminin - på vent ["Q96000630"] = " ", -- X-gender - på vent ["Q121307094"] = "[[Kategori:Enkeltmenn]]", -- interseksuelle menn ["Q121307100"] = "[[Kategori:Enkeltkvinner]]" -- interseksuelle kvinner } 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("enkeltmenn", "pages") local kvinner = mw.site.stats.pagesInCategory("enkeltkvinner", "pages") local alle = menn+kvinner local prosMenn = (menn)*100/alle local prosKvinner = (kvinner)*100/alle return "Antall biografier:<br/>" .. "- Kvinner " .. mw.language.getContentLanguage():formatNum(kvinner) .. " (" .. math_mod._precision_format(prosKvinner,2) .. " %)<br/>" .. "- Menn " .. mw.language.getContentLanguage():formatNum(menn) .. " (" .. math_mod._precision_format(prosMenn,2) .. " %)" end return p