“模块:少女歌剧”的版本间的差异
小 |
|||
第6行: | 第6行: | ||
local node = mw.html.create("table") | local node = mw.html.create("table") | ||
:addClass("wikitable") | :addClass("wikitable") | ||
− | |||
:tag("tr") | :tag("tr") | ||
:tag("th") | :tag("th") | ||
第19行: | 第18行: | ||
local actor = "???" | local actor = "???" | ||
local counter = 0 | local counter = 0 | ||
− | for | + | for index, line in ipairs(args) do |
line = mw.text.trim(line) | line = mw.text.trim(line) | ||
if mw.ustring.find(mw.text.trim(line), "^@[^@]") then | if mw.ustring.find(mw.text.trim(line), "^@[^@]") then | ||
actor = mw.text.trim(mw.ustring.sub(line, 2)) | actor = mw.text.trim(mw.ustring.sub(line, 2)) | ||
+ | --error(mw.dumpObject({index,actor})) | ||
if counter == 1 then | if counter == 1 then | ||
− | node:tag("td") | + | node:tag("td") |
+ | node = node.done() | ||
counter = 0 | counter = 0 | ||
end | end | ||
第32行: | 第33行: | ||
if counter == 1 then | if counter == 1 then | ||
node:tag("td") | node:tag("td") | ||
+ | error(tostring(node)) | ||
node = node.done() | node = node.done() | ||
+ | counter = 0 | ||
end | end | ||
node:tag("tr"):tag("th") | node:tag("tr"):tag("th") | ||
第39行: | 第42行: | ||
counter = 0 | counter = 0 | ||
else | else | ||
+ | if counter == 0 then | ||
+ | node = node:tag("tr") | ||
+ | end | ||
+ | local rawtext = mw.ustring.gsub(line, "[-@][-@]", function(match) | ||
+ | return mw.ustring.sub(match, 1, 2) | ||
+ | end) | ||
node:tag("td") | node:tag("td") | ||
:wikitext("<sup>") | :wikitext("<sup>") | ||
:wikitext(actor) | :wikitext(actor) | ||
:wikitext("</sup>") | :wikitext("</sup>") | ||
− | :wikitext( | + | :wikitext(rawtext) |
− | + | if counter == 1 then | |
− | + | node = node:done() | |
− | + | end | |
− | + | ||
− | + | counter = math.mod(counter + 1, 2) | |
− | |||
end | end | ||
end | end |
2020年8月13日 (四) 19:56的版本
此模块的文档可以在模块:少女歌剧/doc创建
local module = {} function module.scenario(frame) local args = frame.args local node = mw.html.create("table") :addClass("wikitable") :tag("tr") :tag("th") :css("width", "50%") :wikitext("原文") :done() :tag("th") :css("width", "50%") :wikitext("译文") :done() :done() local actor = "???" local counter = 0 for index, 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)) --error(mw.dumpObject({index,actor})) if counter == 1 then node:tag("td") node = node.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") error(tostring(node)) node = node.done() counter = 0 end node:tag("tr"):tag("th") :attr("colspan", 2) :wikitext(chapter) counter = 0 else if counter == 0 then node = node:tag("tr") end local rawtext = mw.ustring.gsub(line, "[-@][-@]", function(match) return mw.ustring.sub(match, 1, 2) end) node:tag("td") :wikitext("<sup>") :wikitext(actor) :wikitext("</sup>") :wikitext(rawtext) if counter == 1 then node = node:done() end counter = math.mod(counter + 1, 2) end end return tostring(node) end return module