diff options
Diffstat (limited to 'src/Text')
-rw-r--r-- | src/Text/Pandoc/Shared.hs | 15 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/HTML.hs | 16 |
2 files changed, 22 insertions, 9 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index 025b54b93..ac1cf7373 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -66,6 +66,7 @@ module Text.Pandoc.Shared ( -- * Writer options HTMLMathMethod (..), ObfuscationMethod (..), + HTMLSlideVariant (..), WriterOptions (..), defaultWriterOptions, -- * File handling @@ -466,6 +467,12 @@ data ObfuscationMethod = NoObfuscation | JavascriptObfuscation deriving (Show, Read, Eq) +-- | Varieties of HTML slide shows. +data HTMLSlideVariant = S5Slides + | SlidySlides + | NoSlides + deriving (Show, Read, Eq) + -- | Options for writers data WriterOptions = WriterOptions { writerStandalone :: Bool -- ^ Include header and footer @@ -474,11 +481,11 @@ data WriterOptions = WriterOptions , writerEPUBMetadata :: String -- ^ Metadata to include in EPUB , writerTabStop :: Int -- ^ Tabstop for conversion btw spaces and tabs , writerTableOfContents :: Bool -- ^ Include table of contents - , writerS5 :: Bool -- ^ We're writing S5 + , writerSlideVariant :: HTMLSlideVariant -- ^ Are we writing S5 or Slidy? + , writerIncremental :: Bool -- ^ True if lists should be incremental , writerXeTeX :: Bool -- ^ Create latex suitable for use by xetex , writerHTMLMathMethod :: HTMLMathMethod -- ^ How to print math in HTML , writerIgnoreNotes :: Bool -- ^ Ignore footnotes (used in making toc) - , writerIncremental :: Bool -- ^ Incremental S5 lists , writerNumberSections :: Bool -- ^ Number sections in LaTeX , writerStrictMarkdown :: Bool -- ^ Use strict markdown syntax , writerReferenceLinks :: Bool -- ^ Use reference links in writing markdown, rst @@ -499,11 +506,11 @@ defaultWriterOptions = , writerEPUBMetadata = "" , writerTabStop = 4 , writerTableOfContents = False - , writerS5 = False + , writerSlideVariant = NoSlides + , writerIncremental = False , writerXeTeX = False , writerHTMLMathMethod = PlainMath , writerIgnoreNotes = False - , writerIncremental = False , writerNumberSections = False , writerStrictMarkdown = False , writerReferenceLinks = False diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs index 08cd18ad0..cd03a51b5 100644 --- a/src/Text/Pandoc/Writers/HTML.hs +++ b/src/Text/Pandoc/Writers/HTML.hs @@ -197,10 +197,16 @@ elementToHtml opts (Sec level num id' title' elements) = do innerContents <- mapM (elementToHtml opts) elements modify $ \st -> st{stSecNum = num} -- update section number header' <- blockToHtml opts (Header level title') - return $ if writerS5 opts || (writerStrictMarkdown opts && not (writerTableOfContents opts)) - -- S5 gets confused by the extra divs around sections - then toHtmlFromList (header' : innerContents) - else thediv ! [prefixedId opts id'] << (header' : innerContents) + let stuff = header' : innerContents + return $ case writerSlideVariant opts of + SlidySlides | level == 1 -> + thediv ! [prefixedId opts id', theclass "slide"] << stuff + S5Slides -> toHtmlFromList stuff + -- S5 gets confused by the extra divs around sections + _ | (writerStrictMarkdown opts && + not (writerTableOfContents opts)) -> + toHtmlFromList stuff + _ -> thediv ! [prefixedId opts id'] << stuff -- | Convert list of Note blocks to a footnote <div>. -- Assumes notes are sorted. @@ -296,7 +302,7 @@ blockToHtml opts (BlockQuote blocks) = -- in S5, treat list in blockquote specially -- if default is incremental, make it nonincremental; -- otherwise incremental - if writerS5 opts + if writerSlideVariant opts /= NoSlides then let inc = not (writerIncremental opts) in case blocks of [BulletList lst] -> blockToHtml (opts {writerIncremental = inc}) |