Modul:KategoriKjønn: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
mIngen redigeringsforklaring |
Sikrere valg av kjønn hvis fx. rank preferred + legge til kategorisering av transkvinner og transmenn |
||
| Linje 1: | Linje 1: | ||
local p = {} | local p = {} | ||
local useKategory = { | |||
["Q43445"] = " ", -- kjønn hunn for dyr - kategoriserer vi ikke | |||
["Q44148"] = " ", -- kjønn hann for dyr - kategoriserer vi ikke | |||
-- ["Q189125"] = "[[Kategori:transpersoner]]", .. utsettes litt | |||
["Q1052281"] = "[[Kategori:Transkvinner]]", | |||
["Q2449503"] = "[[Kategori:Transmenn]]", | |||
["Q6581072"] = "[[Kategori:kvinner]]", | |||
["Q6581097"] = "[[Kategori:menn]]" | |||
} | |||
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 14: | Linje 42: | ||
return "[[Kategori:Artikler som mangler utsagn på Wikidata]]" | return "[[Kategori:Artikler som mangler utsagn på Wikidata]]" | ||
end | end | ||
local p21 = claims.P21 | |||
local p21 = selectSingleClaim(claims.P21) | |||
if not p21 then | if not p21 then | ||
local p31 = claims.P31 | local p31 = claims.P31 | ||
| Linje 25: | Linje 54: | ||
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 | end | ||
return p | return p | ||
Sideversjonen fra 31. okt. 2020 kl. 18:15
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 p = {}
local useKategory = {
["Q43445"] = " ", -- kjønn hunn for dyr - kategoriserer vi ikke
["Q44148"] = " ", -- kjønn hann for dyr - kategoriserer vi ikke
-- ["Q189125"] = "[[Kategori:transpersoner]]", .. utsettes litt
["Q1052281"] = "[[Kategori:Transkvinner]]",
["Q2449503"] = "[[Kategori:Transmenn]]",
["Q6581072"] = "[[Kategori:kvinner]]",
["Q6581097"] = "[[Kategori:menn]]"
}
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
return "[[Kategori:Artikler som ikke er koblet til Wikidata]]"
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
return p