git.iko.soy/typeable/pandoc
on master help sign in
Moved special handling of punctuation in suffix out of markdown reader.

This allows different writers to handle punctuation in the suffix differently.

commit2e728df7569853fdd3b496c70654b0a8eae7f1ec authorNathan Gass <gass@search.ch> dateMon 13 Dec 2010, 21:33 (16 years ago) parentc2d3796
2 files changed+8−9
src/Text/Pandoc/Biblio.hs+6−2 src/Text/Pandoc/Readers/Markdown.hs+2−7
src/Text/Pandoc/Biblio.hs+6−2
@@ -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
src/Text/Pandoc/Readers/Markdown.hs+2−7
@@ -32,7 +32,7 @@ module Text.Pandoc.Readers.Markdown ( readMarkdown ) where
3232import Data.List ( transpose, isSuffixOf, sortBy, findIndex, intercalate )
3333import qualified Data.Map as M
3434import Data.Ord ( comparing )
35−import Data.Char ( isAlphaNum, isPunctuation )
35+import Data.Char ( isAlphaNum )
3636import Data.Maybe
3737import Text.Pandoc.Definition
3838import Text.Pandoc.Shared
@@ -1291,12 +1291,7 @@ citeKey = try $ do
12911291suffix :: GenParser Char ParserState [Inline]
12921292suffix = try $ do
12931293 spnl
1294− res <- many $ notFollowedBy (oneOf ";]") >> inline
1295− return $ case res of
1296− [] -> []
1297− (Str (y:_) : _) | isPunctuation y
1298− -> res
1299− _ -> Str "," : Space : res
1294+ liftM normalizeSpaces $ many $ notFollowedBy (oneOf ";]") >> inline
13001295
13011296prefix :: GenParser Char ParserState [Inline]
13021297prefix = liftM normalizeSpaces $