diff options
author | Alexander Krotov <ilabdsf@gmail.com> | 2018-03-05 19:38:11 +0300 |
---|---|---|
committer | Alexander Krotov <ilabdsf@gmail.com> | 2018-03-05 19:50:19 +0300 |
commit | 7da6e4390cb6d812b67dca6720bb56f3963c05d5 (patch) | |
tree | 46f55a5c7aaea3afcb1593527cfe2ddb3b631d3a /src/Text/Pandoc/Writers | |
parent | 7518e8e00e2711b63487a76321a1a1442488e5d3 (diff) | |
download | pandoc-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.hs | 16 |
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 |