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