@@ -52,7 +52,6 @@ import qualified Control.Exception as E
52import Control.Exception.Extensible ( throwIO )
52import Control.Exception.Extensible ( throwIO )
53import qualified Text.Pandoc.UTF8 as UTF8
53import qualified Text.Pandoc.UTF8 as UTF8
54import qualified Text.CSL as CSL
54import qualified Text.CSL as CSL
55−import Text.Pandoc.Biblio
56import Control.Monad (when, unless, liftM)
55import Control.Monad (when, unless, liftM)
57import Network.HTTP (simpleHTTP, mkRequest, getResponseBody, RequestMethod(..))
56import Network.HTTP (simpleHTTP, mkRequest, getResponseBody, RequestMethod(..))
58import Network.URI (parseURI, isURI, URI(..))
57import Network.URI (parseURI, isURI, URI(..))
@@ -924,6 +923,24 @@ main = do
924 reffiles >>=
923 reffiles >>=
925 return . map unescapeRefId . concat
924 return . map unescapeRefId . concat
926+ mbsty <- if citeMethod == Citeproc && not (null refs)
928+ csl <- CSL.parseCSL =<<
930+ Nothing -> readDataFile datadir "default.csl"
932+ exists <- doesFileExist cslfile
934+ then UTF8.readFile cslfile
936+ csldir <- getAppUserDataDirectory "csl"
938+ readDataFile datadir (replaceDirectory
939+ (replaceExtension cslfile "csl") csldir)
940+ abbrevs <- maybe (return []) CSL.readJsonAbbrevFile cslabbrevs
941+ return $ Just csl { CSL.styleAbbrevs = abbrevs }
927 let sourceDir = if null sources
944 let sourceDir = if null sources
929 else takeDirectory (head sources)
946 else takeDirectory (head sources)
@@ -935,7 +952,8 @@ main = do
935 , readerColumns = columns
952 , readerColumns = columns
936 , readerTabStop = tabStop
953 , readerTabStop = tabStop
937 , readerOldDashes = oldDashes
954 , readerOldDashes = oldDashes
938− , readerCitations = map CSL.refId refs
955+ , readerReferences = refs
956+ , readerCitationStyle = mbsty
939 , readerIndentedCodeClasses = codeBlockClasses
957 , readerIndentedCodeClasses = codeBlockClasses
940 , readerApplyMacros = not laTeXOutput
958 , readerApplyMacros = not laTeXOutput
@@ -1004,26 +1022,6 @@ main = do
1004 then bottomUpM rtfEmbedImage doc0
1022 then bottomUpM rtfEmbedImage doc0
1005 else return doc0
1023 else return doc0
1008− if citeMethod == Citeproc && not (null refs)
1010− csl <- CSL.parseCSL =<<
1012− Nothing -> readDataFile datadir "default.csl"
1014− exists <- doesFileExist cslfile
1016− then UTF8.readFile cslfile
1018− csldir <- getAppUserDataDirectory "csl"
1020− readDataFile datadir (replaceDirectory
1021− (replaceExtension cslfile "csl") csldir)
1022− abbrevs <- maybe (return []) CSL.readJsonAbbrevFile cslabbrevs
1023− let csl' = csl { CSL.styleAbbrevs = abbrevs }
1024− return $ processBiblio csl' refs doc1
1027 let writeBinary :: B.ByteString -> IO ()
1025 let writeBinary :: B.ByteString -> IO ()
1028 writeBinary = B.writeFile (UTF8.encodePath outputFile)
1026 writeBinary = B.writeFile (UTF8.encodePath outputFile)
@@ -1033,15 +1031,15 @@ main = do
1034 case getWriter writerName' of
1032 case getWriter writerName' of
1035 Left e -> err 9 e
1033 Left e -> err 9 e
1036− Right (IOStringWriter f) -> f writerOptions doc2 >>= writerFn outputFile
1034+ Right (IOStringWriter f) -> f writerOptions doc1 >>= writerFn outputFile
1037− Right (IOByteStringWriter f) -> f writerOptions doc2 >>= writeBinary
1035+ Right (IOByteStringWriter f) -> f writerOptions doc1 >>= writeBinary
1038 Right (PureStringWriter f)
1036 Right (PureStringWriter f)
1039 | pdfOutput -> do
1037 | pdfOutput -> do
1040− res <- tex2pdf latexEngine $ f writerOptions doc2
1038+ res <- tex2pdf latexEngine $ f writerOptions doc1
1041 case res of
1039 case res of
1042 Right pdf -> writeBinary pdf
1040 Right pdf -> writeBinary pdf
1043 Left err' -> err 43 $ UTF8.toStringLazy err'
1041 Left err' -> err 43 $ UTF8.toStringLazy err'
1044− | otherwise -> selfcontain (f writerOptions doc2 ++
1042+ | otherwise -> selfcontain (f writerOptions doc1 ++
1045 ['\n' | not standalone'])
1043 ['\n' | not standalone'])
1046 >>= writerFn outputFile . handleEntities
1044 >>= writerFn outputFile . handleEntities
1047 where htmlFormat = writerName' `elem`
1045 where htmlFormat = writerName' `elem`