@@ -455,13 +455,16 @@ elementToHtml mbparentlevel slideLevel opts
455 let inDiv xs = Blk (RawBlock (Format "html") ("<div class=\""
455 let inDiv xs = Blk (RawBlock (Format "html") ("<div class=\""
456 ++ fragmentClass ++ "\">")) :
456 ++ fragmentClass ++ "\">")) :
457 (xs ++ [Blk (RawBlock (Format "html") "</div>")])
457 (xs ++ [Blk (RawBlock (Format "html") "</div>")])
458− innerContents <- mapM (elementToHtml (Just level) slideLevel opts)
458+ let (titleBlocks, innerSecs) =
459− $ if titleSlide
459+ if titleSlide
460 -- title slides have no content of their own
460 -- title slides have no content of their own
461+ then ([x | Blk x <- elements],
461− then filter isSec elements
462+ filter isSec elements)
462 else case splitBy isPause elements of
463 else case splitBy isPause elements of
463− [] -> []
464+ [] -> ([],[])
464− (x:xs) -> x ++ concatMap inDiv xs
465+ (x:xs) -> ([],x ++ concatMap inDiv xs)
466+ titleContents <- blockListToHtml opts titleBlocks
467+ innerContents <- mapM (elementToHtml (Just level) slideLevel opts) innerSecs
465 let inNl x = mconcat $ nl opts : intersperse (nl opts) x ++ [nl opts]
468 let inNl x = mconcat $ nl opts : intersperse (nl opts) x ++ [nl opts]
466 let classes' = ["title-slide" | titleSlide] ++ ["slide" | slide] ++
469 let classes' = ["title-slide" | titleSlide] ++ ["slide" | slide] ++
467 ["section" | (slide || writerSectionDivs opts) &&
470 ["section" | (slide || writerSectionDivs opts) &&
@@ -474,8 +477,7 @@ elementToHtml mbparentlevel slideLevel opts
474 let attr = (id',classes',keyvals)
477 let attr = (id',classes',keyvals)
475 if titleSlide
478 if titleSlide
477− t <- addAttrs opts attr $
480+ t <- addAttrs opts attr $ secttag $ header' <> titleContents
480 (if slideVariant == RevealJsSlides && not (null innerContents)
482 (if slideVariant == RevealJsSlides && not (null innerContents)
481 -- revealjs doesn't like more than one level of section nesting:
483 -- revealjs doesn't like more than one level of section nesting: