Module:TSLoader

From NeuroWiki
Revision as of 12:29, 1 November 2024 by Selfice (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

此模块用于实现{{TSLoader}}。

如果要从模块调用,请使用p.call( name )name为要引用的模板样式页面名称,如果在Template:命名空间下,可以省略Template:

依赖项

en:Module:TSLoader



local p = {}

local static = require( 'Module:Static' )
if not static.TSLoader then
	static.TSLoader = {}
end

function p.call( name )
	if not name then
		return nil
	end
	if not static.TSLoader.loadedTS then
		static.TSLoader.loadedTS = {}
	end
	local pagename = mw.title.getCurrentTitle()
	if not static.TSLoader.loadedTS[ pagename ] then
		static.TSLoader.loadedTS[ pagename ] = {}
	end
	if not name:find( '^%w*:' ) then
		name = 'Template:' .. name:sub( 1, 1 ):upper() .. name:sub( 2 )
	end
	name = name:sub( 1, 1 ):upper() .. name:sub( 2 )
	if static.TSLoader.loadedTS[ pagename ][ name ] == true then
		return ''
	end
	static.TSLoader.loadedTS[ pagename ][ name ] = true
	return mw.getCurrentFrame():extensionTag{ name = "templatestyles", args = { src = name } }
end

function p.main( f )
	local args = f
	local frame = mw.getCurrentFrame()
	if f == frame then
		args = require( 'Module:ProcessArgs' ).merge( true )
	end
	return p.call( args[ 1 ] )
end

return p