Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
You must create an account or log in to edit.
Revision as of 18:18, January 13, 2025 by Tesinormed (talk | contribs)

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 args['file1'] and not args['file2'] then
		error()
	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

	if args['file1'] then
		content:tag('div')
			:wikitext('[[File:' .. args['file1'] .. '|80px]]')
	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