aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Writers/Docbook.hs2
-rw-r--r--test/Tests/Writers/Docbook.hs14
2 files changed, 16 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Writers/Docbook.hs b/src/Text/Pandoc/Writers/Docbook.hs
index 398920839..affa0de04 100644
--- a/src/Text/Pandoc/Writers/Docbook.hs
+++ b/src/Text/Pandoc/Writers/Docbook.hs
@@ -201,6 +201,8 @@ blockToDocbook opts (Div (ident,classes,_) bs) = do
(l:_) | l `elem` admonitions -> do
let (mTitleBs, bodyBs) =
case bs of
+ -- Matches AST produced by the DocBook reader → Markdown writer → Markdown reader chain.
+ (Div (_,["title"],_) [Para ts] : rest) -> (Just (inlinesToDocbook opts ts), rest)
-- Matches AST produced by the Docbook reader.
(Div (_,["title"],_) ts : rest) -> (Just (blocksToDocbook opts ts), rest)
_ -> (Nothing, bs)
diff --git a/test/Tests/Writers/Docbook.hs b/test/Tests/Writers/Docbook.hs
index 1d53dcfe7..621c1280b 100644
--- a/test/Tests/Writers/Docbook.hs
+++ b/test/Tests/Writers/Docbook.hs
@@ -93,6 +93,20 @@ tests = [ testGroup "line blocks"
, " </para>"
, "</attention>"
]
+ , "admonition-with-title-in-para" =:
+ divWith ("foo", ["attention"], []) (
+ divWith ("foo", ["title"], [])
+ (para "This is title") <>
+ para "This is a test"
+ )
+ =?> unlines
+ [ "<attention id=\"foo\">"
+ , " <title>This is title</title>"
+ , " <para>"
+ , " This is a test"
+ , " </para>"
+ , "</attention>"
+ ]
, "single-child" =:
divWith ("foo", [], []) (para "This is a test")
=?> unlines