420
edits
HyperNervie (talk | contribs) (Reimplement p.main) |
HyperNervie (talk | contribs) (Add p.doclistvar for listing variant icons) |
||
| Line 42: | Line 42: | ||
function p.doclist(frame) | function p.doclist(frame) | ||
local tempFmt = "{{" .. trim(frame.args[1]) .. "}}" | local tempFmt = "{{" .. trim(frame.args[1]) .. "}}" | ||
local noQM = not trim(frame.args["?"]) | |||
local tabs = "" | local tabs = "" | ||
local wikitable | local wikitable | ||
local function addStage(rh, stage) | |||
if noQM and stage.label == "?" then return end | |||
local stageName = stage.name | |||
if stage.target then | |||
stageName = "[[" .. stageName .. "]]" | |||
end | |||
wikitable = wikitable:tag("tr") | |||
:tag("td") | |||
:attr("rowspan", tostring(#stage.entries)) | |||
:css("text-align", "center") | |||
:wikitext(stageName) | |||
:done() | |||
for number, _ in ipairs(stage.entries) do | |||
if number ~= 1 then wikitable = wikitable:tag("tr") end | |||
local tempCall = mw.ustring.format( | |||
tempFmt, rh.console, stage.label, number) | |||
wikitable = wikitable | |||
:tag("td") | |||
:css("text-align", "center") | |||
:tag("code"):wikitext(mw.text.nowiki(tempCall)):done() | |||
:done() | |||
:tag("td"):wikitext(frame:preprocess(tempCall)):done() | |||
:done() | |||
end | |||
end | |||
for _, rh in ipairs(require("Module:Entry/titles").sequence) do | for _, rh in ipairs(require("Module:Entry/titles").sequence) do | ||
| Line 58: | Line 87: | ||
:done() | :done() | ||
for _, stage in ipairs(rh.stages) do | for _, stage in ipairs(rh.stages) do addStage(stage) end | ||
tabs = tabs .. tostring(wikitable) .. "\n" | |||
end | |||
return frame:extensionTag("tabber", tabs) | |||
end | |||
function p.doclistvar(frame) | |||
local tempFmt = "{{" .. trim(frame.args[1]) .. "}}" | |||
local wikitable = mw.html.create("table") | |||
wikitable = wikitable | :addClass("wikitable") | ||
:css("white-space", "nowrap") | |||
:css("max-width", "100%") | |||
:css("overflow-x", "auto") | |||
:tag("tr") | |||
:tag("th"):wikitext("Source"):done() | |||
:tag("th"):wikitext("Output"):done() | |||
:done() | |||
local function addEntry(entry) | |||
wikitable = wikitable:tag("tr") | |||
for _, var in ipairs(entry.iconVariants) do | |||
local tempCall = mw.ustring.format( | |||
tempFmt, entry.console, entry.stage, entry.number, var) | |||
wikitable = wikitable | |||
:tag("td") | :tag("td") | ||
:css("text-align", "center") | :css("text-align", "center") | ||
:wikitext( | :tag("code"):wikitext(mw.text.nowiki(tempCall)):done() | ||
:done() | :done() | ||
:tag("td"):wikitext(frame:preprocess(tempCall)):done() | |||
:done() | |||
end | |||
end | |||
for _, rh in ipairs(require("Module:Entry/titles").sequence) do | |||
for _, stage in ipairs(rh.stages) do | |||
for number, _ in ipairs(stage.entries) do | for number, _ in ipairs(stage.entries) do | ||
local entry = p.new(rh.console, stage.label, number) | |||
local | if entry.iconVariants then addEntry(entry) end | ||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
return p | return p | ||
edits