git.iko.soy/typeable/pandoc
on master help sign in
FB2 writer: convert Plain to Para in annotation

Address #2424

commitb6305a63cd2307b7d80de76bef150cba3d328763 authorAlexander Krotov <ilabdsf@gmail.com> dateTue 12 Jun 2018, 15:32 (8 years ago) parent54d1654
2 files changed+7−2
src/Text/Pandoc/Writers/FB2.hs+6−1 test/fb2/meta.fb2+1−1
src/Text/Pandoc/Writers/FB2.hs+6−1
@@ -119,7 +119,7 @@ description meta' = do
119119 let as = authors meta'
120120 dd <- docdate meta'
121121 annotation <- case lookupMeta "abstract" meta' of
122− Just (MetaBlocks bs) -> (list . el "annotation") <$> cMapM blockToXml bs
122+ Just (MetaBlocks bs) -> (list . el "annotation") <$> (cMapM blockToXml $ map unPlain bs)
123123 _ -> pure mempty
124124 let lang = case lookupMeta "lang" meta' of
125125 Just (MetaInlines [Str s]) -> [el "lang" $ iso639 s]
@@ -398,6 +398,11 @@ plainToPara (Para inlines : rest) =
398398 Para inlines : HorizontalRule : plainToPara rest -- HorizontalRule will be converted to <empty-line />
399399plainToPara (p:rest) = p : plainToPara rest
400400
401+-- Replace plain text with paragraphs
402+unPlain :: Block -> Block
403+unPlain (Plain inlines) = Para inlines
404+unPlain x = x
405+
401406-- Simulate increased indentation level. Will not really work
402407-- for multi-line paragraphs.
403408indentPrefix :: String -> Block -> Block
test/fb2/meta.fb2+1−1
@@ -1,3 +1,3 @@
11<?xml version="1.0" encoding="UTF-8"?>
2−<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"><description><title-info><genre>unrecognised</genre><book-title>Book title</book-title><annotation><p>This is the abstract.</p>It consists of two paragraphs.</annotation></title-info><document-info><program-used>pandoc</program-used></document-info></description><body><title><p>Book title</p></title></body></FictionBook>
2+<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"><description><title-info><genre>unrecognised</genre><book-title>Book title</book-title><annotation><p>This is the abstract.</p><p>It consists of two paragraphs.</p></annotation></title-info><document-info><program-used>pandoc</program-used></document-info></description><body><title><p>Book title</p></title></body></FictionBook>
33