From 124551461cb9bc46e4387dbcd8ac4ebf3eae6d22 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sat, 25 Feb 2017 23:42:56 +0100
Subject: [PATCH] Fixed addVariablesToJSON.

It was previously not allowing multiple values to become lists.
---
 src/Text/Pandoc/Writers/Shared.hs | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/Text/Pandoc/Writers/Shared.hs b/src/Text/Pandoc/Writers/Shared.hs
index a9431a920..991ce5437 100644
--- a/src/Text/Pandoc/Writers/Shared.hs
+++ b/src/Text/Pandoc/Writers/Shared.hs
@@ -89,9 +89,12 @@ metaToJSON' blockWriter inlineWriter (Meta metamap) = do
 -- of the original JSON object itself, prior to addition of variables.
 addVariablesToJSON :: WriterOptions -> Value -> Value
 addVariablesToJSON opts metadata =
-  foldl (\acc (x,y) -> resetField x y acc)
-       (defField "meta-json" (toStringLazy $ encode metadata) metadata)
+  foldl (\acc (x,y) -> setField x y acc)
+       (defField "meta-json" (toStringLazy $ encode metadata) (Object mempty))
        (writerVariables opts)
+    `combineMetadata` metadata
+  where combineMetadata (Object o1) (Object o2) = Object $ H.union o1 o2
+        combineMetadata x _           = x
 
 metaValueToJSON :: Monad m
                 => ([Block] -> m String)