@@ -35,7 +35,7 @@ module Text.Pandoc.Writers.Markdown (
35import Text.Regex ( matchRegex, mkRegex )
35import Text.Regex ( matchRegex, mkRegex )
36import Text.Pandoc.Definition
36import Text.Pandoc.Definition
37import Text.Pandoc.Shared
37import Text.Pandoc.Shared
38−import Data.List ( group )
38+import Data.List ( group, isPrefixOf, drop )
39import Text.PrettyPrint.HughesPJ hiding ( Str )
39import Text.PrettyPrint.HughesPJ hiding ( Str )
41-- | Convert Pandoc to Markdown.
41-- | Convert Pandoc to Markdown.
@@ -183,11 +183,15 @@ inlineToMarkdown Space = char ' '
183inlineToMarkdown (Link txt (Src src tit)) =
183inlineToMarkdown (Link txt (Src src tit)) =
184 let linktext = if (null txt) || (txt == [Str ""])
184 let linktext = if (null txt) || (txt == [Str ""])
185 then text "link"
185 then text "link"
186− else inlineListToMarkdown txt in
186+ else inlineListToMarkdown txt
187+ linktitle = if null tit
189+ else text (" \"" ++ (escapeLinkTitle tit) ++ "\"")
190+ srcSuffix = if isPrefixOf "mailto:" src then drop 7 src else src in
191+ if (null tit) && (txt == [Str srcSuffix])
192+ then char '<' <> text srcSuffix <> char '>'
187− char '[' <> linktext <> char ']' <> char '(' <> text src <>
193+ else char '[' <> linktext <> char ']' <> char '(' <> text src <>
188− (if tit /= ""
194+ linktitle <> char ')'
189− then text (" \"" ++ (escapeLinkTitle tit) ++ "\"")
190− else empty) <> char ')'
191inlineToMarkdown (Link txt (Ref ref)) =
195inlineToMarkdown (Link txt (Ref ref)) =
192 let first = char '[' <> inlineListToMarkdown txt <> char ']'
196 let first = char '[' <> inlineListToMarkdown txt <> char ']'
193 second = if (txt == ref)
197 second = if (txt == ref)