Page MenuHomePhabricator

Module:Capiunto-wikibase

Authored By
Bene
May 30 2015, 4:01 PM
Size
1 KB
Referenced Files
None
Subscribers
None

Module:Capiunto-wikibase

``` lang=lua
local capiunto = require 'capiunto'
local util = require 'libraryUtil'
local referenceRenderer
function addStatement( t, property )
local value = ''
local frame = mw.getCurrentFrame()
if frame.args[property] then
value = frame.args[property]
else
local entity = mw.wikibase.getEntity()
local propertyId = mw.wikibase.resolvePropertyId( property )
if propertyId ~= nil then
value = renderStatements( entity:getStatements( propertyId ) )
end
end
if value ~= '' then
t:addRow( property, value )
end
return t
end
function renderStatements( statements )
local value = ''
local frame = mw.getCurrentFrame()
for k, statement in pairs( statements ) do
if value ~= '' then
value = value .. tostring( mw.message.new( 'comma-separator' ) )
end
value = value .. mw.wikibase.renderSnak( statement.mainsnak )
if statement.references then
value = value .. renderReferences( statement.references )
end
end
return value
end
function renderReferences( references )
local value = ''
local frame = mw.getCurrentFrame()
for k, reference in pairs( references ) do
value = value .. frame:preprocess(
'<ref name="' .. reference.hash .. '">' .. referenceRenderer( reference.snaks ) .. '</ref>'
)
end
return value
end
function defaultReferenceRenderer( snaks )
return mw.wikibase.renderSnaks( snaks )
end
local create = capiunto.create
capiunto.create = function( options )
local infobox = create( options )
infobox.addStatement = addStatement
referenceRenderer = options.referenceRenderer or defaultReferenceRenderer
util.checkType( 'referenceRenderer', 1, referenceRenderer, 'function' )
return infobox
end
return capiunto
```

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
166497
Default Alt Text
Module:Capiunto-wikibase (1 KB)

Event Timeline