@@ -31,7 +31,7 @@ module Text.Pandoc.Biblio ( processBiblio ) where
3131
3232import Data.List
3333import Data.Unique
34−import Data.Char ( isDigit )
34+import Data.Char ( isDigit, isPunctuation )
3535import qualified Data.Map as M
3636import Text.CSL hiding ( Cite(..), Citation(..) )
3737import qualified Text.CSL as CSL ( Cite(..) )
@@ -164,9 +164,13 @@ toCslCite c
164164 AuthorInText -> (True, False)
165165 SuppressAuthor -> (False,True )
166166 NormalCitation -> (False,False)
167+ s' = case s of
168+ [] -> []
169+ (Str (y:_) : _) | isPunctuation y -> s
170+ _ -> Str "," : Space : s
167171 in emptyCite { CSL.citeId = citationId c
168172 , CSL.citePrefix = PandocText $ citationPrefix c
169− , CSL.citeSuffix = PandocText $ s
173+ , CSL.citeSuffix = PandocText $ s'
170174 , CSL.citeLabel = la
171175 , CSL.citeLocator = lo
172176 , CSL.citeNoteNumber = show $ citationNoteNum c