Made . . . for pause work in all slide show formats except slideous.

This commit is contained in:
John MacFarlane 2013-09-08 15:47:50 -07:00
parent 1911b619ee
commit 81e2df32c9
3 changed files with 18 additions and 14 deletions

5
README
View file

@ -2680,9 +2680,8 @@ a single document.
Inserting pauses
----------------
In reveal.js and beamer slide shows, you can add "pauses" within
a slide by including a paragraph containing three dots, separated
by spaces:
You can add "pauses" within a slide by including a paragraph containing
three dots, separated by spaces:
# Slide with a pause

View file

@ -413,7 +413,7 @@
as markdown citations, it is redundant to have a bibliography,
since one will be generated automatically.)
* Added syntax for "pauses" in beamer or reaveljs slide shows.
* Added syntax for "pauses" in slide shows:
This gives
@ -421,9 +421,6 @@
a pause.
[note - no longer seems to work in recente revealjs - perhaps
this should be reverted]
* Use new flexible metadata type.
+ Depend on `pandoc-types` 1.12. This changes the type of

View file

@ -268,10 +268,23 @@ elementToHtml slideLevel opts (Sec level num (id',classes,keyvals) title' elemen
else blockToHtml opts (Header level' (id',classes,keyvals) title')
let isSec (Sec _ _ _ _ _) = True
isSec (Blk _) = False
let isPause (Blk x) = x == Para [Str ".",Space,Str ".",Space,Str "."]
isPause _ = False
let fragmentClass = case writerSlideVariant opts of
RevealJsSlides -> "fragment"
_ -> "incremental"
let inDiv xs = Blk (RawBlock (Format "html") ("<div class=\""
++ fragmentClass ++ "\">")) :
(xs ++ [Blk (RawBlock (Format "html") "</div>")])
innerContents <- mapM (elementToHtml slideLevel opts)
$ if titleSlide
-- title slides have no content of their own
then filter isSec elements
else if slide
then case splitBy isPause elements of
[] -> []
[x] -> x
xs -> concatMap inDiv xs
else elements
let inNl x = mconcat $ nl opts : intersperse (nl opts) x ++ [nl opts]
let classes' = ["titleslide" | titleSlide] ++ ["slide" | slide] ++
@ -401,10 +414,6 @@ blockToHtml opts (Para [Image txt (s,'f':'i':'g':':':tit)]) = do
[nl opts, img, capt, nl opts]
else H.div ! A.class_ "figure" $ mconcat
[nl opts, img, capt, nl opts]
-- . . . indicates a pause in a slideshow
blockToHtml opts (Para [Str ".",Space,Str ".",Space,Str "."])
| writerSlideVariant opts == RevealJsSlides =
blockToHtml opts (RawBlock "html" "<div class=\"fragment\" />")
blockToHtml opts (Para lst) = do
contents <- inlineListToHtml opts lst
return $ H.p contents
@ -580,8 +589,7 @@ toListItem opts item = nl opts >> H.li item
blockListToHtml :: WriterOptions -> [Block] -> State WriterState Html
blockListToHtml opts lst =
mapM (blockToHtml opts) lst >>=
return . mconcat . intersperse (nl opts)
fmap (mconcat . intersperse (nl opts)) $ mapM (blockToHtml opts) lst
-- | Convert list of Pandoc inline elements to HTML.
inlineListToHtml :: WriterOptions -> [Inline] -> State WriterState Html