置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:TemplateAsyncLoad

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

本模块用于传递{{TemplateAsyncLoad}}所需延迟加载模板的参数。

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