모듈:Changelog
게임 메타데이터에 업데이트 로그 링크(changelog)가 있을 경우 업데이트 로그 문서에 대해 DPL 쿼리를 인수로 전달했을 때 게임 메타데이터를 추적하여 틀:게임 알림 카드에 적절한 인수를 넘겨 렌더링하는 모듈입니다.
모든 changelog 링크는 리버티게임 내부 문서 링크로 걸려야 한다는 사실에 유의하세요! 만약 다른 사이트에 업데이트 로그를 게시하는 경우 리버티게임 내부에 해당 링크를 적은 문서를 넣으면 됩니다.
이 모듈을 다른 미디어위키 사이트에 사용할 경우 DynamicPageList3 확장 기능이 필요합니다. 그리고 틀:게임 알림 카드는 게임 이름, 게임 업데이트 로그 문서 이름 순서로 2개의 인자(Parameter)를 받도록 제작해야 합니다.
getChangelogCard
DynamicPageList3의 쿼리 파서 함수 문법으로 가져온 문서 리스트를 넣습니다.
쿼리 출력 모드는 userformat, 출력 포맷은 ,%PAGE%,\,으로 적어주세요. \ (원화 기호 또는 역슬래시 기호)를 사용하여 게임 문서
{{#invoke:changelog|getChangelogCard|(DPL3 쿼리)}}
예를 들어 리버티게임:대문/신규 대문 (2024) 문서의 최근 업데이트 문서에 있는 게임 별 알림 카드 리스트는 다음과 같이 불러옵니다.
{{#invoke:changelog|getChangelogCard|{{#dpl:|category=게임_별_알림|ordermethod=lastedit|mode=userformat|format=,%PAGE%,\,}}}}
위 설명은 모듈:Changelog/설명문서의 내용을 가져와 보여주고 있습니다. (편집 | 역사) 이 모듈에 대한 수정 연습과 시험은 연습장 (만들기 | 미러)과 시험장 (만들기)에서 할 수 있습니다. 분류는 /설명문서에 넣어주세요. 이 모듈에 딸린 문서. |
local p = {}
-- import
local tf = require("모듈:TemplateFunction")
-- 커스텀 정렬 테스트(삭제 예정)
function p.srt_custom(frame)
local data = mw.text.jsonDecode(frame.args[1])
table.sort(data, function (a,b) return a[2] > b[2] end)
return mw.text.jsonEncode(data)
end
-- [[틀:알림카드]] 렌더링
function p.getChangelogCard()
-- 먼저 dpl로 된 인수가 들어왔는지 확인(빈 문자열 혹은 공백인지 확인)
local frame = mw.getCurrentFrame()
local param1 = frame.args[1]
mw.log(param1)
if param1 == nil or param1 == "" or param1 == " " then
return "최근 업데이트된 게임이 없습니다"
end
local pagestrlist = mw.text.split(mw.text.trim(param1, '\\'), '\\', true)
-- 알림카드를 하나씩 렌더링하여 concat
local result = "<div id=\"recentchange-inner\" style=\"max-width:100%;display:inline-flex;flex-direction:row;flex-wrap:nowrap;max-height:200px\">"
local template = tf.load("게임 알림 카드")
for _, v in pairs(pagestrlist) do
result = result .. tostring(template:bind{v})
end
result = result .. "</div>"
return result
end
-- 패키지 선언 끝
return p