From Amaranth Legacy, available at amaranth-legacy.community
More actions
This module is used for Template:Hatnote. See the template's page for more information.
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
local args = getArgs(frame)
local wrapper = mw.html.create('div')
:attr('class', 'noexcerpt')
:attr('role', 'note')
-- input validation
if not args['file1'] and args['file2'] then
error('file2 is specified while file1 is not specified')
end
-- set the color so the look stays consistent even outside of the scope
if args['color'] then
wrapper:css('--color-amaranth-legacy-scope', args['color'])
if yesno(args['color_applies_to_links'] or true) then
wrapper:css('--color-link', args['color'])
end
end
-- top <hr>
if not yesno(args['remove_hr'] or false) and not yesno(args['remove_hr_top'] or false) then
wrapper:wikitext('<hr>')
end
-- content wrapper
local content = wrapper:tag('div')
if args['file1'] and args['file2'] then
content:attr('class', 'hatnote2')
elseif args['file1'] then
content:attr('class', 'hatnote1')
else
content:attr('class', 'hatnote0')
end
-- left file
if args['file1'] then
content:tag('div'):wikitext('[['
.. 'File:' .. args['file1']
.. '|' .. (args['file_size'] or '80px')
.. '|class=notpageimage'
.. '|link='
.. '|alt='
.. ']]')
end
-- right file
if args['file2'] then
content:tag('div'):wikitext('[['
.. 'File:' .. args['file2']
.. '|' .. (args['file_size'] or '80px')
.. '|class=notpageimage'
.. '|link='
.. '|alt='
.. ']]')
end
-- bottom <hr>
if not yesno(args['remove_hr'] or false) and not yesno(args['remove_hr_bottom'] or false) then
wrapper:wikitext('<hr>')
end
return tostring(wrapper)
end
return p