Summary
Add Canvas LMS export capability to Scholar's teaching commands via Examark (v0.6.6). Two deliverables:
- New
/teaching:canvas converter — transforms existing .qmd exams/quizzes into QTI packages for Canvas import
--format canvas flag on existing generation commands (/teaching:exam, /teaching:quiz, /teaching:assignment)
Motivation
Currently, Scholar generates exams/quizzes as .qmd files. To use them in Canvas LMS, instructors must manually re-type questions in the Canvas quiz editor. Examark already converts Markdown to QTI 1.2 (Canvas's import format), and Scholar already has CanvasFormatter and ExamarkFormatter in src/teaching/formatters/ — but they aren't exposed to users or connected to existing .qmd content.
Tracks
Track 1: /teaching:canvas Converter
/teaching:canvas assignments/practice-midterm.qmd
/teaching:canvas assignments/practice-midterm.qmd --validate --emulate
Parses .qmd → detects question types → generates examark .md → runs examark CLI → outputs .qti.zip.
Track 2: --format canvas on Existing Commands
/teaching:exam midterm --format canvas
/teaching:quiz "Week 3" --format canvas
/teaching:exam has --format in generator but NOT in argument parser — needs fix
/teaching:quiz --format canvas is documented but untested
/teaching:assignment has no --format flag
Question Types
All 10 examark types: MC, MA, TF, Short, Numeric, Essay, Matching, FMB, FIB, Upload.
Dependencies
examark >= 0.6.6 (npm/Homebrew, already installed)
- Node.js >= 18
Spec
Full spec at docs/specs/SPEC-2026-02-26-examark-qti-integration.md
Implementation Order
- Track 2 (fix
--format flags) — ~30 min, existing infrastructure
- Track 1 (new converter command) — ~2 hours, needs question-type mapping logic
Summary
Add Canvas LMS export capability to Scholar's teaching commands via Examark (v0.6.6). Two deliverables:
/teaching:canvasconverter — transforms existing.qmdexams/quizzes into QTI packages for Canvas import--format canvasflag on existing generation commands (/teaching:exam,/teaching:quiz,/teaching:assignment)Motivation
Currently, Scholar generates exams/quizzes as
.qmdfiles. To use them in Canvas LMS, instructors must manually re-type questions in the Canvas quiz editor. Examark already converts Markdown to QTI 1.2 (Canvas's import format), and Scholar already hasCanvasFormatterandExamarkFormatterinsrc/teaching/formatters/— but they aren't exposed to users or connected to existing.qmdcontent.Tracks
Track 1:
/teaching:canvasConverterParses
.qmd→ detects question types → generates examark.md→ runsexamarkCLI → outputs.qti.zip.Track 2:
--format canvason Existing Commands/teaching:exam midterm --format canvas /teaching:quiz "Week 3" --format canvas/teaching:examhas--formatin generator but NOT in argument parser — needs fix/teaching:quiz --format canvasis documented but untested/teaching:assignmenthas no--formatflagQuestion Types
All 10 examark types: MC, MA, TF, Short, Numeric, Essay, Matching, FMB, FIB, Upload.
Dependencies
examark>= 0.6.6 (npm/Homebrew, already installed)Spec
Full spec at
docs/specs/SPEC-2026-02-26-examark-qti-integration.mdImplementation Order
--formatflags) — ~30 min, existing infrastructure