aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/CommonMark.hs
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-11-28 10:56:32 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2017-11-28 10:56:32 -0800
commit00561b1bb956a5b4de291e80001cf752c38c4549 (patch)
treecd934ce66132923dd14f4bcc43cc6b454ba5a8bc /src/Text/Pandoc/Writers/CommonMark.hs
parent8b0b4cd84860b08e6fefe59fde32c5677d7c65c8 (diff)
downloadpandoc-00561b1bb956a5b4de291e80001cf752c38c4549.tar.gz
Support `--webtex` for `gfm` output.
Diffstat (limited to 'src/Text/Pandoc/Writers/CommonMark.hs')
-rw-r--r--src/Text/Pandoc/Writers/CommonMark.hs22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Writers/CommonMark.hs b/src/Text/Pandoc/Writers/CommonMark.hs
index 8677dd840..f4d376458 100644
--- a/src/Text/Pandoc/Writers/CommonMark.hs
+++ b/src/Text/Pandoc/Writers/CommonMark.hs
@@ -39,6 +39,7 @@ import Data.List (transpose)
import Data.Monoid (Any (..), (<>))
import Data.Text (Text)
import qualified Data.Text as T
+import Network.HTTP (urlEncode)
import Text.Pandoc.Class (PandocMonad)
import Text.Pandoc.Definition
import Text.Pandoc.Options
@@ -276,12 +277,21 @@ inlineToNodes opts (Quoted qt ils) =
| isEnabled Ext_smart opts -> ("\"", "\"")
| otherwise -> ("“", "”")
inlineToNodes _ (Code _ str) = (node (CODE (T.pack str)) [] :)
-inlineToNodes _ (Math mt str) =
- case mt of
- InlineMath ->
- (node (HTML_INLINE (T.pack ("\\(" ++ str ++ "\\)"))) [] :)
- DisplayMath ->
- (node (HTML_INLINE (T.pack ("\\[" ++ str ++ "\\]"))) [] :)
+inlineToNodes opts (Math mt str) =
+ case writerHTMLMathMethod opts of
+ WebTeX url ->
+ let core = inlineToNodes opts
+ (Image nullAttr [Str str] (url ++ urlEncode str, str))
+ sep = if mt == DisplayMath
+ then (node LINEBREAK [] :)
+ else id
+ in (sep . core . sep)
+ _ ->
+ case mt of
+ InlineMath ->
+ (node (HTML_INLINE (T.pack ("\\(" ++ str ++ "\\)"))) [] :)
+ DisplayMath ->
+ (node (HTML_INLINE (T.pack ("\\[" ++ str ++ "\\]"))) [] :)
inlineToNodes opts (Span _ ils) = (inlinesToNodes opts ils ++)
inlineToNodes opts (Cite _ ils) = (inlinesToNodes opts ils ++)
inlineToNodes _ (Note _) = id -- should not occur