모듈:Frame
이 모듈에 대한 설명문서는 모듈:Frame/설명문서에서 만들 수 있습니다
local p = {}
-- 틀을 호출한 스코프 확인 (위키용/string)
function p.parent(frame)
local no = frame.args[1] or ""
local parent = frame:getParent():getParent()
return parent and parent:getTitle() or no
end
-- 스코프 체인에 특정 문서가 있는지 확인 (모듈용/boolean)
function p.is_scope(frame, title)
local parent = frame
while parent do
if parent:getTitle() == title then
return true
end
parent = parent:getParent()
end
return false
end
-- 스코프 체인에 특정 문서가 있는지 확인 (위키용/then-else)
function p.scope(frame)
local title = frame.args[1]
local yes = frame.args[2] or ""
local no = frame.args[3] or ""
return p.is_scope(frame, title) and yes or no
end
-- 스코프 체인 (모듈용/table)
function p.chaintable(frame)
local chain = {}
local parent = frame
while parent do
table.insert(chain, parent:getTitle())
parent = parent:getParent()
end
return chain
end
-- 스코프 체인 (위키용/string 또는 JSON)
function p.chain(frame)
local joiner = frame.args[1]
local chain = p.chaintable(frame)
if joiner
then return table.concat(chain, joiner)
else return mw.text.jsonEncode(chain)
end
end
-- 인자 테이블 (위키용/JSON)
function p.args(frame)
return mw.text.jsonEncode(frame:getParent().args)
end
-- 인자 키 테이블 (위키용/string 또는 JSON)
function p.keys(frame)
local joiner = frame.args[1]
local args = frame:getParent().args
if joiner
then return table.concat(args, joiner)
else return mw.text.jsonEncode(args)
end
end
return p