Safe Haskell | None |
---|---|
Language | Haskell2010 |
Text.Julius
Description
A Shakespearean module for Javascript templates, introducing type-safe, compile-time variable and url interpolation.--
You might consider trying Typescript
or Coffee
which compile down to Javascript.
Further reading: http://www.yesodweb.com/book/shakespearean-templates
Synopsis
- js :: QuasiQuoter
- julius :: QuasiQuoter
- juliusFile :: FilePath -> Q Exp
- jsFile :: FilePath -> Q Exp
- juliusFileDebug :: FilePath -> Q Exp
- jsFileDebug :: FilePath -> Q Exp
- juliusFileReload :: FilePath -> Q Exp
- jsFileReload :: FilePath -> Q Exp
- type JavascriptUrl url = (url -> [(Text, Text)] -> Text) -> Javascript
- newtype Javascript = Javascript {}
- newtype RawJavascript = RawJavascript Builder
- class ToJavascript a where
- toJavascript :: a -> Javascript
- class RawJS a where
- rawJS :: a -> RawJavascript
- renderJavascript :: Javascript -> Text
- renderJavascriptUrl :: (url -> [(Text, Text)] -> Text) -> JavascriptUrl url -> Text
- javascriptSettings :: Q ShakespeareSettings
- juliusUsedIdentifiers :: String -> [(Deref, VarType)]
- asJavascriptUrl :: JavascriptUrl url -> JavascriptUrl url
Functions
Template-Reading Functions
These QuasiQuoter and Template Haskell methods return values of
type
. See the Yesod book for details.JavascriptUrl
url
js :: QuasiQuoter #
julius :: QuasiQuoter #
juliusFile :: FilePath -> Q Exp #
juliusFileDebug :: FilePath -> Q Exp #
Deprecated: Please use juliusFileReload instead.
jsFileDebug :: FilePath -> Q Exp #
Deprecated: Please use jsFileReload instead.
juliusFileReload :: FilePath -> Q Exp #
jsFileReload :: FilePath -> Q Exp #
Datatypes
type JavascriptUrl url = (url -> [(Text, Text)] -> Text) -> Javascript #
Return type of template-reading functions.
newtype Javascript #
Newtype wrapper of Builder
.
Constructors
Javascript | |
Fields |
Instances
Monoid Javascript # | |
Defined in Text.Julius Methods mempty :: Javascript # mappend :: Javascript -> Javascript -> Javascript # mconcat :: [Javascript] -> Javascript # | |
Semigroup Javascript # | |
Defined in Text.Julius Methods (<>) :: Javascript -> Javascript -> Javascript # sconcat :: NonEmpty Javascript -> Javascript # stimes :: Integral b => b -> Javascript -> Javascript # |
newtype RawJavascript #
Constructors
RawJavascript Builder |
Instances
ToJavascript RawJavascript # | |
Defined in Text.Julius Methods toJavascript :: RawJavascript -> Javascript # |
Typeclass for interpolated variables
class ToJavascript a where #
A typeclass for types that can be interpolated in CoffeeScript templates.
Methods
toJavascript :: a -> Javascript #
Instances
ToJavascript Value # | |
Defined in Text.Julius Methods toJavascript :: Value -> Javascript # | |
ToJavascript RawJavascript # | |
Defined in Text.Julius Methods toJavascript :: RawJavascript -> Javascript # | |
ToJavascript Text # | |
Defined in Text.Julius Methods toJavascript :: Text -> Javascript # | |
ToJavascript Text # | |
Defined in Text.Julius Methods toJavascript :: Text -> Javascript # | |
ToJavascript String # | |
Defined in Text.Julius Methods toJavascript :: String -> Javascript # | |
ToJavascript Bool # | |
Defined in Text.Julius Methods toJavascript :: Bool -> Javascript # |
Methods
rawJS :: a -> RawJavascript #
Instances
RawJS Text # | |
Defined in Text.Julius Methods rawJS :: Text -> RawJavascript # | |
RawJS Builder # | |
Defined in Text.Julius Methods rawJS :: Builder -> RawJavascript # | |
RawJS Text # | |
Defined in Text.Julius Methods rawJS :: Text -> RawJavascript # | |
RawJS Bool # | |
Defined in Text.Julius Methods rawJS :: Bool -> RawJavascript # | |
RawJS [Char] # | |
Defined in Text.Julius Methods rawJS :: [Char] -> RawJavascript # |
Rendering Functions
renderJavascript :: Javascript -> Text #
renderJavascriptUrl :: (url -> [(Text, Text)] -> Text) -> JavascriptUrl url -> Text #
render with route interpolation. If using this module standalone, apart from type-safe routes, a dummy renderer can be used:
renderJavascriptUrl (\_ _ -> undefined) javascriptUrl
When using Yesod, a renderer is generated for you, which can be accessed
within the GHandler monad: getUrlRenderParams
.
internal, used by Coffee
internal
juliusUsedIdentifiers :: String -> [(Deref, VarType)] #
Determine which identifiers are used by the given template, useful for creating systems like yesod devel.
asJavascriptUrl :: JavascriptUrl url -> JavascriptUrl url #