aboutsummaryrefslogtreecommitdiff
path: root/Text
diff options
context:
space:
mode:
Diffstat (limited to 'Text')
-rw-r--r--Text/Pandoc/Shared.hs13
-rw-r--r--Text/Pandoc/Writers/HTML.hs24
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 ->