@@ -32,6 +32,7 @@ and info messages.
3232module Text.Pandoc.Logging (
3333 Verbosity(..)
3434 , LogMessage(..)
35+ , logMessagesToJSON
3536 , showLogMessage
3637 , messageVerbosity
3738 ) where
@@ -43,6 +44,9 @@ import GHC.Generics (Generic)
4344import qualified Data.Text as Text
4445import Data.Aeson
4546import Text.Pandoc.Definition
47+import Data.Aeson.Encode.Pretty (encodePretty', keyOrder,
48+ defConfig, Config(..))
49+import qualified Data.ByteString.Lazy as BL
4650
4751-- | Verbosity level.
4852data Verbosity = ERROR | WARNING | INFO | DEBUG
@@ -152,6 +156,12 @@ showPos pos = sn ++ "line " ++
152156 then ""
153157 else sourceName pos ++ " "
154158
159+logMessagesToJSON :: [LogMessage] -> BL.ByteString
160+logMessagesToJSON ms =
161+ encodePretty' defConfig{ confCompare =
162+ keyOrder [ "type", "verbosity", "contents", "message", "path",
163+ "source", "line", "column" ] } ms
164+
155165showLogMessage :: LogMessage -> String
156166showLogMessage msg =
157167 case msg of