git.iko.soy/typeable/pandoc
on master help sign in
Markdown writer: Avoid inline surround-marking with empty content.
c366fabJohn MacFarlane
src/Text/Pandoc/Writers/Markdown.hs+5
@@ -931,12 +931,14 @@ inlineToMarkdown opts (Span attrs ils) = do
931 isEnabled Ext_native_spans opts ->
931 isEnabled Ext_native_spans opts ->
932 tagWithAttrs "span" attrs <> contents <> text "</span>"
932 tagWithAttrs "span" attrs <> contents <> text "</span>"
933 | otherwise -> contents
933 | otherwise -> contents
934+inlineToMarkdown _ (Emph []) = return empty
934inlineToMarkdown opts (Emph lst) = do
935inlineToMarkdown opts (Emph lst) = do
935 plain <- asks envPlain
936 plain <- asks envPlain
936 contents <- inlineListToMarkdown opts lst
937 contents <- inlineListToMarkdown opts lst
937 return $ if plain
938 return $ if plain
938 then "_" <> contents <> "_"
939 then "_" <> contents <> "_"
939 else "*" <> contents <> "*"
940 else "*" <> contents <> "*"
941+inlineToMarkdown _ (Strong []) = return empty
940inlineToMarkdown opts (Strong lst) = do
942inlineToMarkdown opts (Strong lst) = do
941 plain <- asks envPlain
943 plain <- asks envPlain
942 if plain
944 if plain
@@ -944,6 +946,7 @@ inlineToMarkdown opts (Strong lst) = do
944 else do
946 else do
945 contents <- inlineListToMarkdown opts lst
947 contents <- inlineListToMarkdown opts lst
946 return $ "**" <> contents <> "**"
948 return $ "**" <> contents <> "**"
949+inlineToMarkdown _ (Strikeout []) = return empty
947inlineToMarkdown opts (Strikeout lst) = do
950inlineToMarkdown opts (Strikeout lst) = do
948 contents <- inlineListToMarkdown opts lst
951 contents <- inlineListToMarkdown opts lst
949 return $ if isEnabled Ext_strikeout opts
952 return $ if isEnabled Ext_strikeout opts
@@ -951,6 +954,7 @@ inlineToMarkdown opts (Strikeout lst) = do
951 else if isEnabled Ext_raw_html opts
954 else if isEnabled Ext_raw_html opts
952 then "<s>" <> contents <> "</s>"
955 then "<s>" <> contents <> "</s>"
953 else contents
956 else contents
957+inlineToMarkdown _ (Superscript []) = return empty
954inlineToMarkdown opts (Superscript lst) =
958inlineToMarkdown opts (Superscript lst) =
955 local (\env -> env {envEscapeSpaces = True}) $ do
959 local (\env -> env {envEscapeSpaces = True}) $ do
956 contents <- inlineListToMarkdown opts lst
960 contents <- inlineListToMarkdown opts lst
@@ -963,6 +967,7 @@ inlineToMarkdown opts (Superscript lst) =
963 in case mapM toSuperscript rendered of
967 in case mapM toSuperscript rendered of
964 Just r -> text r
968 Just r -> text r
965 Nothing -> text $ "^(" ++ rendered ++ ")"
969 Nothing -> text $ "^(" ++ rendered ++ ")"
970+inlineToMarkdown _ (Subscript []) = return empty
966inlineToMarkdown opts (Subscript lst) =
971inlineToMarkdown opts (Subscript lst) =
967 local (\env -> env {envEscapeSpaces = True}) $ do
972 local (\env -> env {envEscapeSpaces = True}) $ do
968 contents <- inlineListToMarkdown opts lst
973 contents <- inlineListToMarkdown opts lst
test/command/3715.mdnew file+15
@@ -0,0 +1,15 @@
1+```
2+% pandoc -t markdown -f html --wrap=preserve
3+x<em></em>x
4+y<strong></strong>y
5+z<sup></sup>z
6+w<sub></sub>w
7+q<s></s>q
8+^D
9+xx
10+yy
11+zz
12+ww
13+qq
14+```
15+