git.iko.soy/typeable/pandoc
on master help sign in
Moved special handling of punctuation in suffix out of markdown reader.
2e728dfNathan Gass
src/Text/Pandoc/Biblio.hs+6−2
@@ -31,7 +31,7 @@ module Text.Pandoc.Biblio ( processBiblio ) where
31
31
32import Data.List
32import Data.List
33import Data.Unique
33import Data.Unique
34−import Data.Char ( isDigit )
34+import Data.Char ( isDigit, isPunctuation )
35import qualified Data.Map as M
35import qualified Data.Map as M
36import Text.CSL hiding ( Cite(..), Citation(..) )
36import Text.CSL hiding ( Cite(..), Citation(..) )
37import qualified Text.CSL as CSL ( Cite(..) )
37import qualified Text.CSL as CSL ( Cite(..) )
@@ -164,9 +164,13 @@ toCslCite c
164 AuthorInText -> (True, False)
164 AuthorInText -> (True, False)
165 SuppressAuthor -> (False,True )
165 SuppressAuthor -> (False,True )
166 NormalCitation -> (False,False)
166 NormalCitation -> (False,False)
167+ s' = case s of
168+ [] -> []
169+ (Str (y:_) : _) | isPunctuation y -> s
170+ _ -> Str "," : Space : s
167 in emptyCite { CSL.citeId = citationId c
171 in emptyCite { CSL.citeId = citationId c
168 , CSL.citePrefix = PandocText $ citationPrefix c
172 , CSL.citePrefix = PandocText $ citationPrefix c
169− , CSL.citeSuffix = PandocText $ s
173+ , CSL.citeSuffix = PandocText $ s'
170 , CSL.citeLabel = la
174 , CSL.citeLabel = la
171 , CSL.citeLocator = lo
175 , CSL.citeLocator = lo
172 , CSL.citeNoteNumber = show $ citationNoteNum c
176 , CSL.citeNoteNumber = show $ citationNoteNum c
src/Text/Pandoc/Readers/Markdown.hs+2−7
@@ -32,7 +32,7 @@ module Text.Pandoc.Readers.Markdown ( readMarkdown ) where
32import Data.List ( transpose, isSuffixOf, sortBy, findIndex, intercalate )
32import Data.List ( transpose, isSuffixOf, sortBy, findIndex, intercalate )
33import qualified Data.Map as M
33import qualified Data.Map as M
34import Data.Ord ( comparing )
34import Data.Ord ( comparing )
35−import Data.Char ( isAlphaNum, isPunctuation )
35+import Data.Char ( isAlphaNum )
36import Data.Maybe
36import Data.Maybe
37import Text.Pandoc.Definition
37import Text.Pandoc.Definition
38import Text.Pandoc.Shared
38import Text.Pandoc.Shared
@@ -1291,12 +1291,7 @@ citeKey = try $ do
1291suffix :: GenParser Char ParserState [Inline]
1291suffix :: GenParser Char ParserState [Inline]
1292suffix = try $ do
1292suffix = try $ do
1293 spnl
1293 spnl
1294− res <- many $ notFollowedBy (oneOf ";]") >> inline
1294+ liftM normalizeSpaces $ many $ notFollowedBy (oneOf ";]") >> inline
1295− return $ case res of
1296− [] -> []
1297− (Str (y:_) : _) | isPunctuation y
1298− -> res
1299− _ -> Str "," : Space : res
1300
1295
1301prefix :: GenParser Char ParserState [Inline]
1296prefix :: GenParser Char ParserState [Inline]
1302prefix = liftM normalizeSpaces $
1297prefix = liftM normalizeSpaces $