Module:Labels

From ArchivesWiki

Documentation for this module may be created at Module:Labels/doc

local p = {}

function getLabel( ident )
	local fullUrl = mw.title.new( ident ):fullUrl()
	local qrCode = mw.getCurrentFrame():callParserFunction{ name='#qrlite', args = { fullUrl, format="svg", size="3" } }
	return '<div class="mdl-labels-label">'
		  .. '<div class="mdl-labels-code">' .. qrCode .. '</div>'
		  .. '<div class="mdl-labels-text">'
		    .. '<div class="mdl-labels-title">' .. mw.site.siteName .. '</div>'
		    .. '<div class="mdl-labels-label">' .. ident .. '</div>'
		  .. '</div>'
		.. '</div>'
end

p.main = function( frame )
	local idents = ''
	if frame.args.idents and frame.args.idents ~= '' then
		idents = frame.args.idents
	end
	if frame.args.from and frame.args.from ~= ''
		and frame.args.to and frame.args.to ~= ''
		and frame.args.prefix and frame.args.prefix ~= ''
	then
		local i = tonumber( frame.args.from )
		while i < tonumber( frame.args.to ) do
			idents = idents .. ' ' .. frame.args.prefix .. i
			i = i + 1
		end 
	end

	local out = ''
	for _,ident in pairs( mw.text.split( mw.text.trim( idents ), '%s' ) ) do
		if ident ~= nil and ident ~= '' then
			local label = getLabel( ident )
			out = out .. label
		end
	end

	return mw.getCurrentFrame():extensionTag( 'templatestyles', '', { src = "Module:Labels/styles.css" } )
		.. '<div class="mdl-labels">' .. out .. '</div>'
end

-- =p.main({args={idents='foo\nbar'}})
-- =p.main({args={prefix='FOO', from='3', to='6'}})
return p