summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJasper Van der Jeugt <jaspervdj@gmail.com>2016-11-16 17:42:40 +0100
committerGitHub <noreply@github.com>2016-11-16 17:42:40 +0100
commit0382eee8c86fe31082b9ecd44c40170d2f910cd5 (patch)
treeaf85c9be7100bf753d08fddb1c46da6e57d0c390 /src
parente61d910ad88ea1ee3932a7b52007787370e2ed89 (diff)
parentf9f8603c323159510bc56e8d39d7cc0ae9ab3056 (diff)
downloadhakyll-0382eee8c86fe31082b9ecd44c40170d2f910cd5.tar.gz
Merge pull request #482 from nickie/fix-yaml-number
Fix integer fields in YAML metadata
Diffstat (limited to 'src')
-rw-r--r--src/Data/Yaml/Extended.hs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Data/Yaml/Extended.hs b/src/Data/Yaml/Extended.hs
index 099e945..c940ff7 100644
--- a/src/Data/Yaml/Extended.hs
+++ b/src/Data/Yaml/Extended.hs
@@ -7,12 +7,16 @@ module Data.Yaml.Extended
import qualified Data.Text as T
import qualified Data.Vector as V
import Data.Yaml
+import Data.Scientific
toString :: Value -> Maybe String
toString (String t) = Just (T.unpack t)
toString (Bool True) = Just "true"
toString (Bool False) = Just "false"
-toString (Number d) = Just (show d)
+-- | Make sure that numeric fields containing integer numbers are shown as
+-- | integers (i.e., "42" instead of "42.0").
+toString (Number d) | isInteger d = Just (formatScientific Fixed (Just 0) d)
+ | otherwise = Just (show d)
toString _ = Nothing
toList :: Value -> Maybe [Value]