diff options
-rw-r--r-- | src/Text/Pandoc/Options.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Parsing.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 4 | ||||
-rw-r--r-- | src/pandoc.hs | 4 |
4 files changed, 6 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs index 063162718..64c3709e1 100644 --- a/src/Text/Pandoc/Options.hs +++ b/src/Text/Pandoc/Options.hs @@ -61,6 +61,7 @@ data ReaderOptions = ReaderOptions{ -- in parsing dashes; -- is em-dash; -- - before numerial is en-dash , readerLiterateHaskell :: Bool -- ^ Interpret as literate Haskell + , readerCitations :: [String] -- ^ List of available citations } deriving (Show, Read) instance Default ReaderOptions @@ -73,4 +74,5 @@ instance Default ReaderOptions , readerTabStop = 4 , readerOldDashes = False , readerLiterateHaskell = False + , readerCitations = [] } diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index a266c527e..997316180 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -693,7 +693,6 @@ data ParserState = ParserState stateMaxNestingLevel :: Int, -- ^ Max # of nested Strong/Emph stateLastStrPos :: Maybe SourcePos, -- ^ Position after last str parsed stateKeys :: KeyTable, -- ^ List of reference keys - stateCitations :: [String], -- ^ List of available citations stateNotes :: NoteTable, -- ^ List of notes stateTitle :: [Inline], -- ^ Title of document stateAuthors :: [[Inline]], -- ^ Authors of document @@ -720,7 +719,6 @@ defaultParserState = stateMaxNestingLevel = 6, stateLastStrPos = Nothing, stateKeys = M.empty, - stateCitations = [], stateNotes = [], stateTitle = [], stateAuthors = [], diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 4f1831baf..f6f23faed 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1405,8 +1405,8 @@ citeKey = try $ do let internal p = try $ p >>~ lookAhead (letter <|> digit) rest <- many $ letter <|> digit <|> internal (oneOf ":.#$%&-_?<>~") let key = first:rest - st <- getState - guard $ key `elem` stateCitations st + citations' <- getOption readerCitations + guard $ key `elem` citations' return (suppress_author, key) suffix :: Parser [Char] ParserState [Inline] diff --git a/src/pandoc.hs b/src/pandoc.hs index 884e851f9..a0404d9e6 100644 --- a/src/pandoc.hs +++ b/src/pandoc.hs @@ -936,8 +936,7 @@ main = do then "." else takeDirectory (head sources) - let startParserState = def{ stateCitations = map CSL.refId refs, - stateOptions = def{ + let startParserState = def{ stateOptions = def{ readerStrict = strict , readerSmart = smart || (texLigatures && (laTeXOutput || writerName' == "context")) @@ -948,6 +947,7 @@ main = do , readerLiterateHaskell = "+lhs" `isSuffixOf` readerName' || lhsExtension sources + , readerCitations = map CSL.refId refs }, stateIndentedCodeClasses = codeBlockClasses, stateApplyMacros = not laTeXOutput |