ElEditors, Interface administrators, Administrators
70,782
edits
No edit summary |
No edit summary |
||
(15 intermediate revisions by the same user not shown) | |||
Line 17: | Line 17: | ||
-- Predefine the subpage for mod skills. | -- Predefine the subpage for mod skills. | ||
local l_mod_subpage = '/ModA' | local l_mod_subpage = '/ModA' | ||
local lang = args.lang and ('/' .. args.lang) or '' | |||
-- Split into two tables for easier maintenance of the code. | -- Split into two tables for easier maintenance of the code. | ||
Line 31: | Line 33: | ||
if (index % 2 == 0) then | if (index % 2 == 0) then | ||
-- Skill names | -- Skill names | ||
table.insert(skill_name_table, v); | table.insert(skill_name_table, v ~= '' and v or 'Unreleased'); | ||
else | else | ||
-- Image names | -- Image names | ||
Line 49: | Line 51: | ||
local mod_subpage = '' | local mod_subpage = '' | ||
local cube = '' | local cube = '' | ||
local prefix = '' | |||
local suffix = '' | |||
-- Locked skills | -- Locked skills | ||
Line 89: | Line 93: | ||
local full_name = name; | local full_name = name; | ||
image = split(image, '\\'); | image = split(image, '\\'); | ||
name = split(name:gsub('%s?#%s?.*', ''), '\\'); | -- Remove prefix, suffix and full name syntax from the display name | ||
name = split(name:gsub('%s?#%s?.*', ''):gsub('^.*%+%+', ''), '\\'); | |||
local index = 1; | local index = 1; | ||
Line 136: | Line 141: | ||
full_name = full_name:gsub('/Mod', ''); | full_name = full_name:gsub('/Mod', ''); | ||
mod_subpage = l_mod_subpage | mod_subpage = l_mod_subpage | ||
end | |||
-- Prefixes and suffixes | |||
if (full_name:match('++')) then | |||
prefix = full_name:match('^(.*)%+%+'); | |||
full_name = trim(full_name:gsub('^.*%+%+', '')); | |||
end | |||
if (full_name:match('##')) then | |||
suffix = full_name:match('##(.*)$'); | |||
full_name = trim(full_name:gsub('##.*$', '')); | |||
end | end | ||
-- Spawn a name cell. | -- Spawn a name cell. | ||
local link = full_name .. mod_subpage .. lang | |||
local name_cell = row:tag('div'):attr('data-type', 'table-cell'); | local name_cell = row:tag('div'):attr('data-type', 'table-cell'); | ||
local skill_wrap = name_cell:tag('div'):addClass('skill-wrap'); | local skill_wrap = name_cell:tag('div'):addClass('skill-wrap'); | ||
skill_wrap:wikitext('[[' .. | skill_wrap:wikitext('[[' .. link .. '|.]]'); | ||
-- Remove (Elsword), (Elesis), etc. in display name | |||
local display_name = full_name:gsub("%s%([%w%s%/]+%)", ""); | local display_name = full_name:gsub("%s%([%w%s%/]+%)", ""); | ||
if not (mod_subpage == '') then | if not (mod_subpage == '') then | ||
display_name = '[Mod] ' .. display_name; | display_name = '[Mod] ' .. display_name; | ||
end | |||
-- Remove the name of the Master Skill | |||
if (args.no_mc_names == 'true') then | |||
display_name = display_name:gsub('.*%/Stage%s([0-9])', 'Stage %1'); | |||
end | end | ||
skill_wrap:tag('div'):addClass('skill-wrap-text'):wikitext('[[' .. | skill_wrap:tag('div'):addClass('skill-wrap-text'):wikitext('[[' .. link .. '|' .. prefix .. display_name .. ']] ' .. suffix .. lock .. cube ); | ||
-- If a header is detected, it will not interrupt chunking. | -- If a header is detected, it will not interrupt chunking. | ||
Line 162: | Line 185: | ||
} | } | ||
end | end | ||
row = skill_table:tag('div'):attr('data-type', 'table-row'):attr('style', 'background-color: ' .. color):addClass('textfloat table-head'); | |||
if (color == '#') then | if (color == '#') then | ||
row:addClass('related-title') | |||
end | end | ||
row:tag('div'):attr('data-type', 'table-head'):wikitext(name); | row:tag('div'):attr('data-type', 'table-head'):wikitext(name); | ||
end | end |