diff options
Diffstat (limited to 'Text')
-rw-r--r-- | Text/Pandoc/Shared.hs | 13 | ||||
-rw-r--r-- | Text/Pandoc/Writers/HTML.hs | 24 |
2 files changed, 24 insertions, 13 deletions
diff --git a/Text/Pandoc/Shared.hs b/Text/Pandoc/Shared.hs index abd313672..32cc2ce59 100644 --- a/Text/Pandoc/Shared.hs +++ b/Text/Pandoc/Shared.hs @@ -92,6 +92,7 @@ module Text.Pandoc.Shared ( hierarchicalize, isHeaderBlock, -- * Writer options + HTMLMathMethod (..), WriterOptions (..), defaultWriterOptions ) where @@ -796,6 +797,12 @@ isHeaderBlock _ = False -- Writer options -- +data HTMLMathMethod = PlainMath + | ASCIIMathML (Maybe String) -- url of ASCIIMathML.js + | GladTeX + | MimeTeX String -- url of mimetex.cgi + deriving (Show, Read, Eq) + -- | Options for writers data WriterOptions = WriterOptions { writerStandalone :: Bool -- ^ Include header and footer @@ -804,8 +811,7 @@ data WriterOptions = WriterOptions , writerTabStop :: Int -- ^ Tabstop for conversion btw spaces and tabs , writerTableOfContents :: Bool -- ^ Include table of contents , writerS5 :: Bool -- ^ We're writing S5 - , writerUseASCIIMathML :: Bool -- ^ Use ASCIIMathML - , writerASCIIMathMLURL :: Maybe String -- ^ URL to asciiMathML.js + , 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 @@ -825,8 +831,7 @@ defaultWriterOptions = , writerTabStop = 4 , writerTableOfContents = False , writerS5 = False - , writerUseASCIIMathML = False - , writerASCIIMathMLURL = Nothing + , writerHTMLMathMethod = PlainMath , writerIgnoreNotes = False , writerIncremental = False , writerNumberSections = False diff --git a/Text/Pandoc/Writers/HTML.hs b/Text/Pandoc/Writers/HTML.hs index b933064fc..0085e5419 100644 --- a/Text/Pandoc/Writers/HTML.hs +++ b/Text/Pandoc/Writers/HTML.hs @@ -100,11 +100,14 @@ writeHtml opts (Pandoc (Meta tit authors date) blocks) = else style ! [thetype "text/css"] $ primHtml $ '\n':(unlines $ S.toList cssLines) math = if stMath newstate - then case writerASCIIMathMLURL opts of - Just path -> script ! [src path, - thetype "text/javascript"] $ - noHtml - Nothing -> primHtml asciiMathMLScript + then case writerHTMLMathMethod opts of + ASCIIMathML Nothing -> + primHtml asciiMathMLScript + ASCIIMathML (Just url) -> + script ! + [src url, thetype "text/javascript"] $ + noHtml + _ -> noHtml else noHtml head = header $ metadata +++ math +++ css +++ primHtml (writerHeader opts) @@ -397,10 +400,13 @@ inlineToHtml opts inline = primHtmlChar "rdquo") in do contents <- inlineListToHtml opts lst return $ leftQuote +++ contents +++ rightQuote - (Math str) -> (if writerUseASCIIMathML opts - then modify (\st -> st {stMath = True}) - else return ()) >> - return (stringToHtml ("$" ++ str ++ "$")) + (Math str) -> modify (\st -> st {stMath = True}) >> + (return $ case writerHTMLMathMethod opts of + ASCIIMathML _ -> + stringToHtml ("$" ++ str ++ "$") + GladTeX -> + tag "eq" << str + _ -> stringToHtml ("$" ++ str ++ "$")) (TeX str) -> return noHtml (HtmlInline str) -> return $ primHtml str (Link [Code str] (src,tit)) | "mailto:" `isPrefixOf` src -> |