打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Module:TemplateAsyncLoad

来自OGAS数据中枢
秋绘君留言 | 贡献2026年1月22日 (四) 14:09的版本 (创建页面,内容为“local p = {} function p.main(frame) local args = require('Module:Arguments').getArgs(frame) local titleArgKey = 'TemplateAsyncLoadTitle' local title = args[titleArgKey] local titleObj -- 标题检查 assert(title, '未输入标题参数') titleObj = mw.title.new(title, 'Template') assert(titleObj, '无效标题') assert(not titleObj.isExternal and titleObj.namespace == 10, '仅可输入模板标题') assert(titleObj.exists, '模板不存在') --…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

此模块的文档可以在Module:TemplateAsyncLoad/doc创建

local p = {}

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame)
	local titleArgKey = 'TemplateAsyncLoadTitle'
	local title = args[titleArgKey]
	local titleObj

	-- 标题检查
	assert(title, '未输入标题参数')
	titleObj = mw.title.new(title, 'Template')
	assert(titleObj, '无效标题')
	assert(not titleObj.isExternal and titleObj.namespace == 10, '仅可输入模板标题')
	assert(titleObj.exists, '模板不存在')
	-- 标题规范化
	title = titleObj.fullText

	--处理传入参数
	local count = 1
	local data = {}
	for key, value in pairs(args) do
		if key ~= titleArgKey then
			table.insert(data, string.format('data-key-%d="%s"', count, key))
			table.insert(data, string.format('data-value-%d="%s"', count, value))
			count = count + 1
		end
	end

	return '<div class="TemplateAsyncLoad" style="text-align:center" data-title="' .. title .. '" ' .. table.concat(data, ' ') .. '>加载中……</div>'
end

return p