wikidata/Item

Для документации этого модуля может быть создана страница Модуль:Wikidata/item/doc

local WDS = require( 'Module:WikidataSelectors' ); local p = {};  local categoryLinksToEntitiesWithMissingLabel = '[[Категория:Википедия:Статьи со ссылками на элементы Викиданных без лакской подписи]]';  local function getGenderLabelForEntityId( entityId, isFemale ) if not isFemale then return mw.wikibase.label( entityId ); end  local entity = mw.wikibase.getEntity( entityId );  if not entity.claims or not entity.claims.P2521 then return entity:getLabel(); end  local femLabels = WDS.filterByLanguage( WDS.filterByRank( entity.claims.P2521, 'deprecated', true ), 'lbe' );  if femLabels ~= nil and    femLabels[1] and    femLabels[1].mainsnak and    femLabels[1].mainsnak.datavalue and    femLabels[1].mainsnak.datavalue.value and    femLabels[1].mainsnak.datavalue.value.text then return femLabels[1].mainsnak.datavalue.value.text; end  return entity:getLabel(); end     local function formatOccupationLinkForEntityId( entityId, isFemale ) local label = getGenderLabelForEntityId( entityId, isFemale );  -- first try to link to occupation article     local link = mw.wikibase.sitelink( entityId )     if link and not label then         label = link     end          -- if we don't have article for occupation, try to link to field of occupation     if not link then     local fooEntity = mw.wikibase.getEntity( entityId );     if fooEntity and fooEntity.claims and fooEntity.claims.P425 then     fooEntity = WDS.filterByRank( fooEntity.claims.P425, 'deprecated', true ); if fooEntity ~= nil and    fooEntity[1] and    fooEntity[1].mainsnak and    fooEntity[1].mainsnak.datavalue and    fooEntity[1].mainsnak.datavalue.value and    fooEntity[1].mainsnak.datavalue.value.id then link = mw.wikibase.sitelink( fooEntity[1].mainsnak.datavalue.value.id ); end end end  -- no article about occupation or field, link to wikidata     if not link then     link = ':d:' .. entityId end      if label then         return '[[' .. link .. '|' .. label .. ']]'     end          -- сообщение об отсутвии локализованного названия     -- not good, but better than nothing     return '[[' .. link .. '|' .. entityId .. ']]?' .. categoryLinksToEntitiesWithMissingLabel; end  function p.formatEntityWithGenderClaim( context, options, statement ) if ( not context ) then error( 'context not specified'); end; if ( not options ) then error( 'options not specified'); end; if ( not options.entity ) then error( 'options.entity is missing'); end; if ( not statement ) then error( 'statement not specified'); end;  local isFemale = options.entity.claims.P21 and                   options.entity.claims.P21[1] and                  options.entity.claims.P21[1].mainsnak and                  options.entity.claims.P21[1].mainsnak.datavalue and                  options.entity.claims.P21[1].mainsnak.datavalue.value and                  options.entity.claims.P21[1].mainsnak.datavalue.value.id == 'Q6581072'  local snak = statement.mainsnak; if snak and snak.datavalue and snak.datavalue.value and snak.datavalue.value.id then local entityId = snak.datavalue.value.id; local value = formatOccupationLinkForEntityId( entityId, isFemale ) return context.wrapSnak( value, snak.hash ) end  return context.formatSnak( options, snak ) end  function p.applyDefaultTemplate( context, options, statement ) local snak = context.formatSnak( options, statement.mainsnak )     if ( statement.qualifiers and statement.qualifiers.P249) then     snak = statement.qualifiers.P249[1].datavalue.value     entityId = statement.mainsnak.datavalue.value.id wbStatus, entity = pcall( mw.wikibase.getEntity, entityId ); if ( entity.claims and entity.claims.P1424 ) then wbStatus, template = pcall( mw.wikibase.getEntity,  entity.claims.P1424[1].mainsnak.datavalue.value.id ) if template:getSitelink( ) then snak = g_frame:preprocess( string.gsub( template:getSitelink( ),  'Шаблон:', '{{' ) .. '|' ..  statement.qualifiers.P249[1].datavalue.value .. '}}' ) end end     end  --References if ( options.references and snak ) then     snak = snak .. context.formatRefs( options, statement );     end      return snak end   return p 

Tags:

🔥 Trending searches on Wiki Лакку:

КьуруРумыниаMustela lutreolaМазЛатӏин мазЖугьутӀнал динБарзКӀялагьиЧаннацӀуку (кказит)Унанган мазЧехияКкавкказЭса идавсСалакМаккаАьнакӏиАдыяман (иль)Михак рангссаКкулиУкраинаИттацӀаниХъИнжилСпанс мазМунтжакКъазУхссавнил КипрКанадаМичихичнал мазАьрасатНакьлил урттуКкурккулХьЛакрал щархъурдуКӀундимиМальтаКоалаТатСамолетХъунасса пандаТӀабиаьтЯпонияКици🡆 More