Safe Haskell | None |
---|---|
Language | Haskell98 |
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
- 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
- class RawJS a where
- 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 Source #
julius :: QuasiQuoter Source #
Datatypes
type JavascriptUrl url = (url -> [(Text, Text)] -> Text) -> Javascript Source #
Return type of template-reading functions.
newtype Javascript Source #
Newtype wrapper of Builder
.
Typeclass for interpolated variables
class ToJavascript a where Source #
A typeclass for types that can be interpolated in CoffeeScript templates.
toJavascript :: a -> Javascript Source #
rawJS :: a -> RawJavascript Source #
Rendering Functions
renderJavascript :: Javascript -> Text Source #
renderJavascriptUrl :: (url -> [(Text, Text)] -> Text) -> JavascriptUrl url -> Text Source #
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)] Source #
Determine which identifiers are used by the given template, useful for creating systems like yesod devel.
asJavascriptUrl :: JavascriptUrl url -> JavascriptUrl url Source #