모듈:GameJSONParser/설명문서

리버티게임, 모두가 만들어가는 자유로운 게임
< 모듈:GameJSONParser
BANIP (토론 | 기여)님의 2023년 7월 27일 (목) 19:37 판

이 문서는 모듈:GameJSONParser에 대한 설명문서입니다.

Crystal Clear app package games.png
이 모듈은 현재 공사 중입니다!
2024년 12월 08일 13시 27분 40초까지 완성되기로 한 모듈입니다.
"모듈:GameJSONParser/설명문서" 개발에 대한 문의 사항은 이곳에서 받고 있습니다.

리버티게임:게임 메타데이터/스키마.json를 기반으로 game.json을 검증하여 적절한 분류나 틀을 삽입하기 위한 모듈입니다.

이 문서를 만든 사용자도 json 스키마에 대한 지식이 없어 연구하는 단계에 있기에 테스트를 위해 마음대로 수정하셔도 무방합니다.

테스트

1: JSON 스키마 정상작동여부

code_blocks 코드
{{#invoke:GameJSONParser|testParser}}
code
낙서장에서 확인
description 결과
스크립트 오류: 함수 "testParser"가 존재하지 않습니다.
  • 에러: 모듈:Jsonschema 268번째 줄에서 Lua 오류: attempt to call upvalue 'loadstring' (a nil value).
    모듈:Jsonschema의 2번, 268번 라인에서 발생하는 오류
    존재하지 않는 loadstring 함수 호출이 발생 원인
    lua의 loadstring함수(5.2버전 미만에서는 load)는 js에서 eval과 같은 역할을 수행하는데 보안을 위해 미디어위키 모듈 스펙에서 삭제됨 [1]
    JSON스트링을 간단하게 lua 테이블로 가져오기 위해 즉시 실행하는것으로 확인되는데 mw.text.JSONDecode를 사용해 적절하게 교체 필요

2: 문서형식이 JSON으로 된 모듈:GameJSONParser/scheme.json을 즉시 사용 할 수 있는지에 대한 여부

code_blocks 코드
{{#invoke:GameJSONParser|testImportJson}}
code
낙서장에서 확인
description 결과
package.lua 80번째 줄에서 Lua 오류: module '모듈:GameJSONParser/scheme.json' not found.
json문서가 존재함에도 불구하고 아예 모듈파일을 찾을 수 없다는 메세지 출력됨, 문서형식이 module이 아닌 모든 네임스페이스는 require로 불러 올 수 없음을 추측 할 수 있음.

= 3: 직접 구현한 임시 파서 사용

code_blocks 코드
{{#invoke:GameJSONParser|manualParse|{{:리버티게임:게임 메타데이터/스키마.json}}|{{:위키낚시/game.json}}}}
code
낙서장에서 확인
description 결과
스크립트 오류: 함수 "manualParse"가 존재하지 않습니다.


도보시오