diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2023-08-23 16:10:00 -0700 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2023-08-23 16:10:00 -0700 |
| commit | 3cb6130d1a6e16f34f98f02ebfdee3f30cdc20c0 (patch) | |
| tree | 3dd2135c13f8f293ac62356a37c36bffa3959cb5 /src | |
| parent | d21a9cd7f80cedb18d97cb92163ae7ec0f3a6237 (diff) | |
JATS writer: fix placement of ref-list...
...when no title is specified for the reference section.
(In this case we place it in `back` with an empty title.)
Closes #9017.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Text/Pandoc/Writers/JATS.hs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/JATS.hs b/src/Text/Pandoc/Writers/JATS.hs index ad18d6cf7..2492a0649 100644 --- a/src/Text/Pandoc/Writers/JATS.hs +++ b/src/Text/Pandoc/Writers/JATS.hs @@ -91,6 +91,15 @@ writeJats tagSet opts d = do runReaderT (evalStateT (docToJATS opts d) initialState) environment +-- see #9017 for motivation +ensureReferenceHeader :: [Block] -> [Block] +ensureReferenceHeader [] = [] +ensureReferenceHeader (h@(Header{}):refs@(Div ("refs",_,_) _) : xs) = + h:refs:xs +ensureReferenceHeader (refs@(Div ("refs",_,_) _) : xs) = + Header 1 nullAttr mempty : refs : xs +ensureReferenceHeader (x:xs) = x :ensureReferenceHeader xs + -- | Convert Pandoc document to string in JATS format. docToJATS :: PandocMonad m => WriterOptions -> Pandoc -> JATS m Text docToJATS opts (Pandoc meta blocks') = do @@ -100,7 +109,8 @@ docToJATS opts (Pandoc meta blocks') = do TopLevelChapter -> 0 TopLevelSection -> 1 TopLevelDefault -> 1 - let blocks = makeSections (writerNumberSections opts) (Just startLvl) blocks' + let blocks = makeSections (writerNumberSections opts) (Just startLvl) + $ ensureReferenceHeader blocks' let splitBackBlocks b@(Div ("refs",_,_) _) (fs, bs) = (fs, b:bs) splitBackBlocks (Div (ident,("section":_),_) [ Header lev (_,hcls,hkvs) hils |
