aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2018-04-19 17:03:21 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2018-04-19 17:03:21 +0300
commitcaeb963447440edb14a67bb02cb6c956232dce63 (patch)
tree20c8c373aa3b09912f722255d8f4efc935d89fb5
parentce4326a4f12180844532febf93261f098cd6c5aa (diff)
downloadpandoc-caeb963447440edb14a67bb02cb6c956232dce63.tar.gz
FB2 writer: convert metadata value "abstract" to book annotation
-rw-r--r--src/Text/Pandoc/Writers/FB2.hs5
-rw-r--r--test/Tests/Old.hs1
-rw-r--r--test/fb2/meta.fb23
-rw-r--r--test/fb2/meta.markdown7
4 files changed, 15 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/FB2.hs b/src/Text/Pandoc/Writers/FB2.hs
index f0d2cc3af..e1fa7f474 100644
--- a/src/Text/Pandoc/Writers/FB2.hs
+++ b/src/Text/Pandoc/Writers/FB2.hs
@@ -118,6 +118,9 @@ description meta' = do
bt <- booktitle meta'
let as = authors meta'
dd <- docdate meta'
+ annotation <- case lookupMeta "abstract" meta' of
+ Just (MetaBlocks bs) -> (list . el "annotation") <$> cMapM blockToXml bs
+ _ -> pure mempty
let lang = case lookupMeta "lang" meta' of
Just (MetaInlines [Str s]) -> [el "lang" $ iso639 s]
Just (MetaString s) -> [el "lang" $ iso639 s]
@@ -132,7 +135,7 @@ description meta' = do
Just (MetaString s) -> coverimage s
_ -> return []
return $ el "description"
- [ el "title-info" (genre : (bt ++ as ++ dd ++ lang))
+ [ el "title-info" (genre : (bt ++ annotation ++ as ++ dd ++ lang))
, el "document-info" (el "program-used" "pandoc" : coverpage)
]
diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs
index f2b43640b..cfca576da 100644
--- a/test/Tests/Old.hs
+++ b/test/Tests/Old.hs
@@ -95,6 +95,7 @@ tests = [ testGroup "markdown"
, fb2WriterTest "images" [] "fb2/images.markdown" "fb2/images.fb2"
, fb2WriterTest "images-embedded" [] "fb2/images-embedded.html" "fb2/images-embedded.fb2"
, fb2WriterTest "math" [] "fb2/math.markdown" "fb2/math.fb2"
+ , fb2WriterTest "meta" [] "fb2/meta.markdown" "fb2/meta.fb2"
, fb2WriterTest "tables" [] "tables.native" "tables.fb2"
, fb2WriterTest "testsuite" [] "testsuite.native" "writer.fb2"
]
diff --git a/test/fb2/meta.fb2 b/test/fb2/meta.fb2
new file mode 100644
index 000000000..04bd5f3c5
--- /dev/null
+++ b/test/fb2/meta.fb2
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+
diff --git a/test/fb2/meta.markdown b/test/fb2/meta.markdown
new file mode 100644
index 000000000..5edad2981
--- /dev/null
+++ b/test/fb2/meta.markdown
@@ -0,0 +1,7 @@
+---
+title: Book title
+abstract: |
+ This is the abstract.
+
+ It consists of two paragraphs.
+---