Module:Ref

Revision as of 14:42, 20 September 2025 by Sparda0 (talk | contribs) (Created page with "local p = {} local SOURCES = { loading_screens = 'Module:Ref/LoadingScreens', } function getSourceData(source) local sourcePath = SOURCES[source] assert(sourcePath, 'Unknown source type') return mw.loadData(sourcePath) end function p.findPage(frame) return p._findPage(frame.args.source or frame.args[1], frame.args.name or frame.args[2]) end function p._findPage(source, name) local sourceData = getSourceData(source) return sourceData[name:gsub('—', '—')...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This module implements {{Ref/Loading Screen}}


local p = {}

local SOURCES = {
	loading_screens = 'Module:Ref/LoadingScreens',
}

function getSourceData(source)
	local sourcePath = SOURCES[source]
	assert(sourcePath, 'Unknown source type')
	return mw.loadData(sourcePath)
end

function p.findPage(frame)
	return p._findPage(frame.args.source or frame.args[1], frame.args.name or frame.args[2])
end

function p._findPage(source, name)
	local sourceData = getSourceData(source)
	return sourceData[name:gsub('—', '—')]
end

local NUMERALS = {'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X'}

function secretKey(name, part)
	return name .. (part and ('/' .. part) or '')
end

function p.applyCommonArgs(out, args)
	if (args.note ~= nil) then
		out:wikitext(' (', args.note, ')')
	end
	
	if (args.quote ~= nil or args.q ~= nil) then
		out:wikitext("<br />''", args.quote or args.q, "''")
	end
end

function p.loadingScreen(frame)
	local args = require('Module:Arguments').getArgs(frame, {
		parentFirst = true,
		wrappers = {'Template:Ref/Loading Screen'}
	})
	return p._loadingScreen(args)
end

function p._loadingScreen(args)
	local data = getSourceData('loading_screens')
	local name = args.name or args[1]
	local page = tostring(data[name])
	
	local out = mw.html.create()
	
	if (page ~= nil) then
		out:wikitext('Loading Screen: [[', page, '#', name, '|', name, ']]')
	else
		return out:tag('span'):addClass('text-error'):wikitext('Unknown Loading Screen. Make sure [[Module:Ref/LoadingScreens]] is up to date. [[Category:Pages with Reference Errors]]')
	end
	
	p.applyCommonArgs(out, args)
	
	return out
end		

return p