aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2019-07-21 23:06:17 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2019-07-22 08:12:22 +0200
commit63c65c89da7fa54c96199cf88bf1769b7088c1ec (patch)
tree656f57a2b47160a4438ffc7ee4d4579b76df1de1 /src/Text
parent91d4283263cc648efdd41e8c391477dd962db8ce (diff)
downloadpandoc-63c65c89da7fa54c96199cf88bf1769b7088c1ec.tar.gz
Org reader: accept ATTR_LATEX in block attributes
Attributes for LaTeX output are accepted as valid block attributes; however, their values are ignored. Fixes: #5648
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Readers/Org/Blocks.hs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs
index 46ddc4257..8ee9c025d 100644
--- a/src/Text/Pandoc/Readers/Org/Blocks.hs
+++ b/src/Text/Pandoc/Readers/Org/Blocks.hs
@@ -115,10 +115,14 @@ stringyMetaAttribute = try $ do
attrValue <- anyLine <|> ("" <$ newline)
return (attrName, attrValue)
+-- | Parse a set of block attributes. Block attributes are given through
+-- lines like @#+CAPTION: block caption@ or @#+ATTR_HTML: :width 20@.
+-- Parsing will fail if any line contains an attribute different from
+-- those attributes known to work on blocks.
blockAttributes :: PandocMonad m => OrgParser m BlockAttributes
blockAttributes = try $ do
kv <- many stringyMetaAttribute
- guard $ all (attrCheck . fst) kv
+ guard $ all (isBlockAttr . fst) kv
let caption = foldl' (appendValues "CAPTION") Nothing kv
let kvAttrs = foldl' (appendValues "ATTR_HTML") Nothing kv
let name = lookup "NAME" kv
@@ -134,8 +138,12 @@ blockAttributes = try $ do
, blockAttrKeyValues = kvAttrs'
}
where
- attrCheck :: String -> Bool
- attrCheck x = x `elem` ["NAME", "LABEL", "CAPTION", "ATTR_HTML", "RESULTS"]
+ isBlockAttr :: String -> Bool
+ isBlockAttr = flip elem
+ [ "NAME", "LABEL", "CAPTION"
+ , "ATTR_HTML", "ATTR_LATEX"
+ , "RESULTS"
+ ]
appendValues :: String -> Maybe String -> (String, String) -> Maybe String
appendValues attrName accValue (key, value) =