JATS writer: fix citations with PMID so they validate.
Closes #5481. This includes an update to data/jats.csl.
This commit is contained in:
parent
d73cb5f1a8
commit
9dd2eefded
2 changed files with 12 additions and 10 deletions
|
@ -90,8 +90,7 @@
|
|||
</choose>
|
||||
<choose>
|
||||
<if match="any" variable="PMID">
|
||||
<group prefix="{{jats}}<ext-link ext-link-type="pmid" {{/jats}}" suffix="{{jats}}</ext-link>{{/jats}}">
|
||||
<text variable="PMID" prefix="{{jats}}xlink:href="http://www.ncbi.nlm.nih.gov/pubmed/{{/jats}}" suffix="{{jats}}" xlink:type="simple">{{/jats}}"/>
|
||||
<group prefix="{{jats}}<pub-id pub-id-type="pmid">{{/jats}}" suffix="{{jats}}</pub-id>{{/jats}}">
|
||||
<text variable="PMID"/>
|
||||
</group>
|
||||
</if>
|
||||
|
@ -202,4 +201,3 @@
|
|||
</layout>
|
||||
</bibliography>
|
||||
</style>
|
||||
|
||||
|
|
|
@ -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") "<pub-id pub-id-type=\"doi\">") : xs) =
|
||||
let isRawInline (RawInline{}) = True
|
||||
fixCitations (x:xs) | needsFixing x =
|
||||
x : Str (stringify ys) : fixCitations zs
|
||||
where
|
||||
needsFixing (RawInline (Format "jats") z) =
|
||||
"<pub-id pub-id-type=" `isPrefixOf` z
|
||||
needsFixing _ = False
|
||||
isRawInline (RawInline{}) = True
|
||||
isRawInline _ = False
|
||||
(ys,zs) = break isRawInline xs
|
||||
in x : Str (stringify ys) : fixCitations zs
|
||||
fixCitations (x:xs) = x : fixCitations xs
|
||||
|
||||
-- | Convert an inline element to JATS.
|
||||
|
|
Loading…
Reference in a new issue