From 6b53a905c4f4578d275cf7567038d4b870b94848 Mon Sep 17 00:00:00 2001 From: "Jamie F. Olson" Date: Wed, 20 Mar 2013 16:59:47 -0400 Subject: Added basic support for reveal.js. Support unordered and ordered lists with "fragment" elements. Modified by JGM to remove the --reveal_js-url command-line option. Instead use -V reveal_js-url=... as with slidy and the other slide formats. Also cleaned up the list code in the HTML writer. --- src/Text/Pandoc.hs | 3 +++ src/Text/Pandoc/Options.hs | 1 + src/Text/Pandoc/Slides.hs | 2 +- src/Text/Pandoc/Writers/HTML.hs | 30 +++++++++++++++--------------- 4 files changed, 20 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs index ca923d091..7e9932c1b 100644 --- a/src/Text/Pandoc.hs +++ b/src/Text/Pandoc.hs @@ -231,6 +231,9 @@ writers = [ ,("dzslides" , PureStringWriter $ \o -> writeHtmlString o{ writerSlideVariant = DZSlides , writerHtml5 = True }) + ,("reveal_js" , PureStringWriter $ \o -> + writeHtmlString o{ writerSlideVariant = RevealJsSlides + , writerHtml5 = True }) ,("docbook" , PureStringWriter writeDocbook) ,("opml" , PureStringWriter writeOPML) ,("opendocument" , PureStringWriter writeOpenDocument) diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs index 39fa2a1b2..6549c506b 100644 --- a/src/Text/Pandoc/Options.hs +++ b/src/Text/Pandoc/Options.hs @@ -255,6 +255,7 @@ data HTMLSlideVariant = S5Slides | SlidySlides | SlideousSlides | DZSlides + | RevealJsSlides | NoSlides deriving (Show, Read, Eq) diff --git a/src/Text/Pandoc/Slides.hs b/src/Text/Pandoc/Slides.hs index b69057b7a..09d356a4a 100644 --- a/src/Text/Pandoc/Slides.hs +++ b/src/Text/Pandoc/Slides.hs @@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Portability : portable Utility functions for splitting documents into slides for slide -show formats (dzslides, s5, slidy, slideous, beamer). +show formats (dzslides, reveal_js, s5, slidy, slideous, beamer). -} module Text.Pandoc.Slides ( getSlideLevel, prepSlides ) where import Text.Pandoc.Definition diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs index 1ea4442f9..fa64a8212 100644 --- a/src/Text/Pandoc/Writers/HTML.hs +++ b/src/Text/Pandoc/Writers/HTML.hs @@ -224,13 +224,20 @@ prefixedId opts s = "" -> mempty _ -> A.id $ toValue $ writerIdentifierPrefix opts ++ s --- | Replacement for Text.XHtml's unordList. -unordList :: WriterOptions -> ([Html] -> Html) -unordList opts items = H.ul $ mconcat $ toListItems opts items +toList :: (Html -> Html) -> WriterOptions -> ([Html] -> Html) +toList listop opts items = do + let items' = toListItems opts items + if (writerIncremental opts) + then if (writerSlideVariant opts /= RevealJsSlides) + then (listop $ mconcat items') ! A.class_ "incremental" + else listop $ mconcat $ map (! A.class_ "fragment") items' + else listop $ mconcat items' --- | Replacement for Text.XHtml's ordList. -ordList :: WriterOptions -> ([Html] -> Html) -ordList opts items = H.ol $ mconcat $ toListItems opts items +unordList :: WriterOptions -> [Html] -> Html +unordList = toList H.ul + +ordList :: WriterOptions -> [Html] -> Html +ordList = toList H.ol -- | Construct table of contents from list of elements. tableOfContents :: WriterOptions -> [Element] -> State WriterState (Maybe Html) @@ -476,18 +483,11 @@ blockToHtml opts (Header level (ident,_,_) lst) = do _ -> H.p contents'' blockToHtml opts (BulletList lst) = do contents <- mapM (blockListToHtml opts) lst - let lst' = unordList opts contents - let lst'' = if writerIncremental opts - then lst' ! A.class_ "incremental" - else lst' - return lst'' + return $ unordList opts contents blockToHtml opts (OrderedList (startnum, numstyle, _) lst) = do contents <- mapM (blockListToHtml opts) lst let numstyle' = camelCaseToHyphenated $ show numstyle - let attribs = (if writerIncremental opts - then [A.class_ "incremental"] - else []) ++ - (if startnum /= 1 + let attribs = (if startnum /= 1 then [A.start $ toValue startnum] else []) ++ (if numstyle /= DefaultStyle -- cgit v1.2.3