From c652dcc16b208954ab30a27b1c72a889b20ef2e9 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sun, 7 Mar 2021 13:21:45 -0800
Subject: LaTeX reader: support hyperref command.

Closes #7127.
---
 src/Text/Pandoc/Readers/LaTeX.hs | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

(limited to 'src')

diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 552411db8..ceac261d2 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -398,17 +398,20 @@ inlineCommands = M.unions
     , ("footnote", skipopts >> note <$> grouped block)
     , ("passthrough", tok) -- \passthrough macro used by latex writer
                            -- for listings
+    , ("includegraphics", do options <- option [] keyvals
+                             src <- braced
+                             mkImage options .
+                               unescapeURL .
+                               removeDoubleQuotes $ untokenize src)
+    -- hyperref
     , ("url", (\url -> link url "" (str url)) . unescapeURL . untokenize <$>
                     bracedUrl)
     , ("nolinkurl", code . unescapeURL . untokenize <$> bracedUrl)
     , ("href", do url <- bracedUrl
                   sp
                   link (unescapeURL $ untokenize url) "" <$> tok)
-    , ("includegraphics", do options <- option [] keyvals
-                             src <- braced
-                             mkImage options . unescapeURL . removeDoubleQuotes $
-                                 untokenize src)
     , ("hyperlink", hyperlink)
+    , ("hyperref", hyperref)
     , ("hypertarget", hypertargetInline)
     -- hyphenat
     , ("nohyphens", tok)
@@ -463,6 +466,12 @@ hyperlink = try $ do
   lab <- tok
   return $ link ("#" <> src) "" lab
 
+hyperref :: PandocMonad m => LP m Inlines
+hyperref = try $ do
+  url <- (("#" <>) . untokenize <$> try (sp *> bracketedToks <* sp))
+       <|> untokenize <$> (bracedUrl <* bracedUrl <* bracedUrl)
+  link url "" <$> tok
+
 hypertargetBlock :: PandocMonad m => LP m Blocks
 hypertargetBlock = try $ do
   ref <- untokenize <$> braced
-- 
cgit v1.2.3