From b48fa0ea59da6b32924d2f042c8a7411a03f89d4 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 22 Nov 2010 23:09:30 -0800 Subject: Check biblio for all citations, not just textual. --- src/Text/Pandoc/Readers/Markdown.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index d59f8a71a..2d3ad1199 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1332,9 +1332,6 @@ noneOfUnlessEscaped cs = textualCite :: GenParser Char ParserState [Citation] textualCite = try $ do (_, key) <- citeKey - st <- getState - unless (key `elem` stateCitations st) $ - fail "not a citation" let first = Citation{ citationId = key , citationPrefix = [] , citationSuffix = [] @@ -1368,13 +1365,16 @@ normalCite = try $ do char ']' return citations -citeKey :: GenParser Char st (Bool, String) +citeKey :: GenParser Char ParserState (Bool, String) citeKey = try $ do suppress_author <- option False (char '-' >> return True) char '@' first <- letter rest <- many $ (noneOf ",;]@ \t\n") - return (suppress_author, first:rest) + let key = first:rest + st <- getState + guard $ key `elem` stateCitations st + return (suppress_author, key) locator :: GenParser Char st String locator = try $ do -- cgit v1.2.3