@@ -115,10 +115,14 @@ stringyMetaAttribute = try $ do
115 attrValue <- anyLine <|> ("" <$ newline)
115 attrValue <- anyLine <|> ("" <$ newline)
116 return (attrName, attrValue)
116 return (attrName, attrValue)
118+-- | Parse a set of block attributes. Block attributes are given through
119+-- lines like @#+CAPTION: block caption@ or @#+ATTR_HTML: :width 20@.
120+-- Parsing will fail if any line contains an attribute different from
121+-- those attributes known to work on blocks.
118blockAttributes :: PandocMonad m => OrgParser m BlockAttributes
122blockAttributes :: PandocMonad m => OrgParser m BlockAttributes
119blockAttributes = try $ do
123blockAttributes = try $ do
120 kv <- many stringyMetaAttribute
124 kv <- many stringyMetaAttribute
121− guard $ all (attrCheck . fst) kv
125+ guard $ all (isBlockAttr . fst) kv
122 let caption = foldl' (appendValues "CAPTION") Nothing kv
126 let caption = foldl' (appendValues "CAPTION") Nothing kv
123 let kvAttrs = foldl' (appendValues "ATTR_HTML") Nothing kv
127 let kvAttrs = foldl' (appendValues "ATTR_HTML") Nothing kv
124 let name = lookup "NAME" kv
128 let name = lookup "NAME" kv
@@ -134,8 +138,12 @@ blockAttributes = try $ do
134 , blockAttrKeyValues = kvAttrs'
138 , blockAttrKeyValues = kvAttrs'
137− attrCheck :: String -> Bool
141+ isBlockAttr :: String -> Bool
142+ isBlockAttr = flip elem
138− attrCheck x = x `elem` ["NAME", "LABEL", "CAPTION", "ATTR_HTML", "RESULTS"]
143+ [ "NAME", "LABEL", "CAPTION"
144+ , "ATTR_HTML", "ATTR_LATEX"
140 appendValues :: String -> Maybe String -> (String, String) -> Maybe String
148 appendValues :: String -> Maybe String -> (String, String) -> Maybe String
141 appendValues attrName accValue (key, value) =
149 appendValues attrName accValue (key, value) =