aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2020-01-05 09:35:40 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2020-01-05 09:42:35 -0800
commit0dff9b3cd2cd222e5eeebd880f38b38ad5ee58f0 (patch)
tree9ad8eb3ce5e2cfeace4902b96324002b60dbc2ef
parentb96febddef9d48318c3532ce1f484d0ee7367946 (diff)
downloadpandoc-0dff9b3cd2cd222e5eeebd880f38b38ad5ee58f0.tar.gz
Fix revealjs slide structure regression with certain slide levels.
Partially addresses #6030.
-rw-r--r--src/Text/Pandoc/Writers/HTML.hs14
-rw-r--r--test/command/6030.md35
2 files changed, 43 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index 6b9856b10..095d55c0e 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -676,13 +676,15 @@ blockToHtml opts (Div (ident, "section":dclasses, dkvs)
let attr = (ident, classes', dkvs)
if titleSlide
then do
- t <- addAttrs opts attr $ secttag $ header' <> titleContents
+ t <- addAttrs opts attr $
+ secttag $ nl opts <> header' <> nl opts <> titleContents <> nl opts
return $
- (if slideVariant == RevealJsSlides && not (null innerSecs)
- -- revealjs doesn't like more than one level of section nesting:
- {- REMOVED && isNothing mbparentlevel -}
- then H5.section
- else id) $ nl opts <> t <> nl opts <>
+ -- ensure 2D nesting for revealjs, but only for one level;
+ -- revealjs doesn't like more than one level of nseting
+ (if slideVariant == RevealJsSlides && not (null innerSecs) &&
+ level == slideLevel - 1
+ then \z -> H5.section (nl opts <> z)
+ else id) $ t <> nl opts <>
if null innerSecs
then mempty
else innerContents <> nl opts
diff --git a/test/command/6030.md b/test/command/6030.md
new file mode 100644
index 000000000..943150432
--- /dev/null
+++ b/test/command/6030.md
@@ -0,0 +1,35 @@
+```
+% pandoc -t revealjs --slide-level=3
+# One
+
+One
+
+## Two
+
+Two
+
+### Three
+
+Three
+
+#### Four
+
+Four
+^D
+<section id="one" class="title-slide slide level1">
+<h1>One</h1>
+<p>One</p>
+</section>
+<section>
+<section id="two" class="title-slide slide level2">
+<h2>Two</h2>
+<p>Two</p>
+</section>
+<section id="three" class="slide level3">
+<h3>Three</h3>
+<p>Three</p>
+<h4 id="four">Four</h4>
+<p>Four</p>
+</section>
+</section>
+```