모듈:If preview
| 이 모듈은 보호대상 등급이 매겨졌습니다. 이것은 매우 많은 문서에 사용되는 가시성이 높은 모듈이거나 매우 자주 문서 풀어넣기됩니다. 반달이나 실수가 많은 페이지에 영향을 미칠 수 있고 사소한 편집이 서버의 대량 로드가 일어날 수 있기 때문에, 이것은 편집 보호되었습니다. |
| 이 루아 모듈은 많은 문서에서 사용 중인 루아 모듈입니다. 이 루아 모듈을 수정하면 많은 문서에 영향을 줄 수 있습니다. 기여할 모든 내용은 /연습장이나 /시험장에서 사전 점검을 거쳐야 합니다. 이 루아 모듈을 수정하기 전에, 먼저 토론 문서에 의견을 구하시는 것이 좋습니다. |
| 이 모듈은 다음의 모듈에 의존합니다. |
| 이 모듈은 틀스타일을 사용합니다. |
이 모듈은 {{If preview}}와 {{Preview warning}}에서 사용합니다. 틀이나 모듈이 현재 미리보기 상태인지 판별합니다.
다른 틀에서 사용할 때는 모듈을 직접 호출하지 말고 틀을 사용하는 것이 좋습니다.
모듈에서 main()을 사용하려면 args 테이블이 포함된 프레임 테이블을 전달해야 합니다.
미리보기 경고를 출력하려면 _warning()을 사용하세요.
local p = {}
local getArgs = require("Module:Arguments").getArgs
local yn = require("Module:Yesno")
local cfg = mw.loadData('Module:If preview/configuration')
--[[
main
This function returns either the first argument or second argument passed to
this module, depending on whether the page is being previewed.
]]
function p.main(frame)
local args = getArgs(frame)
if cfg.preview then
return args[1] or ''
else
return args[2] or ''
end
end
--[[
pmain
This function returns either the first argument or second argument passed to
this module's parent (i.e. template using this module), depending on whether it
is being previewed.
]]
function p.pmain(frame)
return p.main(frame:getParent())
end
local function warning_text(warning)
return mw.ustring.format(
cfg.warning_infrastructure,
cfg.templatestyles,
warning
)
end
function p._warning(args)
local warning = args[1] and args[1]:match('^%s*(.-)%s*$') or ''
if warning == '' then
return warning_text(cfg.missing_warning)
end
if not cfg.preview then return '' end
if yn(args['consolewarning']) then mw.addWarning(args[1] or cfg.missing_warning) end
return warning_text(warning)
end
--[[
warning
This function returns a "preview warning", which is the first argument marked
up with HTML and some supporting text, depending on whether the page is being previewed.
]]
-- function p.warning(frame)
-- mw.addWarning(frame.args[1] or cfg.missing_warning)
-- return p._warning(frame.args)
-- end
--[[
warning, but for pass-through templates like {{preview warning}}
]]
function p.pwarning(frame)
local args = getArgs(frame)
return p._warning(args)
end
--[[
Does both mw.addWarning and preview warning
]]
function p.warn(text)
if text == nil or text == "" then return "" end
mw.addWarning(text)
return p._warning({text})
end
--[[
Console warning
]]
function p.consoleWarning(frame)
local args = getArgs(frame)
mw.addWarning(args[1] or cfg.missing_warning)
return ''
end
return p