git.iko.soy/typeable/pandoc
on master help sign in
ipynb reader: avoid introducing spurious `.0` on integers in metadata.
2138ef8John MacFarlane
pandoc.cabal+1
@@ -375,6 +375,7 @@ library
375 random >= 1 && < 1.2,
375 random >= 1 && < 1.2,
376 pandoc-types >= 1.17.5 && < 1.18,
376 pandoc-types >= 1.17.5 && < 1.18,
377 aeson >= 0.7 && < 1.5,
377 aeson >= 0.7 && < 1.5,
378+ scientific >= 0.3 && < 0.4,
378 aeson-pretty >= 0.8.5 && < 0.9,
379 aeson-pretty >= 0.8.5 && < 0.9,
379 tagsoup >= 0.14.6 && < 0.15,
380 tagsoup >= 0.14.6 && < 0.15,
380 base64-bytestring >= 0.1 && < 1.1,
381 base64-bytestring >= 0.1 && < 1.1,
src/Text/Pandoc/Readers/Ipynb.hs+4−1
@@ -23,6 +23,7 @@ import Data.List (isPrefixOf)
23import Data.Maybe (fromMaybe)
23import Data.Maybe (fromMaybe)
24import Data.Digest.Pure.SHA (sha1, showDigest)
24import Data.Digest.Pure.SHA (sha1, showDigest)
25import Text.Pandoc.Options
25import Text.Pandoc.Options
26+import qualified Data.Scientific as Scientific
26import qualified Text.Pandoc.Builder as B
27import qualified Text.Pandoc.Builder as B
27import Text.Pandoc.Logging
28import Text.Pandoc.Logging
28import Text.Pandoc.Definition
29import Text.Pandoc.Definition
@@ -209,7 +210,9 @@ jsonMetaToMeta = M.mapKeys T.unpack . M.map valueToMetaValue
209 Success xs -> MetaList $ map valueToMetaValue xs
210 Success xs -> MetaList $ map valueToMetaValue xs
210 valueToMetaValue (Bool b) = MetaBool b
211 valueToMetaValue (Bool b) = MetaBool b
211 valueToMetaValue (String t) = MetaString (T.unpack t)
212 valueToMetaValue (String t) = MetaString (T.unpack t)
212− valueToMetaValue (Number n) = MetaString (show n)
213+ valueToMetaValue (Number n)
214+ | Scientific.isInteger n = MetaString (show (floor n :: Integer))
215+ | otherwise = MetaString (show n)
213 valueToMetaValue Aeson.Null = MetaString ""
216 valueToMetaValue Aeson.Null = MetaString ""
214
217
215jsonMetaToPairs :: JSONMeta -> [(String, String)]
218jsonMetaToPairs :: JSONMeta -> [(String, String)]