@@ -117,6 +117,7 @@ import Text.Blaze (preEscapedText, Html)
118import Data.ByteString.Lazy (ByteString, fromChunks)
118import Data.ByteString.Lazy (ByteString, fromChunks)
119import Text.Pandoc.Shared (readDataFileUTF8)
119import Text.Pandoc.Shared (readDataFileUTF8)
120+import Data.Vector ((!?))
121-- | Get default template for the specified writer.
122-- | Get default template for the specified writer.
122getDefaultTemplate :: (Maybe FilePath) -- ^ User data directory to search first
123getDefaultTemplate :: (Maybe FilePath) -- ^ User data directory to search first
@@ -185,7 +186,7 @@ var = Template . resolveVar
185resolveVar :: Variable -> Value -> Text
186resolveVar :: Variable -> Value -> Text
186resolveVar var' val =
187resolveVar var' val =
187 case multiLookup var' val of
188 case multiLookup var' val of
188− Just (Array vec) -> mconcat $ map (resolveVar []) $ toList vec
189+ Just (Array vec) -> maybe mempty (resolveVar []) $ vec !? 0
189 Just (String t) -> T.stripEnd t
190 Just (String t) -> T.stripEnd t
190 Just (Number n) -> T.pack $ show n
191 Just (Number n) -> T.pack $ show n
191 Just (Bool True) -> "true"
192 Just (Bool True) -> "true"