@@ -52,7 +52,6 @@ import qualified Control.Exception as E
5252import Control.Exception.Extensible ( throwIO )
5353import qualified Text.Pandoc.UTF8 as UTF8
5454import qualified Text.CSL as CSL
55−import Text.Pandoc.Biblio
5655import Control.Monad (when, unless, liftM)
5756import Network.HTTP (simpleHTTP, mkRequest, getResponseBody, RequestMethod(..))
5857import Network.URI (parseURI, isURI, URI(..))
@@ -924,6 +923,24 @@ main = do
924923 reffiles >>=
925924 return . map unescapeRefId . concat
926925
926+ mbsty <- if citeMethod == Citeproc && not (null refs)
927+ then do
928+ csl <- CSL.parseCSL =<<
929+ case mbCsl of
930+ Nothing -> readDataFile datadir "default.csl"
931+ Just cslfile -> do
932+ exists <- doesFileExist cslfile
933+ if exists
934+ then UTF8.readFile cslfile
935+ else do
936+ csldir <- getAppUserDataDirectory "csl"
937+ print csldir
938+ readDataFile datadir (replaceDirectory
939+ (replaceExtension cslfile "csl") csldir)
940+ abbrevs <- maybe (return []) CSL.readJsonAbbrevFile cslabbrevs
941+ return $ Just csl { CSL.styleAbbrevs = abbrevs }
942+ else return Nothing
943+
927944 let sourceDir = if null sources
928945 then "."
929946 else takeDirectory (head sources)
@@ -935,7 +952,8 @@ main = do
935952 , readerColumns = columns
936953 , readerTabStop = tabStop
937954 , readerOldDashes = oldDashes
938− , readerCitations = map CSL.refId refs
955+ , readerReferences = refs
956+ , readerCitationStyle = mbsty
939957 , readerIndentedCodeClasses = codeBlockClasses
940958 , readerApplyMacros = not laTeXOutput
941959 }
@@ -1004,26 +1022,6 @@ main = do
10041022 then bottomUpM rtfEmbedImage doc0
10051023 else return doc0
10061024
1007− doc2 <- do
1008− if citeMethod == Citeproc && not (null refs)
1009− then do
1010− csl <- CSL.parseCSL =<<
1011− case mbCsl of
1012− Nothing -> readDataFile datadir "default.csl"
1013− Just cslfile -> do
1014− exists <- doesFileExist cslfile
1015− if exists
1016− then UTF8.readFile cslfile
1017− else do
1018− csldir <- getAppUserDataDirectory "csl"
1019− print csldir
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
1025− else return doc1
1026−
10271025 let writeBinary :: B.ByteString -> IO ()
10281026 writeBinary = B.writeFile (UTF8.encodePath outputFile)
10291027
@@ -1033,15 +1031,15 @@ main = do
10331031
10341032 case getWriter writerName' of
10351033 Left e -> err 9 e
1036− Right (IOStringWriter f) -> f writerOptions doc2 >>= writerFn outputFile
1037− Right (IOByteStringWriter f) -> f writerOptions doc2 >>= writeBinary
1034+ Right (IOStringWriter f) -> f writerOptions doc1 >>= writerFn outputFile
1035+ Right (IOByteStringWriter f) -> f writerOptions doc1 >>= writeBinary
10381036 Right (PureStringWriter f)
10391037 | pdfOutput -> do
1040− res <- tex2pdf latexEngine $ f writerOptions doc2
1038+ res <- tex2pdf latexEngine $ f writerOptions doc1
10411039 case res of
10421040 Right pdf -> writeBinary pdf
10431041 Left err' -> err 43 $ UTF8.toStringLazy err'
1044− | otherwise -> selfcontain (f writerOptions doc2 ++
1042+ | otherwise -> selfcontain (f writerOptions doc1 ++
10451043 ['\n' | not standalone'])
10461044 >>= writerFn outputFile . handleEntities
10471045 where htmlFormat = writerName' `elem`