git.iko.soy/typeable/pandoc
on master help sign in
More flexible handling of --csl.

Look for csl files in ~/.csl if not found locally. Add .csl extension if it is not provided.

commit0955a0e32978d60d8f0b42a027ae1d5ebb518676 authorJohn MacFarlane <jgm@berkeley.edu> dateTue 23 Nov 2010, 21:40 (16 years ago) parent1b1287e
1 file changed+10−2
src/pandoc.hs+10−2
src/pandoc.hs+10−2
@@ -42,7 +42,7 @@ import System.FilePath
4242import System.Console.GetOpt
4343import Data.Char ( toLower, isDigit )
4444import Data.List ( intercalate, isSuffixOf )
45−import System.Directory ( getAppUserDataDirectory )
45+import System.Directory ( getAppUserDataDirectory, doesFileExist )
4646import System.IO ( stdout, stderr )
4747import qualified Text.Pandoc.UTF8 as UTF8
4848import Text.CSL
@@ -832,9 +832,17 @@ main = do
832832 if null refs
833833 then return doc'
834834 else do
835+ csldir <- getAppUserDataDirectory "csl"
835836 cslfile' <- if null cslfile
836837 then findDataFile datadir "default.csl"
837− else return cslfile
838+ else do
839+ ex <- doesFileExist cslfile
840+ if ex
841+ then return cslfile
842+ else findDataFile datadir $
843+ replaceDirectory
844+ (replaceExtension cslfile "csl")
845+ csldir
838846 processBiblio cslfile' refs doc'
839847
840848 writerOutput <- writer writerOptions doc''