git.iko.soy/typeable/pandoc
on master help sign in
Muse writer: simplify inline list rendering
3ddb7c9Alexander Krotov
src/Text/Pandoc/Writers/Muse.hs+12−15
@@ -424,7 +424,7 @@ renderInlineList (x:xs) = do
424 start <- asks envInlineStart
424 start <- asks envInlineStart
425 afterSpace <- asks envAfterSpace
425 afterSpace <- asks envAfterSpace
426 topLevel <- asks envTopLevel
426 topLevel <- asks envTopLevel
427− r <- inlineToMuse x
427+ r <- local (\env -> env { envInlineStart = False }) $ inlineToMuse x
428 opts <- asks envOptions
428 opts <- asks envOptions
429 let isNewline = (x == SoftBreak && writerWrapText opts == WrapPreserve) || x == LineBreak
429 let isNewline = (x == SoftBreak && writerWrapText opts == WrapPreserve) || x == LineBreak
430 lst' <- local (\env -> env { envInlineStart = isNewline
430 lst' <- local (\env -> env { envInlineStart = isNewline
@@ -435,23 +435,20 @@ renderInlineList (x:xs) = do
435 else pure (r <> lst')
435 else pure (r <> lst')
436
436
437-- | Normalize and convert list of Pandoc inline elements to Muse.
437-- | Normalize and convert list of Pandoc inline elements to Muse.
438−inlineListToMuse'' :: PandocMonad m
438+inlineListToMuse :: PandocMonad m
439− => Bool
440− -> [Inline]
439+ => [Inline]
441− -> Muse m Doc
440+ -> Muse m Doc
442−inlineListToMuse'' start lst = do
441+inlineListToMuse lst = do
443 lst' <- (normalizeInlineList . fixNotes) <$> preprocessInlineList (map (removeKeyValues . replaceSmallCaps) lst)
442 lst' <- (normalizeInlineList . fixNotes) <$> preprocessInlineList (map (removeKeyValues . replaceSmallCaps) lst)
444− topLevel <- asks envTopLevel
445− afterSpace <- asks envAfterSpace
446− local (\env -> env { envInlineStart = start
447− , envAfterSpace = afterSpace || (start && not topLevel)
448− }) $ renderInlineList lst'
443+ renderInlineList lst'
449
444
450inlineListToMuse' :: PandocMonad m => [Inline] -> Muse m Doc
445inlineListToMuse' :: PandocMonad m => [Inline] -> Muse m Doc
451−inlineListToMuse' = inlineListToMuse'' True
446+inlineListToMuse' lst = do
452−
447+ topLevel <- asks envTopLevel
453−inlineListToMuse :: PandocMonad m => [Inline] -> Muse m Doc
448+ afterSpace <- asks envAfterSpace
449+ local (\env -> env { envInlineStart = True
450+ , envAfterSpace = afterSpace || not topLevel
454−inlineListToMuse = inlineListToMuse'' False
451+ }) $ inlineListToMuse lst
455
452
456-- | Convert Pandoc inline element to Muse.
453-- | Convert Pandoc inline element to Muse.
457inlineToMuse :: PandocMonad m
454inlineToMuse :: PandocMonad m