@@ -44,7 +44,6 @@ module Text.Pandoc.Shared (
4444 camelCaseToHyphenated,
4545 toRomanNumeral,
4646 escapeURI,
47− unescapeURI,
4847 tabFilter,
4948 -- * Pandoc block and inline list processing
5049 orderedListMarkers,
@@ -73,11 +72,10 @@ module Text.Pandoc.Shared (
7372import Text.Pandoc.Definition
7473import Text.Pandoc.Generic
7574import qualified Text.Pandoc.UTF8 as UTF8 (readFile)
76−import Data.Char ( toLower, isLower, isUpper, isAlpha, isAscii,
77− isLetter, isDigit )
75+import Data.Char ( toLower, isLower, isUpper, isAlpha,
76+ isLetter, isDigit, isSpace )
7877import Data.List ( find, isPrefixOf, intercalate )
79−import Network.URI ( isAllowedInURI, escapeURIString, unEscapeString )
80−import Codec.Binary.UTF8.String ( encodeString, decodeString )
78+import Network.URI ( escapeURIString )
8179import System.Directory
8280import System.FilePath ( (</>) )
8381import Data.Generics (Typeable, Data)
@@ -181,16 +179,9 @@ toRomanNumeral x =
181179 _ | x >= 1 -> "I" ++ toRomanNumeral (x - 1)
182180 _ -> ""
183181
184−-- | Escape unicode characters in a URI. Characters that are
185−-- already valid in a URI, including % and ?, are left alone.
182+-- | Escape whitespace in URI.
186183escapeURI :: String -> String
187−escapeURI = escapeURIString isAllowedInURI . encodeString
188−
189−-- | Unescape unicode and some special characters in a URI, but
190−-- without introducing spaces.
191−unescapeURI :: String -> String
192−unescapeURI = escapeURIString (\c -> isAllowedInURI c || not (isAscii c)) .
193− decodeString . unEscapeString
184+escapeURI = escapeURIString (not . isSpace)
194185
195186-- | Convert tabs to spaces and filter out DOS line endings.
196187-- Tabs will be preserved if tab stop is set to 0.
@@ -304,9 +295,9 @@ consolidateInlines (Str x : ys) =
304295 fromStr (Str z) = z
305296 fromStr _ = error "consolidateInlines - fromStr - not a Str"
306297consolidateInlines (Space : ys) = Space : rest
307− where isSpace Space = True
308− isSpace _ = False
309− rest = consolidateInlines $ dropWhile isSpace ys
298+ where isSp Space = True
299+ isSp _ = False
300+ rest = consolidateInlines $ dropWhile isSp ys
310301consolidateInlines (Emph xs : Emph ys : zs) = consolidateInlines $
311302 Emph (xs ++ ys) : zs
312303consolidateInlines (Strong xs : Strong ys : zs) = consolidateInlines $