Moved special handling of punctuation in suffix out of markdown reader.
This allows different writers to handle punctuation in the suffix differently.
This commit is contained in:
parent
c2d3796439
commit
2e728df756
2 changed files with 8 additions and 9 deletions
|
@ -31,7 +31,7 @@ module Text.Pandoc.Biblio ( processBiblio ) where
|
|||
|
||||
import Data.List
|
||||
import Data.Unique
|
||||
import Data.Char ( isDigit )
|
||||
import Data.Char ( isDigit, isPunctuation )
|
||||
import qualified Data.Map as M
|
||||
import Text.CSL hiding ( Cite(..), Citation(..) )
|
||||
import qualified Text.CSL as CSL ( Cite(..) )
|
||||
|
@ -164,9 +164,13 @@ toCslCite c
|
|||
AuthorInText -> (True, False)
|
||||
SuppressAuthor -> (False,True )
|
||||
NormalCitation -> (False,False)
|
||||
s' = case s of
|
||||
[] -> []
|
||||
(Str (y:_) : _) | isPunctuation y -> s
|
||||
_ -> Str "," : Space : s
|
||||
in emptyCite { CSL.citeId = citationId c
|
||||
, CSL.citePrefix = PandocText $ citationPrefix c
|
||||
, CSL.citeSuffix = PandocText $ s
|
||||
, CSL.citeSuffix = PandocText $ s'
|
||||
, CSL.citeLabel = la
|
||||
, CSL.citeLocator = lo
|
||||
, CSL.citeNoteNumber = show $ citationNoteNum c
|
||||
|
|
|
@ -32,7 +32,7 @@ module Text.Pandoc.Readers.Markdown ( readMarkdown ) where
|
|||
import Data.List ( transpose, isSuffixOf, sortBy, findIndex, intercalate )
|
||||
import qualified Data.Map as M
|
||||
import Data.Ord ( comparing )
|
||||
import Data.Char ( isAlphaNum, isPunctuation )
|
||||
import Data.Char ( isAlphaNum )
|
||||
import Data.Maybe
|
||||
import Text.Pandoc.Definition
|
||||
import Text.Pandoc.Shared
|
||||
|
@ -1291,12 +1291,7 @@ citeKey = try $ do
|
|||
suffix :: GenParser Char ParserState [Inline]
|
||||
suffix = try $ do
|
||||
spnl
|
||||
res <- many $ notFollowedBy (oneOf ";]") >> inline
|
||||
return $ case res of
|
||||
[] -> []
|
||||
(Str (y:_) : _) | isPunctuation y
|
||||
-> res
|
||||
_ -> Str "," : Space : res
|
||||
liftM normalizeSpaces $ many $ notFollowedBy (oneOf ";]") >> inline
|
||||
|
||||
prefix :: GenParser Char ParserState [Inline]
|
||||
prefix = liftM normalizeSpaces $
|
||||
|
|
Loading…
Reference in a new issue