aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2018-09-11 00:38:55 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2018-09-11 00:39:37 +0300
commitc2b97c4b8026694d9c59d7b9f6d333d204f669ce (patch)
treec0a1275fcd3be3b14a0692df16878e1710ab0620 /src/Text/Pandoc
parent7b52d43877d0351dcf0fd645127867a43978bc08 (diff)
downloadpandoc-c2b97c4b8026694d9c59d7b9f6d333d204f669ce.tar.gz
Muse writer: use tags instead of lightweight markup for empty strings
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r--src/Text/Pandoc/Writers/Muse.hs13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Writers/Muse.hs b/src/Text/Pandoc/Writers/Muse.hs
index 627358839..87c6c58da 100644
--- a/src/Text/Pandoc/Writers/Muse.hs
+++ b/src/Text/Pandoc/Writers/Muse.hs
@@ -420,6 +420,11 @@ endsWithSpace [SoftBreak] = True
endsWithSpace (_:xs) = endsWithSpace xs
endsWithSpace [] = False
+emptyInlines :: [Inline] -> Bool
+emptyInlines [] = True
+emptyInlines (Str "":xs) = emptyInlines xs
+emptyInlines _ = False
+
urlEscapeBrackets :: String -> String
urlEscapeBrackets (']':xs) = '%':'5':'D':urlEscapeBrackets xs
urlEscapeBrackets (x:xs) = x:urlEscapeBrackets xs
@@ -517,7 +522,7 @@ inlineToMuse (Emph [Strong lst]) = do
then do contents <- local (\env -> env { envInsideAsterisks = True }) $ inlineListToMuse lst
modify $ \st -> st { stUseTags = False }
return $ "<em>**" <> contents <> "**</em>"
- else if null lst || startsWithSpace lst || endsWithSpace lst
+ else if emptyInlines lst || startsWithSpace lst || endsWithSpace lst
then do
contents <- local (\env -> env { envInsideAsterisks = False }) $ inlineListToMuse lst
modify $ \st -> st { stUseTags = True }
@@ -528,7 +533,7 @@ inlineToMuse (Emph [Strong lst]) = do
return $ "***" <> contents <> "***"
inlineToMuse (Emph lst) = do
useTags <- gets stUseTags
- if useTags || null lst || startsWithSpace lst || endsWithSpace lst
+ if useTags || emptyInlines lst || startsWithSpace lst || endsWithSpace lst
then do contents <- inlineListToMuse lst
return $ "<em>" <> contents <> "</em>"
else do contents <- local (\env -> env { envInsideAsterisks = True }) $ inlineListToMuse lst
@@ -540,7 +545,7 @@ inlineToMuse (Strong [Emph lst]) = do
then do contents <- local (\env -> env { envInsideAsterisks = True }) $ inlineListToMuse lst
modify $ \st -> st { stUseTags = False }
return $ "<strong>*" <> contents <> "*</strong>"
- else if null lst || startsWithSpace lst || endsWithSpace lst
+ else if emptyInlines lst || startsWithSpace lst || endsWithSpace lst
then do
contents <- local (\env -> env { envInsideAsterisks = False }) $ inlineListToMuse lst
modify $ \st -> st { stUseTags = True }
@@ -551,7 +556,7 @@ inlineToMuse (Strong [Emph lst]) = do
return $ "***" <> contents <> "***"
inlineToMuse (Strong lst) = do
useTags <- gets stUseTags
- if useTags || null lst || startsWithSpace lst || endsWithSpace lst
+ if useTags || emptyInlines lst || startsWithSpace lst || endsWithSpace lst
then do contents <- inlineListToMuse lst
modify $ \st -> st { stUseTags = False }
return $ "<strong>" <> contents <> "</strong>"