@@ -18,7 +18,7 @@ import Prelude
1818import Control.Monad.Reader
1919import Data.Char (toLower)
2020import Data.Generics (everywhere, mkT)
21−import Data.List (isSuffixOf, partition)
21+import Data.List (isSuffixOf, partition, isPrefixOf)
2222import Data.Maybe (fromMaybe)
2323import Data.Text (Text)
2424import Text.Pandoc.Class (PandocMonad, report)
@@ -322,11 +322,15 @@ inlinesToJATS :: PandocMonad m => WriterOptions -> [Inline] -> JATS m Doc
322322inlinesToJATS opts lst = hcat <$> mapM (inlineToJATS opts) (fixCitations lst)
323323 where
324324 fixCitations [] = []
325− fixCitations (x@(RawInline (Format "jats") "<pub-id pub-id-type=\"doi\">") : xs) =
326− let isRawInline (RawInline{}) = True
327− isRawInline _ = False
328− (ys,zs) = break isRawInline xs
329− in x : Str (stringify ys) : fixCitations zs
325+ fixCitations (x:xs) | needsFixing x =
326+ x : Str (stringify ys) : fixCitations zs
327+ where
328+ needsFixing (RawInline (Format "jats") z) =
329+ "<pub-id pub-id-type=" `isPrefixOf` z
330+ needsFixing _ = False
331+ isRawInline (RawInline{}) = True
332+ isRawInline _ = False
333+ (ys,zs) = break isRawInline xs
330334 fixCitations (x:xs) = x : fixCitations xs
331335
332336-- | Convert an inline element to JATS.