Modul:KategoriKjønn: Forskjell mellom sideversjoner

Fra wikisida.no
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[1].mainsnak.datavalue == nil then
     if p21.mainsnak.datavalue == nil then
         return "[[Kategori:Kjønn ukjent]]"
         return "[[Kategori:Kjønn ukjent]]"
     else
     else
         local kjonnid = p21[1].mainsnak.datavalue.value["numeric-id"]
         local kjonnid = p21.mainsnak.datavalue.value["numeric-id"]
         local kjonn = mw.wikibase.label( "Q" ..kjonnid)
         local kjonn = "Q" ..kjonnid
        if kjonn == "mann" then
    local kjonnkat = useKategory[kjonn] or "[[Kategori:Kjønn ukjent]]"
            return "[[Kategori:Menn]]"
    return kjonnkat
        elseif kjonn == "kvinne" then
            return  "[[Kategori:Kvinner]]"
        else
            return "[[Kategori:Kjønn ukjent]]"
        end
     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