diff --git a/src/intermediate/registry.rs b/src/intermediate/registry.rs index 7b8f466..b34d88b 100644 --- a/src/intermediate/registry.rs +++ b/src/intermediate/registry.rs @@ -99,6 +99,16 @@ pub(crate) async fn register_footnote_definition<'orig, 'parse>( label: &'parse str, definition: &'orig Vec>, ) -> Result<(), CustomError> { + let has_existing: bool = { + let mut registry = registry.lock().unwrap(); + registry + .footnote_ids + .iter_mut() + .any(|(id, _definition)| *id == Some(label)) + }; + if !has_existing { + return Ok(()); + } let contents = convert_definition_contents(registry.clone(), definition).await?; let mut registry = registry.lock().unwrap(); if let Some((_existing_id, existing_definition)) = registry