Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
You must create an account or log in to edit.

Module:Scope hatnote: Difference between revisions

From Amaranth Legacy, available at amaranth-legacy.community
Content deleted Content added
No edit summary
No edit summary
Line 34: Line 34:


-- TemplateData
-- TemplateData
result = result .. mw.text.tag('noinclude', {},
result = result .. frame:getParent():preprocess('<noinclude>' ..
frame:extensionTag('templatedata',
frame:extensionTag('templatedata',
[[{
[[{
Line 58: Line 58:
]
]
}]],
}]],
{}) .. '</noinclude>')
{})
)


return result
return result

Revision as of 17:28, February 20, 2025

General template for scope hatnote templates

Parameters

for
Used in the description of the TemplateData
rawcss_ref
RawCSS application reference to use
categories
Categories to use (like Category:Scope: Imagindarium's Creation)
use_remove_parentheses
If Module:Remove parentheses should be used
use_hatnote_links
If Template:Hatnote links should be used

local yesno = require('Module:Yesno')

local p = {}

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame)
	local parentArgs = require('Module:Arguments').getArgs(frame:getParent())
	-- input validation
	if not args['scope'] then error('"scope" argument is required') end
	if not args['rawcss_ref'] then error('"rawcss_ref" argument is required') end
	-- remove_parentheses is coerced into a boolean

	local result = ''

	-- remove parentheses in the page title
	if yesno(args['remove_parentheses'] or true) then
		result = result .. require('Module:Remove parentheses').main(frame)
	end

	-- apply the scope styling
	if yesno(parentArgs['use_scope_styling'] or true) then
		result = result .. frame:extensionTag('rawcss', '', {
			ref = args['rawcss_ref']
		})
	end

	-- hatnote
	result = result .. frame:expandTemplate{title = 'Hatnote', args = args}

	-- category
	if yesno(parentArgs['add_category'] or true) then
		result = result .. '\n[[Category:Scope: ' .. args['scope'] .. ']]'
	end

	-- TemplateData
	result = result .. frame:getParent():preprocess('<noinclude>' ..
		frame:extensionTag('templatedata',
			[[{
	"params": {
		"add_category": {
			"label": "Add category",
			"description": "If the scope category should be added to the page",
			"type": "boolean",
			"default": "true"
		},
		"use_scope_styling": {
			"label": "Use scope styling",
			"description": "If the scope's styling should be used",
			"type": "boolean",
			"default": "true"
		}
	},
	"description": "Scope hatnote for ]] .. args['scope'] .. [[",
	"format": "inline",
	"paramOrder": [
		"add_category",
		"use_scope_styling"
	]
}]],
	{}) .. '</noinclude>')

	return result
end

return p