@@ -317,6 +317,7 @@ rawLines = do
318noteBlock :: MarkdownParser (F Blocks)
318noteBlock :: MarkdownParser (F Blocks)
319noteBlock = try $ do
319noteBlock = try $ do
320 skipNonindentSpaces
321 skipNonindentSpaces
321 ref <- noteMarker
322 ref <- noteMarker
@@ -328,7 +329,11 @@ noteBlock = try $ do
328 optional blanklines
329 optional blanklines
329 parsed <- parseFromString parseBlocks raw
330 parsed <- parseFromString parseBlocks raw
330 let newnote = (ref, parsed)
331 let newnote = (ref, parsed)
332+ oldnotes <- stateNotes' <$> getState
333+ case lookup ref oldnotes of
334+ Just _ -> addWarning (Just pos) $ "Duplicate note reference `" ++ ref ++ "'"
335+ Nothing -> return ()
331− updateState $ \s -> s { stateNotes' = newnote : stateNotes' s }
336+ updateState $ \s -> s { stateNotes' = newnote : oldnotes }
332 return mempty
337 return mempty