From eae9be3a484b7046a9d8ca4eeca990b6a3719b0c Mon Sep 17 00:00:00 2001 From: Albert Krewinkel <albert@zeitkraut.de> Date: Sat, 1 Jan 2022 13:35:18 +0100 Subject: [PATCH] Org reader: allow trailing spaces after key/value pairs in directives Ensures that spaces at the end of attribute directives like `#+ATTR_HTML: :width 100%` (note the trailing spaces) are accepted. --- src/Text/Pandoc/Readers/Org/Blocks.hs | 5 ++--- test/Tests/Readers/Org/Inline.hs | 8 ++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs index 9a689b0e8..9fe68aa4c 100644 --- a/src/Text/Pandoc/Readers/Org/Blocks.hs +++ b/src/Text/Pandoc/Readers/Org/Blocks.hs @@ -167,9 +167,8 @@ keyValues = try $ value = skipSpaces *> manyTillChar anyChar endOfValue endOfValue :: Monad m => OrgParser m () - endOfValue = - lookAhead $ (() <$ try (many1 spaceChar <* key)) - <|> () <$ newline + endOfValue = lookAhead (void $ try (many1 spaceChar <* key)) + <|> try (skipSpaces <* lookAhead newline) -- diff --git a/test/Tests/Readers/Org/Inline.hs b/test/Tests/Readers/Org/Inline.hs index 111d74879..3b7dcac72 100644 --- a/test/Tests/Readers/Org/Inline.hs +++ b/test/Tests/Readers/Org/Inline.hs @@ -213,6 +213,14 @@ tests = ] =?> para (imageWith ("", [], [("width", "50%")]) "guinea-pig.gif" "" "") + , "HTML attributes can have trailing spaces" =: + T.unlines [ "#+attr_html: :width 100% :height 360px " + , "[[file:fireworks.jpg]]" + ] =?> + let kv = [("width", "100%"), ("height", "360px")] + in para (imageWith (mempty, mempty, kv) "fireworks.jpg" mempty mempty) + + , "Uppercase extension" =: "[[file:test.PNG]]" =?> para (image "test.PNG" "" "")