@@ -301,6 +301,14 @@ toMetaValue x =
301301 -- not end in a newline, but a "block" set off with
302302 -- `|` or `>` will.
303303
304+checkBoolean :: Text -> Maybe Bool
305+checkBoolean t =
306+ if t == T.pack "true" || t == T.pack "True" || t == T.pack "TRUE"
307+ then Just True
308+ else if t == T.pack "false" || t == T.pack "False" || t == T.pack "FALSE"
309+ then Just False
310+ else Nothing
311+
304312yamlToMeta :: PandocMonad m
305313 => YAML.Node -> MarkdownParser m (F MetaValue)
306314yamlToMeta (YAML.Scalar x) =
@@ -309,7 +317,10 @@ yamlToMeta (YAML.Scalar x) =
309317 YAML.SBool b -> return $ return $ MetaBool b
310318 YAML.SFloat d -> return $ return $ MetaString (show d)
311319 YAML.SInt i -> return $ return $ MetaString (show i)
312− YAML.SUnknown _ t -> toMetaValue t
320+ YAML.SUnknown _ t ->
321+ case checkBoolean t of
322+ Just b -> return $ return $ MetaBool b
323+ Nothing -> toMetaValue t
313324 YAML.SNull -> return $ return $ MetaString ""
314325yamlToMeta (YAML.Sequence _ xs) = do
315326 xs' <- mapM yamlToMeta xs