--[[ @license GPL-2.0-or-later @author Lucie-Aimée Kaffee @author Marius Hoch ]] local identifierListRenderer = {} -- Get the datavalue for a given property. -- -- @param string propertyId -- @return string|nil datatype or nil if property couldn't be loaded local getDatatype = function( propertyId ) local property = mw.wikibase.getEntity( propertyId ) return property and property['datatype'] end -- Render the identifier statements from a given entity. -- -- @param table entity -- @return string wikitext local render = function( self, entity ) local properties = entity:getProperties() local identifierList = '' if properties ~= nil then local labelRenderer = self._entityrenderer:getLabelRenderer() local identifierRenderer = self._entityrenderer:getIdentifierRenderer() for _, propertyId in pairs( properties ) do if getDatatype( propertyId ) == "external-id" then identifierList = identifierList .. '' .. labelRenderer( propertyId ) .. '' identifierList = identifierList .. '' .. identifierRenderer( entity, propertyId ) .. '' end end end if identifierList ~= nil and identifierList ~= '' then identifierList = '' .. identifierList .. '
' identifierList = '

' .. mw.message.new( 'articleplaceholder-abouttopic-lua-identifier' ):plain() .. '

' .. identifierList return '
' .. identifierList .. '
' end return '' end -- Get a function which is bound to the given entityrenderer. -- -- @param table entityrenderer -- @return function identifierListRenderer.newRenderer = function( entityrenderer ) local self = mw.clone( identifierListRenderer ) self._entityrenderer = entityrenderer self._render = render return function( entity ) return self:_render( entity ) end end return identifierListRenderer