git.iko.soy/typeable/pandoc
on master help sign in
Don't generate empty H1 after hrule slide breaks.
527be1dJohn MacFarlane
src/Text/Pandoc/Slides.hs+3−2
@@ -49,9 +49,10 @@ prepSlides :: Int -> [Block] -> [Block]
49prepSlides slideLevel = ensureStartWithH . splitHrule
49prepSlides slideLevel = ensureStartWithH . splitHrule
50 where splitHrule (HorizontalRule : Header n xs : ys)
50 where splitHrule (HorizontalRule : Header n xs : ys)
51 | n == slideLevel = Header slideLevel xs : splitHrule ys
51 | n == slideLevel = Header slideLevel xs : splitHrule ys
52− splitHrule (HorizontalRule : xs) = Header slideLevel [] : splitHrule xs
52+ splitHrule (HorizontalRule : xs) = Header slideLevel [Str "\0"] :
53+ splitHrule xs
53 splitHrule (x : xs) = x : splitHrule xs
54 splitHrule (x : xs) = x : splitHrule xs
54 splitHrule [] = []
55 splitHrule [] = []
55 ensureStartWithH bs@(Header n _:_)
56 ensureStartWithH bs@(Header n _:_)
56 | n <= slideLevel = bs
57 | n <= slideLevel = bs
57− ensureStartWithH bs = Header slideLevel [] : bs
58+ ensureStartWithH bs = Header slideLevel [Str "\0"] : bs
src/Text/Pandoc/Writers/HTML.hs+3−1
@@ -262,7 +262,9 @@ elementToHtml slideLevel opts (Sec level num id' title' elements) = do
262 -- always use level 1 for slide titles
262 -- always use level 1 for slide titles
263 let level' = if slide then 1 else level
263 let level' = if slide then 1 else level
264 let titleSlide = slide && level < slideLevel
264 let titleSlide = slide && level < slideLevel
265+ header' <- if title' == [Str "\0"] -- marker for hrule
266+ then return mempty
265− header' <- blockToHtml opts (Header level' title')
267+ else blockToHtml opts (Header level' title')
266 let isSec (Sec _ _ _ _ _) = True
268 let isSec (Sec _ _ _ _ _) = True
267 isSec (Blk _) = False
269 isSec (Blk _) = False
268 innerContents <- mapM (elementToHtml slideLevel opts)
270 innerContents <- mapM (elementToHtml slideLevel opts)
src/Text/Pandoc/Writers/LaTeX.hs+5−2
@@ -243,8 +243,11 @@ elementToBeamer slideLevel (Sec lvl _num _ident tit elts)
243 let fragile = if not $ null $ queryWith hasCodeBlock elts ++ queryWith hasCode elts
243 let fragile = if not $ null $ queryWith hasCodeBlock elts ++ queryWith hasCode elts
244 then "[fragile]"
244 then "[fragile]"
245 else ""
245 else ""
246− let slideStart = Para $ RawInline "latex" ("\\begin{frame}" ++ fragile ++
246+ let slideStart = Para $ RawInline "latex" ("\\begin{frame}" ++ fragile) :
247+ if tit == [Str "\0"] -- marker for hrule
248+ then []
249+ else (RawInline "latex" "\\frametitle{") : tit ++
247− "\\frametitle{") : tit ++ [RawInline "latex" "}"]
250+ [RawInline "latex" "}"]
248 let slideEnd = RawBlock "latex" "\\end{frame}"
251 let slideEnd = RawBlock "latex" "\\end{frame}"
249 -- now carve up slide into blocks if there are sections inside
252 -- now carve up slide into blocks if there are sections inside
250 bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts
253 bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts