@@ -45,7 +45,8 @@ import Text.Pandoc.Options (WriterOptions(..))
4545import qualified Data.HashMap.Strict as H
4646import qualified Data.Map as M
4747import qualified Data.Text as T
48−import Data.Aeson (FromJSON(..), fromJSON, ToJSON (..), Value(Object), Result(..))
48+import Data.Aeson (FromJSON(..), fromJSON, ToJSON (..), Value(Object), Result(..), encode)
49+import Text.Pandoc.UTF8 (toStringLazy)
4950import qualified Data.Traversable as Traversable
5051import Data.List ( groupBy )
5152
@@ -67,7 +68,8 @@ metaToJSON opts blockWriter inlineWriter (Meta metamap)
6768 renderedMap <- Traversable.mapM
6869 (metaValueToJSON blockWriter inlineWriter)
6970 metamap
70− return $ M.foldWithKey defField baseContext renderedMap
71+ let metadata = M.foldWithKey defField baseContext renderedMap
72+ return $ defField "meta-json" (toStringLazy $ encode metadata) metadata
7173 | otherwise = return (Object H.empty)
7274
7375metaValueToJSON :: Monad m