Module:Entry: Difference between revisions

Remake p.doclist
(I guess I need to learn more about `mw.html`...)
(Remake p.doclist)
Line 33: Line 33:


function p.doclist(frame)
function p.doclist(frame)
local arg = trim(frame.args[1])
local tempFmt = "{{" .. trim(frame.args[1]) .. "}}"
local template = ({
local tabs = ""
textWithTempoUp = "entry",
local wikitable
title = "et",
link = "el",
iconName = "ein",
icon = "ei",
iconAndLink = "eil",
})[arg]


local wikitable
local function addRow(entry)
local result = entry[arg]
if type(result) == "function" then result = result(entry) end
wikitable = wikitable -- Should be a <tr> here
:tag("td"):tag("code")
:wikitext(mw.ustring.format(
"&#123;&#123;%s|%s|%s|%s&#125;&#125;",
template, entry.console, entry.stage, entry.number))
:done():done()
:tag("td"):wikitext(result):done()
:done() -- End <tr> and go back to <table>
end
local tabs = ""
for _, rh in ipairs(require("Module:Entry/titles").sequence) do
for _, rh in ipairs(require("Module:Entry/titles").sequence) do
tabs = tabs .. "|-|" .. rh.console .. "="
tabs = tabs .. "|-|" .. rh.console .. "="
Line 70: Line 49:
:tag("th"):wikitext("Output"):done()
:tag("th"):wikitext("Output"):done()
:done()
:done()
for _, stage in ipairs(rh.stages) do
for _, stage in ipairs(rh.stages) do
local stageName
if stage.link == nil then
stageName = stage.name
elseif stage.link == true then
stageName = mw.ustring.format("[[%s]]", stage.name)
else
stageName = mw.ustring.format("[[%s|%s]]", stage.link, stage.name)
end
wikitable = wikitable:tag("tr")
wikitable = wikitable:tag("tr")
:tag("td")
:tag("td")
:attr("rowspan", tostring(#stage.entries))
:attr("rowspan", tostring(#stage.entries))
:wikitext(stage.name)
:css("text-align", "center")
:done() -- Should be a <tr> here
:wikitext(stageName)
:done()
for number, _ in ipairs(stage.entries) do
for number, _ in ipairs(stage.entries) do
if number ~= 1 then wikitable = wikitable:tag("tr") end
if number ~= 1 then wikitable = wikitable:tag("tr") end
addRow(p.new(rh.console, stage.label, number))
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
end
end
420

edits