diff --git a/data/jats.csl b/data/jats.csl index adb364400..8f3f643d5 100644 --- a/data/jats.csl +++ b/data/jats.csl @@ -64,7 +64,7 @@ - + @@ -90,8 +90,7 @@ - - + @@ -202,4 +201,3 @@ - diff --git a/src/Text/Pandoc/Writers/JATS.hs b/src/Text/Pandoc/Writers/JATS.hs index 6cbe35bdc..e2c4e1e72 100644 --- a/src/Text/Pandoc/Writers/JATS.hs +++ b/src/Text/Pandoc/Writers/JATS.hs @@ -18,7 +18,7 @@ import Prelude import Control.Monad.Reader import Data.Char (toLower) import Data.Generics (everywhere, mkT) -import Data.List (isSuffixOf, partition) +import Data.List (isSuffixOf, partition, isPrefixOf) import Data.Maybe (fromMaybe) import Data.Text (Text) import Text.Pandoc.Class (PandocMonad, report) @@ -322,11 +322,15 @@ inlinesToJATS :: PandocMonad m => WriterOptions -> [Inline] -> JATS m Doc inlinesToJATS opts lst = hcat <$> mapM (inlineToJATS opts) (fixCitations lst) where fixCitations [] = [] - fixCitations (x@(RawInline (Format "jats") "") : xs) = - let isRawInline (RawInline{}) = True - isRawInline _ = False - (ys,zs) = break isRawInline xs - in x : Str (stringify ys) : fixCitations zs + fixCitations (x:xs) | needsFixing x = + x : Str (stringify ys) : fixCitations zs + where + needsFixing (RawInline (Format "jats") z) = + "