aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/RST.hs7
-rw-r--r--test/command/6699.md13
2 files changed, 19 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs
index 50947c1be..eeb3d1389 100644
--- a/src/Text/Pandoc/Readers/RST.hs
+++ b/src/Text/Pandoc/Readers/RST.hs
@@ -758,7 +758,12 @@ directive' = do
children <- case body of
"" -> block
_ -> parseFromString' parseBlocks body'
- return $ B.divWith attrs children
+ return $
+ case B.toList children of
+ [Header lev attrs' ils]
+ | T.null body -> -- # see #6699
+ B.headerWith (attrs' <> attrs) lev (B.fromList ils)
+ _ -> B.divWith attrs children
other -> do
pos <- getPosition
logMessage $ SkippedContent (".. " <> other) pos
diff --git a/test/command/6699.md b/test/command/6699.md
new file mode 100644
index 000000000..347e04577
--- /dev/null
+++ b/test/command/6699.md
@@ -0,0 +1,13 @@
+```
+% pandoc -f rst -t native
+.. class:: allowframebreaks
+
+title
+-----
+
+text
+^D
+[Header 1 ("title",["allowframebreaks"],[]) [Str "title"]
+,Para [Str "text"]]
+```
+