Org reader: fix image filename recognition
Use a function from the *filepath* library to check whether a string is a valid file name. The custom validity checker that was used before gave wrong results, e.g. for absolute file paths on Windows (kawabata/ox-pandoc#52).
This commit is contained in:
parent
0eee6368d3
commit
d30fbc2879
1 changed files with 7 additions and 6 deletions
|
@ -36,17 +36,18 @@ module Text.Pandoc.Readers.Org.Shared
|
|||
|
||||
import Prelude
|
||||
import Data.Char (isAlphaNum)
|
||||
import Data.List (isPrefixOf, isSuffixOf)
|
||||
import Data.List (isPrefixOf)
|
||||
import System.FilePath (isValid, takeExtension)
|
||||
|
||||
|
||||
-- | Check whether the given string looks like the path to of URL of an image.
|
||||
isImageFilename :: String -> Bool
|
||||
isImageFilename filename =
|
||||
any (\x -> ('.':x) `isSuffixOf` filename) imageExtensions &&
|
||||
(any (\x -> (x ++ "://") `isPrefixOf` filename) protocols ||
|
||||
':' `notElem` filename)
|
||||
isImageFilename fp = hasImageExtension && (isValid fp || isKnownProtocolUri)
|
||||
where
|
||||
imageExtensions = [ "jpeg" , "jpg" , "png" , "gif" , "svg" ]
|
||||
hasImageExtension = takeExtension fp `elem` imageExtensions
|
||||
isKnownProtocolUri = any (\x -> (x ++ "://") `isPrefixOf` fp) protocols
|
||||
|
||||
imageExtensions = [ ".jpeg", ".jpg", ".png", ".gif", ".svg" ]
|
||||
protocols = [ "file", "http", "https" ]
|
||||
|
||||
-- | Cleanup and canonicalize a string describing a link. Return @Nothing@ if
|
||||
|
|
Loading…
Add table
Reference in a new issue