From 78e4fbda51a243f96176be001af8e538fcbc33c8 Mon Sep 17 00:00:00 2001 From: Daniele D'Orazio Date: Wed, 26 Oct 2016 12:18:58 +0200 Subject: Markdown Reader: add attributes for autolink (#3183) --- src/Text/Pandoc/Readers/Markdown.hs | 4 +++- tests/Tests/Readers/Markdown.hs | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 2337b733a..f020e1bee 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1828,7 +1828,9 @@ autoLink = try $ do -- final punctuation. for example: in ``, -- the URI parser will stop before the dashes. extra <- fromEntities <$> manyTill nonspaceChar (char '>') - return $ return $ B.link (src ++ escapeURI extra) "" (B.str $ orig ++ extra) + attr <- option nullAttr $ try $ + guardEnabled Ext_link_attributes >> attributes + return $ return $ B.linkWith attr (src ++ escapeURI extra) "" (B.str $ orig ++ extra) image :: MarkdownParser (F Inlines) image = try $ do diff --git a/tests/Tests/Readers/Markdown.hs b/tests/Tests/Readers/Markdown.hs index 9219b6930..739763e77 100644 --- a/tests/Tests/Readers/Markdown.hs +++ b/tests/Tests/Readers/Markdown.hs @@ -34,7 +34,10 @@ testBareLink (inp, ils) = inp (inp, doc $ para ils) autolink :: String -> Inlines -autolink s = link s "" (str s) +autolink = autolinkWith nullAttr + +autolinkWith :: Attr -> String -> Inlines +autolinkWith attr s = linkWith attr s "" (str s) bareLinkTests :: [(String, Inlines)] bareLinkTests = @@ -217,6 +220,12 @@ tests = [ testGroup "inline code" , "a partial URL (#2277)" =: "" =?> para (text "") + , "with some attributes" =: + "{#i .j .z k=v}" =?> + para (autolinkWith ("i", ["j", "z"], [("k", "v")]) "http://foo.bar") + , "with some attributes and spaces" =: + " {#i .j .z k=v}" =?> + para (autolink "http://foo.bar" <> space <> text "{#i .j .z k=v}") ] , testGroup "links" [ "no autolink inside link" =: -- cgit v1.2.3