git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: parse image URLs without "guard" and "takeExtension"
commit1100bfc0e67954760c0c1767018404bf0129dd01 authorAlexander Krotov <ilabdsf@gmail.com> dateWed 30 May 2018, 02:25 (8 years ago) parentbdf8c01
2 files changed+6−5
src/Text/Pandoc/Readers/Muse.hs+3−5 test/Tests/Readers/Muse.hs+3
src/Text/Pandoc/Readers/Muse.hs+3−5
@@ -52,7 +52,6 @@ import qualified Data.Map as M
5252import qualified Data.Set as Set
5353import Data.Maybe (fromMaybe, isNothing)
5454import Data.Text (Text, unpack)
55−import System.FilePath (takeExtension)
5655import Text.HTML.TagSoup
5756import Text.Pandoc.Builder (Blocks, Inlines)
5857import qualified Text.Pandoc.Builder as B
@@ -966,14 +965,13 @@ explicitLink = try $ do
966965image :: PandocMonad m => MuseParser m (F Inlines)
967966image = try $ do
968967 string "[["
969− url <- manyTill anyChar $ char ']'
968+ (url, ext) <- manyUntil (noneOf "]") $ (imageExtension <* char ']')
970969 content <- optionMaybe linkContent
971970 char ']'
972− guard $ isImageUrl url
973− return $ B.image url "" <$> fromMaybe (return mempty) content
971+ return $ B.image (url ++ ext) "" <$> fromMaybe (return mempty) content
974972 where -- Taken from muse-image-regexp defined in Emacs Muse file lisp/muse-regexps.el
975973 imageExtensions = [".eps", ".gif", ".jpg", ".jpeg", ".pbm", ".png", ".tiff", ".xbm", ".xpm"]
976− isImageUrl = (`elem` imageExtensions) . takeExtension
974+ imageExtension = choice (try . string <$> imageExtensions)
977975
978976link :: PandocMonad m => MuseParser m (F Inlines)
979977link = try $ do
test/Tests/Readers/Muse.hs+3
@@ -194,6 +194,9 @@ tests =
194194 , "Image" =:
195195 "[[image.jpg]]" =?>
196196 para (image "image.jpg" "" mempty)
197+ , "Closing bracket is not allowed in image filename" =:
198+ "[[foo]bar.jpg]]" =?>
199+ para (text "[[foo]bar.jpg]]")
197200 , "Image with description" =:
198201 "[[image.jpg][Image]]" =?>
199202 para (image "image.jpg" "" (text "Image"))