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 ), 'mhr' );  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( ),  'Şablon:', '{{' ) .. '|' ..  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  function p.formatCategoryOnly( context, options, value ) return context.extractCategory( options, value ) end   return p 

Tags:

🔥 Trending searches on Wiki Олык Марий (Olyk Marij):

Ефимов, Измаил ВарсонофьевичЭшпай, Андрей ЯковлевичЛеонид ЯндаковАҥ (эҥер)Ҷ1758Шемкурык ЭлЯкимов, Валериан Александрович1958Йӱштӧ Памаш (Актаныш кундем)Упша (сола)19 КылмеСолоялКугу ВӱръялШодыголВӧдыр почиҥга (Кужэҥер кундем)БолонихаФилософ850 ийлаИлиева, Алёна АндреевнаЧодыраял (Морко кундем)КорийОкса иктыкКужерИштрикова, Татьяна ВячеславовнаШинурЧолемсолаГеоргина, Мария Александровна12 пеледыш190392КарайКурыкйымал (Морко ола сынан илем)27 Теле89Боголюбова, Лилия ВладимировнаТӱнямбал эҥыремышвотКурмызак (Пӱрӧ кундем)Матюк Полк1917297Волгоград1914Герасимов, Михаил СтепановичВикипедий3Куклин, Анатолий ЭрнстовичУзбекистанСерызе1697Нью-Йорк (штат)У Торъял кундем1199Нурсола (Юлсер кундем)113813 Шорыкйол1471РемизовоАштавай выселкеПетухово (Шӱдымарий ял шотан илем)ВӱрзымЯлкаев, Яныш ЯлкаевичРуш7 вӱдшор308МарийНагориноПистерла (Килемар кундем)Романов, Иван Ефимович23 сӱремМоскосо метрополитен🡆 More