@@ -1173,18 +1173,18 @@ chkCit t = do
1173 case lookupKeySrc (stateKeys st) [Str $ fst t] of
1173 case lookupKeySrc (stateKeys st) [Str $ fst t] of
1174 Just _ -> fail "This is a link"
1174 Just _ -> fail "This is a link"
1175 Nothing -> if elem (fst t) $ stateCitations st
1175 Nothing -> if elem (fst t) $ stateCitations st
1176− then return $ Just t
1176+ then return $ Just t
1177− else return $ Nothing
1177+ else return $ Nothing
1179citeMarker :: GenParser Char ParserState String
1179citeMarker :: GenParser Char ParserState String
1180−citeMarker = string "[" >> manyTill anyChar (try $ string "]")
1180+citeMarker = char '[' >> manyTill ( noneOf "\n" <|> (newline >>~ notFollowedBy blankline) ) (char ']')
1182parseCitation :: GenParser Char ParserState [(String,String)]
1182parseCitation :: GenParser Char ParserState [(String,String)]
1183parseCitation = try $ sepBy (parseLabel) (oneOf ";")
1183parseCitation = try $ sepBy (parseLabel) (oneOf ";")
1185parseLabel :: GenParser Char ParserState (String,String)
1185parseLabel :: GenParser Char ParserState (String,String)
1186parseLabel = try $ do
1186parseLabel = try $ do
1187− res <- sepBy (skipMany (oneOf "\t\n ") >> many1 (noneOf "@;")) (oneOf "@")
1187+ res <- sepBy (skipSpaces >> optional newline >> skipSpaces >> many1 (noneOf "@;")) (oneOf "@")
1188 case res of
1188 case res of
1189 [lab,loc] -> return (lab, loc)
1189 [lab,loc] -> return (lab, loc)
1190 [lab] -> return (lab, "" )
1190 [lab] -> return (lab, "" )