Safe Haskell | None |
---|---|
Language | Haskell98 |
Yesod.Core.Widget
Contents
Description
Widgets combine HTML with JS and CSS dependencies with a unique identifier generator, allowing you to create truly modular HTML components.
Synopsis
- type WidgetT site (m :: * -> *) = WidgetFor site
- data WidgetFor site a
- data PageContent url = PageContent {}
- whamlet :: QuasiQuoter
- whamletFile :: FilePath -> Q Exp
- ihamletToRepHtml :: (MonadHandler m, RenderMessage (HandlerSite m) message) => HtmlUrlI18n message (Route (HandlerSite m)) -> m Html
- ihamletToHtml :: (MonadHandler m, RenderMessage (HandlerSite m) message) => HtmlUrlI18n message (Route (HandlerSite m)) -> m Html
- class ToWidget site a where
- toWidget :: (MonadWidget m, HandlerSite m ~ site) => a -> m ()
- class ToWidgetHead site a where
- toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => a -> m ()
- class ToWidgetBody site a where
- toWidgetBody :: (MonadWidget m, HandlerSite m ~ site) => a -> m ()
- class ToWidgetMedia site a where
- toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> a -> m ()
- setTitle :: MonadWidget m => Html -> m ()
- setTitleI :: (MonadWidget m, RenderMessage (HandlerSite m) msg) => msg -> m ()
- addStylesheet :: MonadWidget m => Route (HandlerSite m) -> m ()
- addStylesheetAttrs :: MonadWidget m => Route (HandlerSite m) -> [(Text, Text)] -> m ()
- addStylesheetRemote :: MonadWidget m => Text -> m ()
- addStylesheetRemoteAttrs :: MonadWidget m => Text -> [(Text, Text)] -> m ()
- addStylesheetEither :: MonadWidget m => Either (Route (HandlerSite m)) Text -> m ()
- newtype CssBuilder = CssBuilder {
- unCssBuilder :: Builder
- addScript :: MonadWidget m => Route (HandlerSite m) -> m ()
- addScriptAttrs :: MonadWidget m => Route (HandlerSite m) -> [(Text, Text)] -> m ()
- addScriptRemote :: MonadWidget m => Text -> m ()
- addScriptRemoteAttrs :: MonadWidget m => Text -> [(Text, Text)] -> m ()
- addScriptEither :: MonadWidget m => Either (Route (HandlerSite m)) Text -> m ()
- handlerToWidget :: HandlerFor site a -> WidgetFor site a
- whamletFileWithSettings :: HamletSettings -> FilePath -> Q Exp
- asWidgetT :: WidgetT site m () -> WidgetT site m ()
Datatype
data WidgetFor site a Source #
A generic widget, allowing specification of both the subsite and master
site datatypes. While this is simply a WriterT
, we define a newtype for
better error messages.
Instances
(site' ~ site, a ~ ()) => ToWidget site' (WidgetFor site a) Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site') => WidgetFor site a -> m () Source # | |
Monad (WidgetFor site) Source # | |
Functor (WidgetFor site) Source # | |
Applicative (WidgetFor site) Source # | |
Defined in Yesod.Core.Types | |
MonadIO (WidgetFor site) Source # | |
Defined in Yesod.Core.Types | |
MonadLogger (WidgetFor site) Source # | |
Defined in Yesod.Core.Types Methods monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> WidgetFor site () | |
MonadLoggerIO (WidgetFor site) Source # | |
Defined in Yesod.Core.Types Methods askLoggerIO :: WidgetFor site (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) | |
MonadThrow (WidgetFor site) Source # | |
Defined in Yesod.Core.Types | |
MonadResource (WidgetFor site) Source # | |
Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> WidgetFor site a # | |
MonadUnliftIO (WidgetFor site) Source # | Since: 1.4.38 |
Defined in Yesod.Core.Types Methods askUnliftIO :: WidgetFor site (UnliftIO (WidgetFor site)) # withRunInIO :: ((forall a. WidgetFor site a -> IO a) -> IO b) -> WidgetFor site b # | |
PrimMonad (WidgetFor site) Source # | Since: 1.6.7 |
MonadWidget (WidgetFor site) Source # | |
Defined in Yesod.Core.Class.Handler Methods liftWidget :: WidgetFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a Source # | |
MonadHandler (WidgetFor site) Source # | |
Defined in Yesod.Core.Class.Handler Associated Types type HandlerSite (WidgetFor site) :: Type Source # type SubHandlerSite (WidgetFor site) :: Type Source # Methods liftHandler :: HandlerFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a Source # liftSubHandler :: SubHandlerFor (SubHandlerSite (WidgetFor site)) (HandlerSite (WidgetFor site)) a -> WidgetFor site a Source # | |
MonadReader (WidgetData site) (WidgetFor site) Source # | |
Defined in Yesod.Core.Types Methods ask :: WidgetFor site (WidgetData site) local :: (WidgetData site -> WidgetData site) -> WidgetFor site a -> WidgetFor site a reader :: (WidgetData site -> a) -> WidgetFor site a | |
a ~ () => IsString (WidgetFor site a) Source # | A For example, in a yesod-scaffold site you could use: getHomeR = do defaultLayout "Widget text" |
Defined in Yesod.Core.Types Methods fromString :: String -> WidgetFor site a | |
a ~ () => Semigroup (WidgetFor site a) Source # | |
a ~ () => Monoid (WidgetFor site a) Source # | |
type PrimState (WidgetFor site) Source # | |
Defined in Yesod.Core.Types type PrimState (WidgetFor site) = PrimState IO | |
type HandlerSite (WidgetFor site) Source # | |
Defined in Yesod.Core.Class.Handler | |
type SubHandlerSite (WidgetFor site) Source # | |
Defined in Yesod.Core.Class.Handler |
data PageContent url Source #
Content for a web page. By providing this datatype, we can easily create generic site templates, which would have the type signature:
PageContent url -> HtmlUrl url
Special Hamlet quasiquoter/TH for Widgets
whamletFile :: FilePath -> Q Exp Source #
ihamletToRepHtml :: (MonadHandler m, RenderMessage (HandlerSite m) message) => HtmlUrlI18n message (Route (HandlerSite m)) -> m Html Source #
ihamletToHtml :: (MonadHandler m, RenderMessage (HandlerSite m) message) => HtmlUrlI18n message (Route (HandlerSite m)) -> m Html Source #
Convert to Widget
class ToWidget site a where Source #
Methods
toWidget :: (MonadWidget m, HandlerSite m ~ site) => a -> m () Source #
Instances
ToWidget site Builder Source # | Since: 1.4.28 |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => Builder -> m () Source # | |
ToWidget site Text Source # | Since: 1.4.28 |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => Text -> m () Source # | |
ToWidget site Text Source # | Since: 1.4.28 |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => Text -> m () Source # | |
ToWidget site Html Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => Html -> m () Source # | |
ToWidget site Javascript Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => Javascript -> m () Source # | |
ToWidget site CssBuilder Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => CssBuilder -> m () Source # | |
ToWidget site Css Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => Css -> m () Source # | |
(site' ~ site, a ~ ()) => ToWidget site' (WidgetFor site a) Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site') => WidgetFor site a -> m () Source # | |
render ~ RY site => ToWidget site (render -> Javascript) Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => (render -> Javascript) -> m () Source # | |
render ~ RY site => ToWidget site (render -> CssBuilder) Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => (render -> CssBuilder) -> m () Source # | |
render ~ RY site => ToWidget site (render -> Css) Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => (render -> Css) -> m () Source # | |
render ~ RY site => ToWidget site (render -> Html) Source # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => (render -> Html) -> m () Source # |
class ToWidgetHead site a where Source #
Methods
toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => a -> m () Source #
Instances
ToWidgetHead site Html Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => Html -> m () Source # | |
ToWidgetHead site Javascript Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => Javascript -> m () Source # | |
ToWidgetHead site CssBuilder Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => CssBuilder -> m () Source # | |
ToWidgetHead site Css Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => Css -> m () Source # | |
render ~ RY site => ToWidgetHead site (render -> Javascript) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => (render -> Javascript) -> m () Source # | |
render ~ RY site => ToWidgetHead site (render -> CssBuilder) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => (render -> CssBuilder) -> m () Source # | |
render ~ RY site => ToWidgetHead site (render -> Css) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => (render -> Css) -> m () Source # | |
render ~ RY site => ToWidgetHead site (render -> Html) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => (render -> Html) -> m () Source # |
class ToWidgetBody site a where Source #
Methods
toWidgetBody :: (MonadWidget m, HandlerSite m ~ site) => a -> m () Source #
Instances
ToWidgetBody site Html Source # | |
Defined in Yesod.Core.Widget Methods toWidgetBody :: (MonadWidget m, HandlerSite m ~ site) => Html -> m () Source # | |
ToWidgetBody site Javascript Source # | |
Defined in Yesod.Core.Widget Methods toWidgetBody :: (MonadWidget m, HandlerSite m ~ site) => Javascript -> m () Source # | |
render ~ RY site => ToWidgetBody site (render -> Javascript) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetBody :: (MonadWidget m, HandlerSite m ~ site) => (render -> Javascript) -> m () Source # | |
render ~ RY site => ToWidgetBody site (render -> Html) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetBody :: (MonadWidget m, HandlerSite m ~ site) => (render -> Html) -> m () Source # |
class ToWidgetMedia site a where Source #
Allows adding some CSS to the page with a specific media type.
Since 1.2
Methods
Arguments
:: (MonadWidget m, HandlerSite m ~ site) | |
=> Text | media value |
-> a | |
-> m () |
Add the given content to the page, but only for the given media type.
Since 1.2
Instances
ToWidgetMedia site CssBuilder Source # | |
Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> CssBuilder -> m () Source # | |
ToWidgetMedia site Css Source # | |
Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> Css -> m () Source # | |
render ~ RY site => ToWidgetMedia site (render -> CssBuilder) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> (render -> CssBuilder) -> m () Source # | |
render ~ RY site => ToWidgetMedia site (render -> Css) Source # | |
Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> (render -> Css) -> m () Source # |
Creating
Head of page
setTitle :: MonadWidget m => Html -> m () Source #
Set the page title. Calling setTitle
multiple times overrides previously
set values.
setTitleI :: (MonadWidget m, RenderMessage (HandlerSite m) msg) => msg -> m () Source #
Set the page title. Calling setTitle
multiple times overrides previously
set values.
CSS
addStylesheet :: MonadWidget m => Route (HandlerSite m) -> m () Source #
Link to the specified local stylesheet.
addStylesheetAttrs :: MonadWidget m => Route (HandlerSite m) -> [(Text, Text)] -> m () Source #
Link to the specified local stylesheet.
addStylesheetRemote :: MonadWidget m => Text -> m () Source #
Link to the specified remote stylesheet.
addStylesheetRemoteAttrs :: MonadWidget m => Text -> [(Text, Text)] -> m () Source #
Link to the specified remote stylesheet.
addStylesheetEither :: MonadWidget m => Either (Route (HandlerSite m)) Text -> m () Source #
newtype CssBuilder Source #
Newtype wrapper allowing injection of arbitrary content into CSS.
Usage:
toWidget $ CssBuilder "p { color: red }"
Since: 1.1.3
Constructors
CssBuilder | |
Fields
|
Instances
Javascript
addScript :: MonadWidget m => Route (HandlerSite m) -> m () Source #
Link to the specified local script.
addScriptAttrs :: MonadWidget m => Route (HandlerSite m) -> [(Text, Text)] -> m () Source #
Link to the specified local script.
addScriptRemote :: MonadWidget m => Text -> m () Source #
Link to the specified remote script.
addScriptRemoteAttrs :: MonadWidget m => Text -> [(Text, Text)] -> m () Source #
Link to the specified remote script.
addScriptEither :: MonadWidget m => Either (Route (HandlerSite m)) Text -> m () Source #
Subsites
handlerToWidget :: HandlerFor site a -> WidgetFor site a Source #
Internal
whamletFileWithSettings :: HamletSettings -> FilePath -> Q Exp Source #