diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2014-04-30 08:58:10 -0700 | 
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2014-04-30 08:58:10 -0700 | 
| commit | 093229dc35506bff88f4edc6f2ae5316d621f8ff (patch) | |
| tree | 797a888f0be1290686a6a2c3a5119fd174fa557a | |
| parent | 7f86f95f3613677d515974f66660dad99a260b8b (diff) | |
| download | pandoc-093229dc35506bff88f4edc6f2ae5316d621f8ff.tar.gz | |
ConTeXt writer:  Improved autolinks.
Closes #1270.
| -rw-r--r-- | src/Text/Pandoc/Writers/ConTeXt.hs | 16 | ||||
| -rw-r--r-- | tests/writer.context | 10 | 
2 files changed, 9 insertions, 17 deletions
| diff --git a/src/Text/Pandoc/Writers/ConTeXt.hs b/src/Text/Pandoc/Writers/ConTeXt.hs index 3095cf508..cec420dcf 100644 --- a/src/Text/Pandoc/Writers/ConTeXt.hs +++ b/src/Text/Pandoc/Writers/ConTeXt.hs @@ -35,7 +35,7 @@ import Text.Pandoc.Writers.Shared  import Text.Pandoc.Options  import Text.Pandoc.Walk (query)  import Text.Printf ( printf ) -import Data.List ( intercalate, isPrefixOf ) +import Data.List ( intercalate )  import Control.Monad.State  import Text.Pandoc.Pretty  import Text.Pandoc.Templates ( renderTemplate' ) @@ -283,14 +283,6 @@ inlineToConTeXt (RawInline "tex" str) = return $ text str  inlineToConTeXt (RawInline _ _) = return empty  inlineToConTeXt (LineBreak) = return $ text "\\crlf" <> cr  inlineToConTeXt Space = return space --- autolink -inlineToConTeXt (Link [Str str] (src, tit)) -  | if "mailto:" `isPrefixOf` src -    then src == escapeURI ("mailto:" ++ str) -    else src == escapeURI str = -  inlineToConTeXt (Link -    [RawInline "context" "\\hyphenatedurl{", Str str, RawInline "context" "}"] -    (src, tit))  -- Handle HTML-like internal document references to sections  inlineToConTeXt (Link txt          (('#' : ref), _)) = do    opts <- gets stOptions @@ -305,6 +297,7 @@ inlineToConTeXt (Link txt          (('#' : ref), _)) = do             <> brackets (text ref)  inlineToConTeXt (Link txt          (src, _))      = do +  let isAutolink = txt == [Str src]    st <- get    let next = stNextRef st    put $ st {stNextRef = next + 1} @@ -313,8 +306,9 @@ inlineToConTeXt (Link txt          (src, _))      = do    return $ "\\useURL"             <> brackets (text ref)             <> brackets (text $ escapeStringUsing [('#',"\\#"),('%',"\\%")] src) -           <> brackets empty -           <> brackets label +           <> (if isAutolink +                  then empty +                  else brackets empty <> brackets label)             <> "\\from"             <> brackets (text ref)  inlineToConTeXt (Image _ (src, _)) = do diff --git a/tests/writer.context b/tests/writer.context index 0b031fd76..0c5024d89 100644 --- a/tests/writer.context +++ b/tests/writer.context @@ -813,24 +813,22 @@ braces]\from[url26].  \subsection[autolinks]{Autolinks} -With an ampersand: -\useURL[url27][http://example.com/?foo=1&bar=2][][\hyphenatedurl{http://example.com/?foo=1&bar=2}]\from[url27] +With an ampersand: \useURL[url27][http://example.com/?foo=1&bar=2]\from[url27]  \startitemize[packed]  \item    In a list?  \item -  \useURL[url28][http://example.com/][][\hyphenatedurl{http://example.com/}]\from[url28] +  \useURL[url28][http://example.com/]\from[url28]  \item    It should.  \stopitemize  An e-mail address: -\useURL[url29][mailto:nobody@nowhere.net][][\hyphenatedurl{nobody@nowhere.net}]\from[url29] +\useURL[url29][mailto:nobody@nowhere.net][][nobody@nowhere.net]\from[url29]  \startblockquote -Blockquoted: -\useURL[url30][http://example.com/][][\hyphenatedurl{http://example.com/}]\from[url30] +Blockquoted: \useURL[url30][http://example.com/]\from[url30]  \stopblockquote  Auto-links should not occur here: \type{<http://example.com/>} | 
