모듈:CSSVars: 두 판 사이의 차이
편집 요약 없음 |
편집 요약 없음 |
||
| (같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
| 2번째 줄: | 2번째 줄: | ||
function p.set(frame) | function p.set(frame) | ||
local args = frame:getParent().args | -- 1. 본문 직접 호출({{#invoke:}})과 틀 경유 호출({{틀이름|...}}) 인자를 모두 병합 | ||
local args = {} | |||
local parentArgs = frame:getParent().args | |||
local directArgs = frame.args | |||
-- 본문 호출 인자 먼저 담기 | |||
for k, v in pairs(directArgs) do args[k] = v end | |||
-- 틀 호출 인자로 덮어쓰기 (틀 인자가 우선순위가 높음) | |||
for k, v in pairs(parentArgs) do args[k] = v end | |||
local vars = {} | local vars = {} | ||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
if | local val = mw.text.trim(v or '') | ||
vars[k] = | if val ~= '' then | ||
vars[k] = val | |||
end | end | ||
end | end | ||
-- 디버깅용: 인자가 여전히 없다면 에러 메시지 출력 | |||
if next(vars) == nil then | if next(vars) == nil then | ||
return '' | return '<span class="mw-page-css-vars-error" style="color:red;">[CSSVars] 인자가 전달되지 않았습니다. {{#invoke:모듈|set|key=value}} 형태로 입력했는지 확인하세요.</span>' | ||
end | end | ||
local json = mw.text.jsonEncode(vars) | local json = mw.text.jsonEncode(vars) | ||
-- mw.text.tag를 사용하는 것이 가장 안전하게 HTML을 생성하는 방법입니다. | |||
-- mw.text. | return mw.text.tag('span', { | ||
class = 'mw-page-css-vars', | |||
['data-vars'] = json, | |||
style = 'display:none;' | |||
}, ' ') -- 빈 칸 하나를 넣어 태그 유실 방지 | |||
end | end | ||
return p | return p | ||
2026년 1월 28일 (수) 18:50 기준 최신판
이 모듈에 대한 설명문서는 모듈:CSSVars/설명문서에서 만들 수 있습니다
local p = {}
function p.set(frame)
-- 1. 본문 직접 호출({{#invoke:}})과 틀 경유 호출({{틀이름|...}}) 인자를 모두 병합
local args = {}
local parentArgs = frame:getParent().args
local directArgs = frame.args
-- 본문 호출 인자 먼저 담기
for k, v in pairs(directArgs) do args[k] = v end
-- 틀 호출 인자로 덮어쓰기 (틀 인자가 우선순위가 높음)
for k, v in pairs(parentArgs) do args[k] = v end
local vars = {}
for k, v in pairs(args) do
local val = mw.text.trim(v or '')
if val ~= '' then
vars[k] = val
end
end
-- 디버깅용: 인자가 여전히 없다면 에러 메시지 출력
if next(vars) == nil then
return '<span class="mw-page-css-vars-error" style="color:red;">[CSSVars] 인자가 전달되지 않았습니다. {{#invoke:모듈|set|key=value}} 형태로 입력했는지 확인하세요.</span>'
end
local json = mw.text.jsonEncode(vars)
-- mw.text.tag를 사용하는 것이 가장 안전하게 HTML을 생성하는 방법입니다.
return mw.text.tag('span', {
class = 'mw-page-css-vars',
['data-vars'] = json,
style = 'display:none;'
}, ' ') -- 빈 칸 하나를 넣어 태그 유실 방지
end
return p