Module:Element
Appearance
This documentation is transcluded from Module:Element/doc.
Output an element badge using Module:BadgeLua.
Implements Template:Element.
require( 'strict' )
local element = mw.loadJsonData( 'Module:Element/Element.json' )
local p = {}
--- Get the element id
---
--- @param elementName string
--- @return string
local function getElementId( elementName )
return elementName:lower()
end
--- Render the element badge
---
--- @param elementId string
--- @param elementData table
--- @return string
local function renderElement( elementId, elementData )
local badge = require( 'Module:BadgeLua' )
return badge.render( {
icon = elementData.icon,
text = elementData.name,
link = elementData.page or elementData.name,
class = 't-element t-element--' .. elementId
} )
end
--- Wikitext entry point for the module
---
--- @param frame mw.frame
--- @return string
function p.main( frame )
local getArgs = require( 'Module:Arguments' ).getArgs
return p._main( getArgs( frame )[1] )
end
--- Render the rarity badge
---
--- @param elementName string
--- @return string
function p._main( elementName )
local elementId = getElementId( elementName )
local elementData = element[elementId]
if not elementData then
error( 'Invalid element name: ' .. elementName )
end
return mw.getCurrentFrame():extensionTag {
name = 'templatestyles', args = { src = 'Module:Element/styles.css' }
} .. renderElement( elementId, elementData )
end
return p