Modul:FormatertVitenskapsnavn/sandkasse: Forskjell mellom sideversjoner
Hopp til navigering
Hopp til søk
Ingen redigeringsforklaring |
m (Én sideversjon ble importert) |
(Ingen forskjell)
|
Siste sideversjon per 27. mai 2024 kl. 09:20
Dokumentasjon for denne modulen kan opprettes på Modul:FormatertVitenskapsnavn/sandkasse/dok
local p = {} function p.getScientificName(frame) local p225value = '' -- P225: vitenskapelig navn local p6507value = '' -- P6507: autorstreng local p105value = '' -- P105: taksonomisk rang local error = false local italicName = 0 local italicNames = { [1] = {['qid'] = 'Q34740', ['label'] = 'slekt', ['abbr'] = nil}, [2] = {['qid'] = 'Q3238261', ['label'] = 'underslekt', ['abbr'] = ' subg. '}, [3] = {['qid'] = 'Q3181348', ['label'] = 'seksjon', ['abbr'] = ' sect. '}, [4] = {['qid'] = 'Q3025161', ['label'] = 'serie', ['abbr'] = ' ser. '}, [5] = {['qid'] = 'Q7432', ['label'] = 'art', ['abbr'] = nil}, [6] = {['qid'] = 'Q68947', ['label'] = 'underart', ['abbr'] = ' subsp. '}, [7] = {['qid'] = 'Q767728', ['label'] = 'varietet', ['abbr'] = ' var. '}, [8] = {['qid'] = 'Q279749', ['label'] = 'form', ['abbr'] = ' f. '}, } --[[ qid is only needed while testing, remove when done ]] local qid = frame.args['qid'] if not qid then mw.log('no qidding') return "" end if not mw.wikibase then mw.log('no wikibase') return "" end local subject = mw.wikibase.getEntity(qid) if not subject then mw.log('no subject') return "" end local p225 = subject:getBestStatements( 'P225' ) local p6507 = subject:getBestStatements( 'P6507' ) local p105 = subject:getBestStatements( 'P105' ) if not p225 or #p225 < 1 then mw.log('registrer P225 (vitenskapelig navn)') error = true else p225value = p225[1].mainsnak.datavalue.value mw.log(p225value) end if not p6507 or #p6507 < 1 then mw.log('registrer P6507 (autorstreng)') error = true else p6507value = p6507[1].mainsnak.datavalue.value mw.log(p6507value) end if not p105 or #p105 < 1 then mw.log('registrer P105 (taksonomisk rang)') error = true else p105value = p105[1].mainsnak.datavalue.value.id mw.log(p105value) for k, v in ipairs(italicNames) do if v['qid'] == p105value then italicName = k break end end end if not error then if italicName > 0 then if italicNames[italicName]['abbr'] then local oldStr = italicNames[italicName]['abbr'] local newStr = "''" .. oldStr .. "''" p225value = mw.ustring.gsub(p225value, oldStr, newStr, 1) end end return "''" .. p225value .. "''<br/><small>" .. p6507value .. "</small>" else mw.log('Feil: registrer nødvendige utsagn på Wikidata …') return '' end end --[=[ function p.formatervitnavn(frame) if not mw.wikibase then return "" end qid = frame.args['qid'] local artikkel = mw.wikibase.getEntity() if qid then artikkel = mw.wikibase.getEntity(qid) mw.log(artikkel) end if not artikkel then return "[[Kategori:Artikler som ikke er koblet til Wikidata]]" end local claims = artikkel:getProperties() if not claims or #claims == 0 then return "[[Kategori:Artikler som mangler utsagn på Wikidata]]" end local p225 = artikkel.claims.P225 if not p225 then return "[[Kategori:Artikler som mangler utsagn om vitenskapelig navn på Wikidata]]" end local vitenskapsnavn = p225[1].mainsnak.datavalue["value"] local p6507 = artikkel.claims.P6507 if not p6507 then return "[[Kategori:Artikler som mangler utsagn om autorstreng på Wikidata]]" end local autorstreng = p6507[1].mainsnak.datavalue["value"] local p105 = artikkel.claims.P105 if not p105 then return vitenskapsnavn .. "[[Kategori:Artikler som mangler utsagn om taksonomisk kategori på Wikidata]]" end local p105DataValue = p105[1].mainsnak.datavalue if not p105DataValue then return vitenskapsnavn .. "[[Kategori:Artikler som mangler utsagn om taksonomisk kategori på Wikidata]]" end local taksonkategori = p105DataValue.value["numeric-id"] -- art: Q7432 -- slekt: Q34740 -- underart: Q68947 if taksonkategori == 7432 or taksonkategori == 34740 or taksonkategori == 68947 then return "''" .. vitenskapsnavn .. "'' " .. autorstreng else return vitenskapsnavn .. ' ' .. autorstreng end end ]=] return p