Module:CharTree/zh-hant: Difference between revisions
From Elwiki
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
local p = {} | local p = {} | ||
local get_char_list = require('Module:CharList').main | local get_char_list = require('Module:CharList').main | ||
-- 提取 base 名稱,用於圖片名稱(去掉語系碼) | |||
local function get_icon_base_name(fullname) | |||
return fullname:match('^([^/]+)') or fullname | |||
end | |||
-- Main process | -- Main process | ||
Line 18: | Line 23: | ||
function split_lang(str) | function split_lang(str) | ||
local lang_l = is_localized and lang or '' | |||
return is_localized and split(str, lang_l .. '|') or str | |||
end | end | ||
Line 59: | Line 53: | ||
end | end | ||
end | end | ||
end | end | ||
for job_iter, job_name in ipairs(jobs) do | for job_iter, job_name in ipairs(jobs) do | ||
for path_iter, path_name in ipairs(job_name) do | for path_iter, path_name in ipairs(job_name) do | ||
-- Foreign languages | -- Foreign languages | ||
local name_split = split_lang(path_name) | local icon_link_char_name = path_name; | ||
local normal_link_char_name = path_name; | |||
if str_localized(path_name) then | |||
local name_split = split_lang(path_name) | |||
icon_link_char_name = get_icon_base_name(name_split[1]):gsub(':', '') | |||
path_name = name_split[2] | |||
normal_link_char_name = name_split[1] .. lang | |||
end | |||
icon_link_char_name = icon_link_char_name:gsub(':', '') | |||
local icon_str = 'Icon - ' | local icon_str = 'Icon - ' | ||
local link = '|link=' .. normal_link_char_name | local link = '|link=' .. normal_link_char_name | ||
Line 84: | Line 79: | ||
local icon_with_link = '[[File:' .. icon_str .. icon_link_char_name .. '.png' .. link .. ']]' | local icon_with_link = '[[File:' .. icon_str .. icon_link_char_name .. '.png' .. link .. ']]' | ||
local img = tree:tag('div'):addClass('char-banner-tree-image'):attr('data-class-name', | local img = tree:tag('div'):addClass('char-banner-tree-image'):attr('data-class-name', path_name):wikitext(icon_with_link) | ||
if unreleased then | if unreleased then | ||
Line 111: | Line 106: | ||
local display_name = v; | local display_name = v; | ||
local actual_name = v; | local actual_name = v; | ||
if str_localized(v) then | if str_localized(v) then actual_name = split_lang(v)[1]; display_name = split_lang(v)[2] end | ||
if actual_name == 'Lu/Ciel' then actual_name = 'LuCiel (Lu)' end | if actual_name == 'Lu/Ciel' then actual_name = 'LuCiel (Lu)' end | ||
local base_icon = mw.html.create('div'):attr('data-base', actual_name):attr('data-display-base', display_name or actual_name):wikitext('[[File: Icon - ' .. actual_name .. '.png]]') | local base_icon = mw.html.create('div'):attr('data-base', actual_name):attr('data-display-base', display_name or actual_name):wikitext('[[File: Icon - ' .. get_icon_base_name(actual_name) .. '.png]]') | ||
select_banner:node(base_icon) | select_banner:node(base_icon) | ||
end | end | ||
char_outer:wikitext(header):node(char_banner:node(select_banner)) | char_outer:wikitext(header):node(char_banner:node(select_banner)) | ||
return styles .. tostring(char_outer) | |||
end | end | ||
return p | return p |