@@ -33,6 +33,7 @@ module Text.Pandoc.Readers.Markdown ( readMarkdown,
3333
3434import Data.List ( transpose, sortBy, findIndex, intersperse, intercalate )
3535import qualified Data.Map as M
36+import Data.Scientific (coefficient, base10Exponent)
3637import Data.Ord ( comparing )
3738import Data.Char ( isAlphaNum, toLower )
3839import Data.Maybe
@@ -285,7 +286,11 @@ toMetaValue opts x =
285286
286287yamlToMeta :: ReaderOptions -> Yaml.Value -> MetaValue
287288yamlToMeta opts (Yaml.String t) = toMetaValue opts t
288−yamlToMeta _ (Yaml.Number n) = MetaString $ show n
289+yamlToMeta _ (Yaml.Number n)
290+ -- avoid decimal points for numbers that don't need them:
291+ | base10Exponent n >= 0 = MetaString $ show
292+ $ coefficient n * (10 ^ base10Exponent n)
293+ | otherwise = MetaString $ show n
289294yamlToMeta _ (Yaml.Bool b) = MetaBool b
290295yamlToMeta opts (Yaml.Array xs) = B.toMetaValue $ map (yamlToMeta opts)
291296 $ V.toList xs