feat: write quarto assignment with encryption

This commit is contained in:
2026-08-10 03:25:15 -04:00
parent 327ac371e4
commit 1cc8137be9
15 changed files with 1678 additions and 53 deletions
+6 -6
View File
@@ -352,7 +352,7 @@ fn validate_item(
issues.push("version must be at least 1".into());
}
// --- options ---
// --- options ----
// An open-response item takes no options; its answer lives in `solution`.
// Every other format needs at least two things to choose between.
if it.format.has_options() {
@@ -428,7 +428,7 @@ fn validate_item(
}
}
// --- key -----
// --- key ---
let keys = it.key_indices();
match it.format {
Format::SingleBestAnswer => {
@@ -465,7 +465,7 @@ fn validate_item(
}
}
// --- level and process must agree --------
// --- level and process must agree -------
if let Some(p) = it.cognitive_process {
if !it.level.allows(p) {
issues.push(format!(
@@ -476,7 +476,7 @@ fn validate_item(
}
}
// --- design plausibility -----------
// --- design plausibility ------
if let Some(d) = &it.design {
if let Some(x) = d.expected_difficulty {
if !(0.0..=1.0).contains(&x) {
@@ -548,7 +548,7 @@ fn validate_item(
));
}
// --- retirement ----
// --- retirement -----
if it.retired.is_some() && it.status != Status::Retired {
issues.push(format!(
"has a `retired` block but status is `{}`",
@@ -588,7 +588,7 @@ fn validate_item(
}
}
// --- cross-file references ---------
// --- cross-file references ----
if let Some(c) = course {
for lo in &it.learning_objectives {
match c.learning_objectives.get(lo) {