Editing Module:Variants
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
require('Module:Mw.html extension') |
|||
local p = {} |
local p = {} |
||
Line 13: | Line 12: | ||
local query = { |
local query = { |
||
'[[Variant of::'..variant_name..']]', |
'[[Variant of::'..variant_name..']]', |
||
'?Profession A #', -- Adding a # to this query makes it return plaintext instead of a link |
|||
'?Profession B #', |
|||
'?Profession Level A', |
'?Profession Level A', |
||
'?Profession Level B', |
'?Profession Level B', |
||
'?Profession Level A High', |
|||
'?Profession Level B High', |
|||
get_images and '?Image#64px;x64px = Image' or nil, |
get_images and '?Image#64px;x64px = Image' or nil, |
||
limit = args.limit or 500, |
limit = args.limit or 500, |
||
Line 59: | Line 54: | ||
return ':No variants found.' |
return ':No variants found.' |
||
end |
end |
||
local profession_b_flag = false |
|||
for _, entry in ipairs(smw_data) do |
|||
if entry['Profession B'] or entry['Profession Level B'] then |
|||
profession_b_flag = true |
|||
end |
|||
break |
|||
end |
|||
local table = mw.html.create('table') |
local table = mw.html.create('table') |
||
:addClass('sortable wikitable') |
:addClass('sortable wikitable') |
||
Line 77: | Line 63: | ||
:tag('th') |
:tag('th') |
||
:wikitext('Level') |
:wikitext('Level') |
||
:attrIf(profession_b_flag, 'colspan', 2) |
|||
:done() |
:done() |
||
:done() |
:done() |
||
local function formatProfessionLevel(profession, level, high) |
|||
if not (profession or level) then |
|||
return nil |
|||
end |
|||
profession = profession or 'Unknown profession' |
|||
local level_text = tostring(level or '?') |
|||
if high then |
|||
level_text = ('%s➨%d'):format(level_text, high) |
|||
end |
|||
return ('%s [[File:%s small icon.png|21x21px|link=%s]]'):format(level_text, profession, profession) |
|||
end |
|||
for _, entry in ipairs(smw_data) do |
for _, entry in ipairs(smw_data) do |
||
local profession_level_a = entry['Profession Level A'] or '?' |
|||
local profession_level_b = entry['Profession Level B'] or '?' |
|||
local profession_a = entry['Profession A'] or '' |
|||
local profession_b = entry['Profession B'] or '' |
|||
table |
table |
||
:tag('tr') |
:tag('tr') |
||
Line 109: | Line 78: | ||
:done() |
:done() |
||
:tag('td') |
:tag('td') |
||
: |
:wikitext(entry['Profession Level A']) |
||
⚫ | |||
:wikitext(formatProfessionLevel(entry['Profession A'], entry['Profession Level A'], entry['Profession Level A High'])) |
|||
:IF(profession_b_flag) |
|||
:tag('td') |
|||
:IF(entry['Profession B']) |
|||
:css{ ['text-align'] = 'right' } |
|||
:wikitext(formatProfessionLevel(entry['Profession B'], entry['Profession Level B'], entry['Profession Level B High'])) |
|||
⚫ | |||
:END() |
|||
:done() |
:done() |
||
end |
end |