summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/HTML.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2010-07-15 19:01:00 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2010-07-15 19:01:00 -0700
commit57a91f3b6add303ef70aa29a14a8c67123ec7c0f (patch)
tree3ec6a5f9dcb5e0c9d88d84d2599a68ee5b82a279 /src/Text/Pandoc/Writers/HTML.hs
parent8757da76b0e4c26f722ac4742689739b2b5dfb08 (diff)
Added --webtex option for HTML math.
+ Added --webtex command-line option, with optional parameter. (Defaults to using google charts API.) + Added WebTeX HTMLMathMethod. + Removed MimeTeX HTMLMathMethod. (WebTeX is generic and subsumes it.) + Modified --mimetex option to use WebTeX. + Thanks to lpeterse for the idea and some of the code.
Diffstat (limited to 'src/Text/Pandoc/Writers/HTML.hs')
-rw-r--r--src/Text/Pandoc/Writers/HTML.hs39
1 files changed, 23 insertions, 16 deletions
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index 3f9a417d2..20022e182 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -36,6 +36,7 @@ import Text.Pandoc.Templates
import Text.Pandoc.Readers.TeXMath
import Text.Pandoc.Highlighting ( highlightHtml )
import Text.Pandoc.XML (stripTags, escapeStringForXML)
+import Network.HTTP ( urlEncode )
import Numeric ( showHex )
import Data.Char ( ord, toLower )
import Data.List ( isPrefixOf, intersperse )
@@ -462,16 +463,20 @@ inlineToHtml opts inline =
-- non-math elements on the page from being treated as math by
-- the javascript
return $ thespan ! [theclass "LaTeX"] $
- if t == InlineMath
- then primHtml ("$" ++ str ++ "$")
- else primHtml ("$$" ++ str ++ "$$")
- JsMath _ ->
- return $ if t == InlineMath
- then thespan ! [theclass "math"] $ primHtml str
- else thediv ! [theclass "math"] $ primHtml str
- MimeTeX url ->
- return $ image ! [src (url ++ "?" ++ str),
- alt str, title str]
+ case t of
+ InlineMath -> primHtml ("$" ++ str ++ "$")
+ DisplayMath -> primHtml ("$$" ++ str ++ "$$")
+ JsMath _ -> do
+ let m = primHtml str
+ return $ case t of
+ InlineMath -> thespan ! [theclass "math"] $ m
+ DisplayMath -> thediv ! [theclass "math"] $ m
+ WebTeX url -> do
+ let m = image ! [src (url ++ urlEncode str),
+ alt str, title str]
+ return $ case t of
+ InlineMath -> m
+ DisplayMath -> br +++ m +++ br
GladTeX ->
return $ primHtml $ "<EQ>" ++ str ++ "</EQ>"
MathML _ -> do
@@ -484,12 +489,14 @@ inlineToHtml opts inline =
Right r -> return $ primHtml $
ppcElement conf r
Left _ -> inlineListToHtml opts
- (readTeXMath str) >>=
- return . (thespan !
- [theclass "math"])
- PlainMath ->
- inlineListToHtml opts (readTeXMath str) >>=
- return . (thespan ! [theclass "math"]) )
+ (readTeXMath str) >>= return .
+ (thespan ! [theclass "math"])
+ PlainMath -> do
+ x <- inlineListToHtml opts (readTeXMath str)
+ let m = thespan ! [theclass "math"] $ x
+ return $ case t of
+ InlineMath -> m
+ DisplayMath -> br +++ m +++ br )
(TeX str) -> case writerHTMLMathMethod opts of
LaTeXMathML _ -> do modify (\st -> st {stMath = True})
return $ primHtml str