Commit 79db72cf authored by Andrew Gibiansky's avatar Andrew Gibiansky

Updates to Display for using Text. Now compiles and runs.

parent fb22bcf4
......@@ -11,7 +11,7 @@ import Data.Char (toLower)
import Data.List (partition)
import Data.Maybe (fromMaybe)
import qualified Data.Text.Lazy as T (pack, Text)
import IHaskell.Flags (Argument(ConvertFrom, ConvertFromFormat, ConvertLhsStyle, ConvertTo, ConvertToFormat, OverwriteFiles), LhsStyle, lhsStyleBird, NotebookFormat(..))
import IHaskell.Flags (Argument(..), LhsStyle, lhsStyleBird, NotebookFormat(..))
import System.FilePath ((<.>), dropExtension, takeExtension)
import Text.Printf (printf)
......@@ -93,7 +93,7 @@ mergeArg (ConvertTo outputFile) convertSpec
convertToIpynb = case (convertToIpynb convertSpec, fromExt outputFile) of
(prev, Nothing) -> prev
(prev @ (Just _), _) -> prev
(Nothing, format) -> fmap (== IPYNB) format
(Nothing, format) -> fmap (== IpynbFile) format
}
mergeArg unexpectedArg _ = error $ "IHaskell.Convert.mergeArg: impossible argument: "
......@@ -103,5 +103,5 @@ mergeArg unexpectedArg _ = error $ "IHaskell.Convert.mergeArg: impossible argume
fromExt :: FilePath -> Maybe NotebookFormat
fromExt s = case map toLower (takeExtension s) of
".lhs" -> Just LhsMarkdown
".ipynb" -> Just IPYNB
".ipynb" -> Just IpynbFile
_ -> Nothing
......@@ -11,14 +11,14 @@ module IHaskell.Display (
import ClassyPrelude
import Data.Serialize as Serialize
import Data.ByteString hiding (map)
import Data.ByteString hiding (map, pack)
import Data.String.Utils (rstrip)
import qualified Data.ByteString.Base64 as Base64
import qualified Data.ByteString.Char8 as Char
import IHaskell.Types
type Base64 = ByteString
type Base64 = Text
-- | A class for displayable Haskell types.
--
......@@ -59,19 +59,19 @@ many = ManyDisplay
-- | Generate a plain text display.
plain :: String -> DisplayData
plain = DisplayData PlainText . Char.pack . rstrip
plain = DisplayData PlainText . pack . rstrip
-- | Generate an HTML display.
html :: String -> DisplayData
html = DisplayData MimeHtml . Char.pack
html = DisplayData MimeHtml . pack
-- | Genreate an SVG display.
svg :: String -> DisplayData
svg = DisplayData MimeSvg . Char.pack
svg = DisplayData MimeSvg . pack
-- | Genreate a LaTeX display.
latex :: String -> DisplayData
latex = DisplayData MimeLatex . Char.pack
latex = DisplayData MimeLatex . pack
-- | Generate a PNG display of the given width and height. Data must be
-- provided in a Base64 encoded manner, suitable for embedding into HTML.
......@@ -91,7 +91,7 @@ encode64 str = base64 $ Char.pack str
-- | Convert from a ByteString into base 64 encoded data.
base64 :: ByteString -> Base64
base64 = Base64.encode
base64 = decodeUtf8 . Base64.encode
-- | For internal use within IHaskell.
-- Serialize displays to a ByteString.
......
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NoImplicitPrelude, DeriveFunctor #-}
module IHaskell.Flags (
IHaskellMode(..),
Argument(..),
......@@ -48,7 +48,7 @@ data LhsStyle string = LhsStyle
data NotebookFormat
= LhsMarkdown
| Ipynb
| IpynbFile
deriving (Eq,Show)
-- Which mode IHaskell is being invoked in.
......@@ -143,7 +143,7 @@ convert = mode "convert" (Args ConvertLhs []) description unnamedArg convertFlag
storeFormat constructor str (Args mode prev) = case toLower str of
"lhs" -> Right $ Args mode $ constructor LhsMarkdown : prev
"ipynb" -> Right $ Args mode $ constructor IPYNB : prev
"ipynb" -> Right $ Args mode $ constructor IpynbFile : prev
_ -> Left $ "Unknown format requested: " ++ str
storeLhs str previousArgs = case toLower str of
......
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