aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2018-03-05 19:38:11 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2018-03-05 19:50:19 +0300
commit7da6e4390cb6d812b67dca6720bb56f3963c05d5 (patch)
tree46f55a5c7aaea3afcb1593527cfe2ddb3b631d3a /src/Text/Pandoc/Writers
parent7518e8e00e2711b63487a76321a1a1442488e5d3 (diff)
downloadpandoc-7da6e4390cb6d812b67dca6720bb56f3963c05d5.tar.gz
Muse writer: expand math before inline list normalization
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r--src/Text/Pandoc/Writers/Muse.hs16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Writers/Muse.hs b/src/Text/Pandoc/Writers/Muse.hs
index ad67e489d..1f6006b2e 100644
--- a/src/Text/Pandoc/Writers/Muse.hs
+++ b/src/Text/Pandoc/Writers/Muse.hs
@@ -291,6 +291,14 @@ conditionalEscapeString s =
then escapeString s
else s
+-- Expand Math before normalizing inline list
+preprocessInlineList :: PandocMonad m
+ => [Inline]
+ -> m [Inline]
+preprocessInlineList (Math t str:xs) = (++ xs) <$> texMathToInlines t str
+preprocessInlineList (x:xs) = (x:) <$> preprocessInlineList xs
+preprocessInlineList [] = return []
+
normalizeInlineList :: [Inline] -> [Inline]
normalizeInlineList (x : Str "" : xs)
= normalizeInlineList (x:xs)
@@ -327,7 +335,9 @@ fixNotes (x:xs) = x : fixNotes xs
inlineListToMuse :: PandocMonad m
=> [Inline]
-> StateT WriterState m Doc
-inlineListToMuse lst = hcat <$> mapM inlineToMuse (fixNotes $ normalizeInlineList lst)
+inlineListToMuse lst = do
+ lst' <- preprocessInlineList lst
+ hcat <$> mapM inlineToMuse (fixNotes $ normalizeInlineList lst')
-- | Convert Pandoc inline element to Muse.
inlineToMuse :: PandocMonad m
@@ -363,8 +373,8 @@ inlineToMuse (Quoted DoubleQuote lst) = do
inlineToMuse (Cite _ lst) = inlineListToMuse lst
inlineToMuse (Code _ str) = return $
"<code>" <> text (substitute "</code>" "<</code><code>/code>" str) <> "</code>"
-inlineToMuse (Math t str) =
- lift (texMathToInlines t str) >>= inlineListToMuse
+inlineToMuse Math{} =
+ fail "Math should be expanded before normalization"
inlineToMuse (RawInline (Format f) str) =
return $ "<literal style=\"" <> text f <> "\">" <> text str <> "</literal>"
inlineToMuse LineBreak = return $ "<br>" <> cr