Modul:KategoriKjønn: Forskjell mellom sideversjoner

Fra wikisida.no
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.getEntity()
     local artikkel = mw.wikibase.getEntityObject()
     if not artikkel then
     if not artikkel then
        return "[[Kategori:Artikler som mangler på Wikidata]]"
    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.p21
   
     local p21 = selectSingleClaim(claims.P21)
     if not p21 then
     if not p21 then
         local p107 = claims.p107
         local p31 = claims.P31
         if p107 then
         if p31 then
             local gnd = p107[0].mainsnak.datavalue.value["numeric-id"]
             local forekomst = p31[1].mainsnak.datavalue.value["numeric-id"]
             if gnd == 215627 then
             if forekomst == 5 then
                 return "[[Kategori:Artikler som mangler utsagn om Kjønn på Wikidata]]"
                 return "[[Kategori:Artikler hvor kjønn mangler på Wikidata]]"
             end
             end
         end
         end
         return ""
         return ""
     end
     end
     if p21[0].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[0].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
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