Module:GameInfo: Difference between revisions
From SpiritVale Wiki
More actions
No edit summary |
No edit summary Tags: Mobile edit Mobile web edit |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
-- | -- Sitewide color/system ownership now lives in Common.css + Citizen.css. | ||
-- This module still loads its scoped TemplateStyles entrypoint, but that | |||
-- stylesheet should defer to shared sitewide tokens/components whenever possible. | |||
local DEFAULT_STYLE_SRC = "Module:GameInfo/styles.css" | local DEFAULT_STYLE_SRC = "Module:GameInfo/styles.css" | ||
local ROUTES = { | local ROUTES = { | ||
Skills = "Module:GameInfo/Skills", | Skills = "Module:GameInfo/Skills", | ||
} | } | ||
local function _trim(v) | local function _trim(v) | ||
| Line 50: | Line 29: | ||
and type(x.tag) == "function" | and type(x.tag) == "function" | ||
and type(x.wikitext) == "function" | and type(x.wikitext) == "function" | ||
end | |||
local function _append_content(node, value) | |||
if value == nil then return end | |||
if _is_html_node(value) then | |||
node:node(value) | |||
else | |||
node:wikitext(tostring(value)) | |||
end | |||
end | end | ||
local function _error_box(msg) | local function _error_box(msg) | ||
return tostring( | return tostring( | ||
mw.html.create("div") | mw.html.create("div") | ||
:addClass("sv-card") | |||
:addClass("sv-gi-error") | :addClass("sv-gi-error") | ||
:wikitext(tostring(msg)) | :wikitext(tostring(msg)) | ||
) | ) | ||
end | end | ||
function p.arg(frame, key, fallback) | function p.arg(frame, key, fallback) | ||
| Line 87: | Line 71: | ||
return fallback | return fallback | ||
end | end | ||
function p.styles(frame, src) | function p.styles(frame, src) | ||
| Line 98: | Line 78: | ||
end | end | ||
function p.box(opts) | function p.box(opts) | ||
opts = opts or {} | opts = opts or {} | ||
| Line 116: | Line 90: | ||
local root = mw.html.create("div") | local root = mw.html.create("div") | ||
:addClass("sv-card") | |||
:addClass("sv-gi-card") | :addClass("sv-gi-card") | ||
:attr("data-gi", "1") | :attr("data-gi", "1") | ||
:attr("data-sv-card", "1") | |||
:attr("data-gi-phase", "4.1") | :attr("data-gi-phase", "4.1") | ||
:attr("data-level", tostring(level)) | :attr("data-level", tostring(level)) | ||
| Line 128: | Line 104: | ||
if opts.variant and tostring(opts.variant) ~= "" then | if opts.variant and tostring(opts.variant) ~= "" then | ||
root:addClass("sv-gi--" .. tostring(opts.variant)) | root:addClass("sv-gi--" .. tostring(opts.variant)) | ||
root:attr("data-sv-card-variant", tostring(opts.variant)) | |||
end | end | ||
local top = root:tag("div"):addClass("sv-gi-top") | local top = root:tag("div"):addClass("sv-gi-top") | ||
local bottom = root:tag("div"):addClass("sv-gi-bottom") | local bottom = root:tag("div") | ||
:addClass("sv-gi-bottom") | |||
:attr("data-sv-level-scope", "1") | |||
return { root = root, top = top, bottom = bottom } | return { root = root, top = top, bottom = bottom } | ||
end | end | ||
p.new_box = p.box | p.new_box = p.box | ||
function p.render_box(opts) | function p.render_box(opts) | ||
local box = p.box(opts) | local box = p.box(opts) | ||
if opts | if opts then | ||
_append_content(box.top, opts.top) | |||
_append_content(box.bottom, opts.bottom) | |||
end | end | ||
return tostring(box.root) | return tostring(box.root) | ||
end | end | ||
local function _require_submodule(module_title) | local function _require_submodule(module_title) | ||
| Line 183: | Line 155: | ||
return p.styles(frame, style_src) .. tostring(out or "") | return p.styles(frame, style_src) .. tostring(out or "") | ||
end | end | ||
function p.Skills(frame) | function p.Skills(frame) | ||
| Line 208: | Line 176: | ||
end | end | ||
function p.skeleton(frame) | function p.skeleton(frame) | ||
frame = frame or mw.getCurrentFrame() | frame = frame or mw.getCurrentFrame() | ||
| Line 226: | Line 192: | ||
max_level = max_level, | max_level = max_level, | ||
variant = variant, | variant = variant, | ||
top = | top = top, | ||
bottom = | bottom = bottom, | ||
}) | }) | ||
end | end | ||
return p | return p | ||