aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-03-09 14:17:21 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-03-09 14:27:34 -0800
commit873f342f1144111f79f9415abd3dc00d44a7a3c6 (patch)
tree86619a113dd88ec25cae98afe730ee5af746f99d /src/Text/Pandoc/Writers
parentbf4a164a6f832bbb8435c4021a6b019f8e1c29f7 (diff)
downloadpandoc-873f342f1144111f79f9415abd3dc00d44a7a3c6.tar.gz
Ipynb reader/writer: better handling of cell metadata.
We now handle even complex cell metadata in the Div's attributes. Simple metadata fields are rendered as a plain string, and complex ones as JSON.
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r--src/Text/Pandoc/Writers/Ipynb.hs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/Text/Pandoc/Writers/Ipynb.hs b/src/Text/Pandoc/Writers/Ipynb.hs
index 661f585f4..0babf7112 100644
--- a/src/Text/Pandoc/Writers/Ipynb.hs
+++ b/src/Text/Pandoc/Writers/Ipynb.hs
@@ -213,10 +213,9 @@ extractData bs = do
pairsToJSONMeta :: [(String, String)] -> JSONMeta
pairsToJSONMeta kvs =
- M.fromList [(T.pack k, case v of
- "true" -> Bool True
- "false" -> Bool False
- _ -> case safeRead v of
- Just n -> Number n
- _ -> String (T.pack v))
- | (k,v) <- kvs , k /= "execution_count" ]
+ M.fromList [(T.pack k, case Aeson.decode (UTF8.fromStringLazy v) of
+ Just val -> val
+ Nothing -> String (T.pack v))
+ | (k,v) <- kvs
+ , k /= "execution_count"
+ ]