Modul:KategoriKjønn: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
oppdaget at malen ga scriptfeil for Barnet til hertugen og hertuginnen av Cambridge. Kjønn var satt til "ukjent verdi", som ser ut til å tilsvare datavalue=nil. |
m 42 sideversjoner ble importert |
||
| (30 mellomliggende versjoner av 14 brukere er ikke vist) | |||
| Linje 1: | Linje 1: | ||
local math_mod = require( "Module:Math" ) | |||
local p = {} | 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 | -- Return kjønn til artikkelen | ||
| Linje 6: | Linje 45: | ||
return "" | return "" | ||
end | end | ||
local artikkel = mw.wikibase. | local artikkel = mw.wikibase.getEntityObject() | ||
if not artikkel then | 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 | end | ||
local claims = artikkel.claims | local claims = artikkel.claims | ||
| Linje 14: | Linje 57: | ||
return "[[Kategori:Artikler som mangler utsagn på Wikidata]]" | return "[[Kategori:Artikler som mangler utsagn på Wikidata]]" | ||
end | end | ||
local p21 = claims. | |||
local p21 = selectSingleClaim(claims.P21) | |||
if not p21 then | if not p21 then | ||
local | local p31 = claims.P31 | ||
if | if p31 then | ||
local | local forekomst = p31[1].mainsnak.datavalue.value["numeric-id"] | ||
if | if forekomst == 5 then | ||
return "[[Kategori:Artikler | return "[[Kategori:Artikler hvor kjønn mangler på Wikidata]]" | ||
end | end | ||
end | end | ||
return "" | return "" | ||
end | end | ||
if p21 | if p21.mainsnak.datavalue == nil then | ||
return "[[Kategori:Kjønn ukjent]]" | return "[[Kategori:Kjønn ukjent]]" | ||
else | else | ||
local kjonnid = p21 | local kjonnid = p21.mainsnak.datavalue.value["numeric-id"] | ||
local kjonn = | local kjonn = "Q" ..kjonnid | ||
local kjonnkat = useKategory[kjonn] or "[[Kategori:Kjønn ukjent]]" | |||
return kjonnkat | |||
end | 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 | end | ||
return p | return p | ||
Siste sideversjon per 22. apr. 2026 kl. 01:13
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"] = " ", -- 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