aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Krotov <ilabdsf@gmail.com>2018-08-22 12:16:57 +0300
committerAlexander Krotov <ilabdsf@gmail.com>2018-08-22 12:43:15 +0300
commit937b92cd304a6a404f750c7f9a894adfb3638d01 (patch)
treefa55798ebb125f5a1bc97e4bda92d30ddc18fec4
parent3b5949e8f278a8d407777f567fdaf8e421323ced (diff)
downloadpandoc-937b92cd304a6a404f750c7f9a894adfb3638d01.tar.gz
HTML reader: extract spaces inside links instead of trimming them
Fixes #4845
-rw-r--r--src/Text/Pandoc/Readers/HTML.hs6
-rw-r--r--test/command/4845.md6
2 files changed, 9 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs
index df8dc1a2d..697ab89e9 100644
--- a/src/Text/Pandoc/Readers/HTML.hs
+++ b/src/Text/Pandoc/Readers/HTML.hs
@@ -745,18 +745,18 @@ pLink = try $ do
let uid = fromMaybe (T.unpack $ fromAttrib "name" tag) $
maybeFromAttrib "id" tag
let cls = words $ T.unpack $ fromAttrib "class" tag
- lab <- trimInlines . mconcat <$> manyTill inline (pCloses "a")
+ lab <- mconcat <$> manyTill inline (pCloses "a")
-- check for href; if href, then a link, otherwise a span
case maybeFromAttrib "href" tag of
Nothing ->
- return $ B.spanWith (uid, cls, []) lab
+ return $ extractSpaces (B.spanWith (uid, cls, [])) lab
Just url' -> do
mbBaseHref <- baseHref <$> getState
let url = case (parseURIReference url', mbBaseHref) of
(Just rel, Just bs) ->
show (rel `nonStrictRelativeTo` bs)
_ -> url'
- return $ B.linkWith (uid, cls, []) (escapeURI url) title lab
+ return $ extractSpaces (B.linkWith (uid, cls, []) (escapeURI url) title) lab
pImage :: PandocMonad m => TagParser m Inlines
pImage = do
diff --git a/test/command/4845.md b/test/command/4845.md
new file mode 100644
index 000000000..093161ac7
--- /dev/null
+++ b/test/command/4845.md
@@ -0,0 +1,6 @@
+```
+% pandoc -f html -t native
+x<a href="/foo"> leading trailing space </a>x
+^D
+[Plain [Str "x",Space,Link ("",[],[]) [Str "leading",Space,Str "trailing",Space,Str "space"] ("/foo",""),Space,Str "x"]]
+```