Commit e9423828 authored by MMesch's avatar MMesch

json and vegalite are working

parent d6a5af4f
...@@ -8,11 +8,14 @@ module IHaskell.IPython.Message.Writer (ToJSON(..)) where ...@@ -8,11 +8,14 @@ module IHaskell.IPython.Message.Writer (ToJSON(..)) where
import Data.Aeson import Data.Aeson
import Data.Aeson.Types (Pair) import Data.Aeson.Types (Pair)
import Data.Aeson.Parser (json)
import Data.Map (Map) import Data.Map (Map)
import Data.Monoid (mempty) import Data.Monoid (mempty)
import Data.Text (Text, pack) import Data.Text (Text, pack)
import Data.Text.Encoding (encodeUtf8)
import qualified Data.Map as Map import qualified Data.Map as Map
import IHaskell.IPython.Types import IHaskell.IPython.Types
import Data.Maybe (fromMaybe)
instance ToJSON LanguageInfo where instance ToJSON LanguageInfo where
toJSON info = object toJSON info = object
...@@ -173,6 +176,12 @@ instance ToJSON StreamType where ...@@ -173,6 +176,12 @@ instance ToJSON StreamType where
-- | Convert a MIME type and value into a JSON dictionary pair. -- | Convert a MIME type and value into a JSON dictionary pair.
displayDataToJson :: DisplayData -> (Text, Value) displayDataToJson :: DisplayData -> (Text, Value)
displayDataToJson (DisplayData MimeJson dataStr) =
pack (show MimeJson) .= fromMaybe (String "") (decodeStrict (encodeUtf8 dataStr) :: Maybe Value)
displayDataToJson (DisplayData MimeVegalite dataStr) =
pack (show MimeVegalite) .= fromMaybe (String "") (decodeStrict (encodeUtf8 dataStr) :: Maybe Value)
displayDataToJson (DisplayData MimeVega dataStr) =
pack (show MimeVega) .= fromMaybe (String "") (decodeStrict (encodeUtf8 dataStr) :: Maybe Value)
displayDataToJson (DisplayData mimeType dataStr) = displayDataToJson (DisplayData mimeType dataStr) =
pack (show mimeType) .= String dataStr pack (show mimeType) .= String dataStr
......
...@@ -599,7 +599,7 @@ instance Show MimeType where ...@@ -599,7 +599,7 @@ instance Show MimeType where
show MimeJavascript = "application/javascript" show MimeJavascript = "application/javascript"
show MimeJson = "application/json" show MimeJson = "application/json"
show MimeVega = "application/vnd.vega.v2+json" show MimeVega = "application/vnd.vega.v2+json"
show MimeVegalite = "application/vnd.vegalite.v1+json" show MimeVegalite = "application/vnd.vegalite.v2+json"
show MimeVdom = "application/vdom.v1+json" show MimeVdom = "application/vdom.v1+json"
instance Read MimeType where instance Read MimeType where
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment