이 모듈에 대한 설명문서는 모듈:ImageSwitch/설명문서에서 만들 수 있습니다
local p = {}
function escape_html(text)
return text
:gsub("&", "&")
:gsub("<", "<")
:gsub(">", ">")
:gsub("\"", """)
:gsub("'", "'")
end
function p.main(frame)
local args = frame:getParent().args
local light = args[1] or ''
local dark = args[2] or ''
local width = escape_html(args[3] or '')
local alt = escape_html(args['alt'] or '')
local link = escape_html(args['link'] or '')
local class = escape_html(args['class'] or '')
local style = escape_html(args['style'] or '')
if light == '' then
return '<strong class="error">라이트모드 이미지가 필요합니다.</strong>'
end
local lighturl = escape_html(frame:callParserFunction('filepath', light))
local darkurl = ''
if dark and mw.text.trim(dark) ~= '' then
darkurl = escape_html(frame:callParserFunction('filepath', dark))
end
local html = {}
table.insert(html, '<div class="image-switch-wrapper">')
-- 라이트모드 이미지
local img1 = '<img src="' .. lighturl .. '" class="light-mode-img'
if class ~= '' then img1 = img1 .. ' ' .. class end
img1 = img1 .. '"'
if width ~= '' then img1 = img1 .. ' width="' .. width .. '"' end
if alt ~= '' then img1 = img1 .. ' alt="' .. alt .. '"' end
if style ~= '' then img1 = img1 .. ' style="' .. style .. '"' end
img1 = img1 .. '>'
-- 다크모드 이미지
local img2 = ''
if darkurl ~= '' then
img2 = '<img src="' .. darkurl .. '" class="dark-mode-img'
if class ~= '' then img2 = img2 .. ' ' .. class end
img2 = img2 .. '"'
if width ~= '' then img2 = img2 .. ' width="' .. width .. '"' end
if alt ~= '' then img2 = img2 .. ' alt="' .. alt .. '"' end
if style ~= '' then img2 = img2 .. ' style="' .. style .. '"' end
img2 = img2 .. '>'
end
if link ~= '' then
table.insert(html, '<a href="/wiki/' .. link .. '">' .. img1 .. img2 .. '</a>')
else
table.insert(html, img1 .. img2)
end
table.insert(html, '</div>')
return table.concat(html)
end
return p