Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Suave a
- data SomeSuave where
- data Input a
- suavemente :: (a -> Markup) -> Suave a -> IO ()
- suavementely :: Map String SomeSuave -> IO ()
- textbox :: String -> String -> Suave String
- checkbox :: String -> Bool -> Suave Bool
- slider :: (ToMarkup a, Num a, FromJSON a) => String -> a -> a -> a -> Suave a
- realSlider :: (ToMarkup a, Num a, Real a, FromJSON a) => String -> a -> a -> a -> a -> Suave a
- dropdown :: (FromJSON a, ToMarkup a, Eq a) => String -> [(String, a)] -> a -> Suave a
- enumDropdown :: (FromJSON a, ToMarkup a, Enum a, Bounded a, Eq a) => String -> a -> Suave a
- colorPicker :: (Ord a, Floating a, RealFrac a) => String -> Colour a -> Suave (Colour a)
- mkInput :: (Value -> Parser a) -> (String -> a -> Markup) -> a -> Suave a
- showMarkup :: ToMarkup a => a -> String
- type Markup = MarkupM ()
- class ToMarkup a where
- toMarkup :: a -> Markup
- preEscapedToMarkup :: a -> Markup
- qc :: QuasiQuoter
- q :: QuasiQuoter
Primary Stuff
An applicative functor capable of getting input from an HTML page.
An existentialized Suave
.
An applicative functor can introduce new markup, and hook it up to the event stream.
suavemente :: (a -> Markup) -> Suave a -> IO () Source #
Run a Suave
computation by spinning up its webpage at localhost:8080
.
suavementely :: Map String SomeSuave -> IO () Source #
Run a Suave
computation by spinning up its webpage at localhost:8080
.
Inputs
Create an input driven by an HTML textbox.
Create an input driven by an HTML slider.
:: (ToMarkup a, Num a, Real a, FromJSON a) | |
=> String | label |
-> a | min |
-> a | max |
-> a | step |
-> a | initial value |
-> Suave a |
Create an input driven by an HTML slider, whose domain is the real numbers.
Create an input driven by an HTML select.
Create an input for enums driven by an HTML select.
Create an input driven by the HTML input, type=color.
Making New Inputs
:: (Value -> Parser a) | |
-> (String -> a -> Markup) | Function to construct the HTML element. The first parameter is what should be used for the element's |
-> a | The input's initial value. |
-> Suave a |
Constructor for building Suave
inputs that are backed by HTML elements.
showMarkup :: ToMarkup a => a -> String Source #
Get a String
representation of a markup-able type. Useful for
constructing elements via quasiquotation.
Reexports
Class allowing us to use a single function for Markup values
Convert a value to Markup.
preEscapedToMarkup :: a -> Markup #
Convert a value to Markup without escaping
Instances
ToMarkup Bool | |
Defined in Text.Blaze | |
ToMarkup Char | |
Defined in Text.Blaze | |
ToMarkup Double | |
Defined in Text.Blaze | |
ToMarkup Float | |
Defined in Text.Blaze | |
ToMarkup Int | |
Defined in Text.Blaze | |
ToMarkup Int32 | |
Defined in Text.Blaze | |
ToMarkup Int64 | |
Defined in Text.Blaze | |
ToMarkup Integer | |
Defined in Text.Blaze | |
ToMarkup Natural | |
Defined in Text.Blaze | |
ToMarkup Word | |
Defined in Text.Blaze | |
ToMarkup Word32 | |
Defined in Text.Blaze | |
ToMarkup Word64 | |
Defined in Text.Blaze | |
ToMarkup String | |
Defined in Text.Blaze | |
ToMarkup Builder | |
Defined in Text.Blaze | |
ToMarkup Text | |
Defined in Text.Blaze | |
ToMarkup Text | |
Defined in Text.Blaze | |
ToMarkup Markup | |
Defined in Text.Blaze | |
ToMarkup [Markup] | |
Defined in Text.Blaze |
qc :: QuasiQuoter #
QuasiQuoter for interpolating '{expr}' into a string literal. The pattern portion is undefined.
q :: QuasiQuoter #
QuasiQuoter for a non-interpolating string literal. The pattern portion is undefined.