TestMagick는 구조화된 문제 파일에서 문제지와 정답지를 자동으로 생성하는 로컬 CLI 도구입니다.
입력 데이터를 Typst 문서로 렌더링한 뒤 PDF로 컴파일하여, 반복적인 시험 대비 문서 작업을 빠르게 처리할 수 있습니다.
TestMagick는 개인 학습/출제 워크플로우를 위해 설계되었습니다.
- 웹 서버 배포 없이 로컬에서 바로 실행
- 문제 데이터를 한 번에 정리하여 반복 출력
- 수식이나 코드가 포함된 문제 깔끔하게 렌더링
TestMagick는 다음 기능을 제공합니다.
- Pydantic 기반 입력 스키마 검증
- YAML/JSON 입력 파일 로딩
- Typst 템플릿 렌더링
- 수식 렌더링
- 코드 블록 렌더링
사전 준비:
- Python 3.11 이상
- Typst CLI
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"입력 파일은 YAML 또는 JSON을 사용할 수 있습니다.
참고 예시:
./data/sample_problems.yaml
다음을 포함해야 합니다:
mcq의answer는 1부터 시작하는 인덱스(예:2) 또는 선택지 텍스트short문제는choices를 포함하면 안 됨- 수식/코드 렌더링은
question_typst,choices_typst,answer_typst사용
빠른 실행:
./run검증만:
./run validate --input data/sample_problems.yamlPDF 생성:
./run build --input data/sample_problems.yaml --out out모듈 직접 실행:
python -m testmagick validate --input data/sample_problems.yaml
python -m testmagick build --input data/sample_problems.yaml --out out기본적으로 out/ 디렉터리에 아래 파일이 생성됩니다.
exam.typanswer.typexam.pdfanswer.pdfpackage.zip
