summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2013-09-08 15:47:50 -0700
committerJohn MacFarlane <fiddlosopher@gmail.com>2013-09-08 15:47:50 -0700
commit81e2df32c92ee95771f2613b9ad30aeaf11423e5 (patch)
tree513ad8bf9898aead60e2df5e6f1cc473007d7d99
parent1911b619ee4ce0307f5a78daafc647eb4abe6bd6 (diff)
Made . . . for pause work in all slide show formats except slideous.
-rw-r--r--README5
-rw-r--r--changelog5
-rw-r--r--src/Text/Pandoc/Writers/HTML.hs22
3 files changed, 18 insertions, 14 deletions
diff --git a/README b/README
index 7d926216b..56ad50b3c 100644
--- a/README
+++ b/README
@@ -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
diff --git a/changelog b/changelog
index b7091460f..b3e9d8b0b 100644
--- a/changelog
+++ b/changelog
@@ -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
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index 63b466af3..78a3edce8 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -268,11 +268,24 @@ 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 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] ++
["section" | (slide || writerSectionDivs opts) &&
@@ -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