drop the cloze-in-basic check for now
Unfortunately a popular note taking tool has been misusing cloze markers in its deck exports. We may want to add this back in the future, but we'll probably want to start by warning users, to give people time to adjust.
This commit is contained in:
parent
0b9fbd9050
commit
9c354f5e6b
@ -382,23 +382,15 @@ impl Notetype {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn ensure_cloze_if_and_only_if_cloze_notetype(
|
fn ensure_cloze_if_cloze_notetype(
|
||||||
&self,
|
&self,
|
||||||
parsed_templates: &[(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
parsed_templates: &[(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
if self.is_cloze() {
|
if self.is_cloze() && missing_cloze_filter(parsed_templates) {
|
||||||
if missing_cloze_filter(parsed_templates) {
|
|
||||||
return Err(AnkiError::TemplateSaveError(TemplateSaveError {
|
|
||||||
notetype: self.name.clone(),
|
|
||||||
ordinal: 0,
|
|
||||||
details: TemplateSaveErrorDetails::MissingCloze,
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
} else if let Some(i) = find_cloze_filter(parsed_templates) {
|
|
||||||
return Err(AnkiError::TemplateSaveError(TemplateSaveError {
|
return Err(AnkiError::TemplateSaveError(TemplateSaveError {
|
||||||
notetype: self.name.clone(),
|
notetype: self.name.clone(),
|
||||||
ordinal: i,
|
ordinal: 0,
|
||||||
details: TemplateSaveErrorDetails::ExtraneousCloze,
|
details: TemplateSaveErrorDetails::MissingCloze,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -460,7 +452,7 @@ impl Notetype {
|
|||||||
self.config.reqs = reqs;
|
self.config.reqs = reqs;
|
||||||
self.ensure_template_fronts_unique()?;
|
self.ensure_template_fronts_unique()?;
|
||||||
self.ensure_valid_parsed_templates(&parsed_templates)?;
|
self.ensure_valid_parsed_templates(&parsed_templates)?;
|
||||||
self.ensure_cloze_if_and_only_if_cloze_notetype(&parsed_templates)?;
|
self.ensure_cloze_if_cloze_notetype(&parsed_templates)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@ -575,19 +567,6 @@ fn missing_cloze_filter(
|
|||||||
.map_or(true, |t| !has_cloze(&t.0) || !has_cloze(&t.1))
|
.map_or(true, |t| !has_cloze(&t.0) || !has_cloze(&t.1))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return the index of the first tuple with a cloze field on either template.
|
|
||||||
fn find_cloze_filter(
|
|
||||||
parsed_templates: &[(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
|
||||||
) -> Option<usize> {
|
|
||||||
parsed_templates.iter().enumerate().find_map(|(i, t)| {
|
|
||||||
if has_cloze(&t.0) || has_cloze(&t.1) {
|
|
||||||
Some(i)
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/// True if the template is non-empty and has a cloze field.
|
/// True if the template is non-empty and has a cloze field.
|
||||||
fn has_cloze(template: &Option<ParsedTemplate>) -> bool {
|
fn has_cloze(template: &Option<ParsedTemplate>) -> bool {
|
||||||
template
|
template
|
||||||
|
Loading…
Reference in New Issue
Block a user