“模块:少女歌剧”的版本间的差异

来自萌娘文库
跳转至: 导航搜索
(创建页面,内容为“local module = {} function module.scenario(frame) local args = frame.args local node = mw.html.create("table") :addClass("wikitable") :css("width", "100%")…”)
 
(サンムル移动页面模块:阿斯蒂芬模块:少女歌剧,不留重定向:错误创建)
(没有差异)

2020年8月13日 (四) 17:31的版本

此模块的文档可以在模块:少女歌剧/doc创建

local module = {}

function module.scenario(frame)
	local args = frame.args
	
	local node = mw.html.create("table")
		:addClass("wikitable")
		:css("width", "100%")
		:tag("tr")
			:tag("th")
				:css("width", "50%")
				:wikitext("原文")
				:done()
			:tag("th")
				:css("width", "50%")
				:wikitext("译文")
				:done()
			:done()
	local actor = "???"
	local counter = 0
	for _, line in ipairs(args) do
		line = mw.text.trim(line)
		
		if mw.ustring.find(mw.text.trim(line), "^@[^@]") then
			actor = mw.text.trim(mw.ustring.sub(line, 2))
			if counter == 1 then
				node:tag("td"):done()
				counter = 0
			end
		elseif mw.ustring.find(mw.text.trim(line), "^-[^-]") then
			local chapter = mw.text.trim(mw.ustring.sub(line, 2))
			if counter == 1 then
				node:tag("td")
				node = node.done()
			end
			node:tag("tr"):tag("th")
				:attr("colspan", 2)
				:wikitext(chapter)
			counter = 0
		else
			node:tag("td")
				:wikitext("<sup>")
				:wikitext(actor)
				:wikitext("</sup>")
				:wikitext(mw.ustring.gsub(line, "[-@][-@]", function(match)
					return mw.ustring.sub(match, 1, 2)
				end))
		end
		
		if counter == 0 then
			node = node:tag("tr")
		end
	end
end

return module