Files
coursebank/src/export.rs
T
2026-09-26 01:15:12 -04:00

34 lines
1.5 KiB
Rust

// SPDX-License-Identifier: Prosperity-3.0.0
// Copyright Scientific Computing Studio
// Source: https://git.scient.ing/education/coursebank
//! Turning course data into documents.
//!
//! | Module | Produces | For |
//! |:--|:--|:--|
//! | [`qti`] | a QTI 1.2 zip | importing into Canvas |
//! | [`typst`] | `.typ` source | a printed exam, answer key, and bubble sheet |
//! | [`practice`] | Quarto Markdown | a worksheet and a solutions document, off Canvas |
//! | [`site`] | a Quarto partial and an encrypted bundle | a course page with password-gated solutions |
//! | [`report`] | Markdown and HTML | students, and yourself |
//! | [`lecture`] | Markdown | the reading list on the course website |
//! | [`references`] | Hayagriva, CSL-JSON, BibTeX | Typst, Zotero, LaTeX |
//!
//! [`qti`] and [`typst`] share one rule that is easy to get wrong: a form's answer
//! key must be generated from the same permutation that produced its question
//! paper. Both derive option order from the form's recorded seed rather than
//! storing it, so every export of form B agrees with every other.
//!
//! [`report`] writes two documents with different content, not different tones. The
//! student report answers "what should I do next?" and deliberately omits correct
//! answers, other students' data, and any numeric rank.
//! The instructor report answers "what should I fix?" and holds the item statistics.
pub mod lecture;
pub mod practice;
pub mod qti;
pub mod references;
pub mod report;
pub mod site;
pub mod typst;