문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다: 사용자, 관리자. 이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다. 문서를 고치려면 이메일 인증 절차가 필요합니다. 사용자 환경 설정에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다. 문서의 원본을 보거나 복사할 수 있습니다. local p = {} -- HTML 특수문자 이스케이프 함수 local 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 '' if light == '' then return '<strong class="error">라이트모드 이미지가 필요합니다.</strong>' end -- 선택: 다크모드 이미지 local dark = args[2] or '' local width = escape_html(args[3] or '') local alt = escape_html(args['alt'] or '') local raw_link = args['link'] local class = escape_html(args['class'] or '') local style = escape_html(args['style'] or '') -- 이미지 경로 변환 local lighturl = escape_html(frame:callParserFunction('filepath', light)) local darkurl = '' if dark ~= '' then darkurl = escape_html(frame:callParserFunction('filepath', dark)) end -- 링크 처리 local link = nil if raw_link ~= nil then if raw_link ~= '' then link = '/wiki/index.php/' .. mw.uri.encode(raw_link, 'WIKI') else link = '' -- link= 명시했지만 비어 있음 → 링크 없음 end else link = '/wiki/index.php/파일:' .. mw.uri.encode(light, 'WIKI') end -- 이미지 태그 생성 함수 local function make_img(src, img_class) local tag = '<img src="' .. src .. '" class="' .. img_class if class ~= '' then tag = tag .. ' ' .. class end tag = tag .. '"' if width ~= '' then tag = tag .. ' width="' .. width .. '"' end if alt ~= '' then tag = tag .. ' alt="' .. alt .. '"' end if style ~= '' then tag = tag .. ' style="' .. style .. '"' end tag = tag .. '>' return tag end local light_img = make_img(lighturl, 'light-mode-img') local dark_img = darkurl ~= '' and make_img(darkurl, 'dark-mode-img') or '' -- 최종 출력 local html = {} table.insert(html, '<div class="image-switch-wrapper">') if link ~= '' then table.insert(html, '<a href="' .. link .. '">' .. light_img .. dark_img .. '</a>') else table.insert(html, light_img .. dark_img) end table.insert(html, '</div>') return table.concat(html) end return p 이 문서에서 사용한 틀: 모듈:ImageSwitch/설명문서 (원본 보기) 모듈:ImageSwitch 문서로 돌아갑니다.