shakespeare-2.1.0.1: A toolkit for making compile-time interpolated templates
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Functions

Template-Reading Functions

These QuasiQuoter and Template Haskell methods return values of type JavascriptUrl url. See the Yesod book for details.

js :: QuasiQuoter #

julius :: QuasiQuoter #

juliusFile :: FilePath -> Q Exp #

jsFile :: 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

Instances details
Monoid Javascript # 
Instance details

Defined in Text.Julius

Semigroup Javascript # 
Instance details

Defined in Text.Julius

Methods

(<>) :: Javascript -> Javascript -> Javascript

sconcat :: NonEmpty Javascript -> Javascript

stimes :: Integral b => b -> Javascript -> Javascript

newtype RawJavascript #

Constructors

RawJavascript Builder 

Instances

Instances details
ToJavascript RawJavascript # 
Instance details

Defined in Text.Julius

Typeclass for interpolated variables

class ToJavascript a where #

A typeclass for types that can be interpolated in CoffeeScript templates.

Methods

toJavascript :: a -> Javascript #

Instances

Instances details
ToJavascript Value # 
Instance details

Defined in Text.Julius

ToJavascript RawJavascript # 
Instance details

Defined in Text.Julius

ToJavascript Text # 
Instance details

Defined in Text.Julius

Methods

toJavascript :: Text -> Javascript #

ToJavascript Text # 
Instance details

Defined in Text.Julius

Methods

toJavascript :: Text -> Javascript #

ToJavascript String # 
Instance details

Defined in Text.Julius

Methods

toJavascript :: String -> Javascript #

ToJavascript Bool # 
Instance details

Defined in Text.Julius

Methods

toJavascript :: Bool -> Javascript #

class RawJS a where #

Methods

rawJS :: a -> RawJavascript #

Instances

Instances details
RawJS Text # 
Instance details

Defined in Text.Julius

Methods

rawJS :: Text -> RawJavascript #

RawJS Builder # 
Instance details

Defined in Text.Julius

Methods

rawJS :: Builder -> RawJavascript #

RawJS Text # 
Instance details

Defined in Text.Julius

Methods

rawJS :: Text -> RawJavascript #

RawJS Bool # 
Instance details

Defined in Text.Julius

Methods

rawJS :: Bool -> RawJavascript #

RawJS [Char] # 
Instance details

Defined in Text.Julius

Methods

rawJS :: [Char] -> RawJavascript #

Rendering Functions

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.