separate yesod-shakespeare package
This commit is contained in:
parent
11bf4d9c58
commit
10680f5108
@ -1,4 +1,5 @@
|
|||||||
./yesod-core
|
./yesod-core
|
||||||
|
./yesod-shakespeare
|
||||||
./yesod-static
|
./yesod-static
|
||||||
./yesod-persistent
|
./yesod-persistent
|
||||||
./yesod-newsfeed
|
./yesod-newsfeed
|
||||||
|
|||||||
@ -13,5 +13,6 @@ packages:
|
|||||||
- ./yesod
|
- ./yesod
|
||||||
- ./yesod-eventsource
|
- ./yesod-eventsource
|
||||||
- ./yesod-websockets
|
- ./yesod-websockets
|
||||||
|
- ./yesod-shakespeare
|
||||||
extra-deps:
|
extra-deps:
|
||||||
- wai-app-static-3.1.0
|
- wai-app-static-3.1.0
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import Web.Authenticate.OAuth
|
|||||||
import Yesod.Auth
|
import Yesod.Auth
|
||||||
import Yesod.Form
|
import Yesod.Form
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
|
|
||||||
data YesodOAuthException = CredentialError String Credential
|
data YesodOAuthException = CredentialError String Credential
|
||||||
| SessionError String
|
| SessionError String
|
||||||
|
|||||||
@ -24,6 +24,7 @@ library
|
|||||||
build-depends: authenticate-oauth >= 1.5 && < 1.6
|
build-depends: authenticate-oauth >= 1.5 && < 1.6
|
||||||
, bytestring >= 0.9.1.4
|
, bytestring >= 0.9.1.4
|
||||||
, yesod-core >= 1.4 && < 1.5
|
, yesod-core >= 1.4 && < 1.5
|
||||||
|
, yesod-shakespeare >= 1.5 && < 1.6
|
||||||
, yesod-auth >= 1.4 && < 1.5
|
, yesod-auth >= 1.4 && < 1.5
|
||||||
, text >= 0.7
|
, text >= 0.7
|
||||||
, yesod-form >= 1.4 && < 1.5
|
, yesod-form >= 1.4 && < 1.5
|
||||||
|
|||||||
@ -63,6 +63,7 @@ import qualified Network.Wai as W
|
|||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Persist
|
import Yesod.Persist
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Yesod.Auth.Message (AuthMessage, defaultMessage)
|
import Yesod.Auth.Message (AuthMessage, defaultMessage)
|
||||||
import qualified Yesod.Auth.Message as Msg
|
import qualified Yesod.Auth.Message as Msg
|
||||||
import Yesod.Form (FormMessage)
|
import Yesod.Form (FormMessage)
|
||||||
|
|||||||
@ -61,6 +61,7 @@ import Data.Text.Encoding (encodeUtf8, decodeUtf8With)
|
|||||||
import Data.Text.Encoding.Error (lenientDecode)
|
import Data.Text.Encoding.Error (lenientDecode)
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import qualified Yesod.PasswordStore as PS
|
import qualified Yesod.PasswordStore as PS
|
||||||
import qualified Text.Email.Validate
|
import qualified Text.Email.Validate
|
||||||
import qualified Yesod.Auth.Message as Msg
|
import qualified Yesod.Auth.Message as Msg
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import Yesod.Auth
|
|||||||
import qualified Web.Authenticate.OpenId as OpenId
|
import qualified Web.Authenticate.OpenId as OpenId
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import qualified Yesod.Auth.Message as Msg
|
import qualified Yesod.Auth.Message as Msg
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
|
|||||||
@ -83,8 +83,9 @@ import Yesod.Core (HandlerSite, MonadHandler,
|
|||||||
getYesod, invalidArgs, lift,
|
getYesod, invalidArgs, lift,
|
||||||
lookupGetParam,
|
lookupGetParam,
|
||||||
lookupSession, notFound, redirect,
|
lookupSession, notFound, redirect,
|
||||||
setSession, whamlet, (.:),
|
setSession, (.:),
|
||||||
TypedContent, HandlerT, liftIO)
|
TypedContent, HandlerT, liftIO)
|
||||||
|
import Yesod.Shakespeare (whamlet)
|
||||||
|
|
||||||
pid :: Text
|
pid :: Text
|
||||||
pid = "googleemail2"
|
pid = "googleemail2"
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import qualified Web.Authenticate.OpenId as OpenId
|
|||||||
|
|
||||||
import Yesod.Form
|
import Yesod.Form
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Text.Cassius (cassius)
|
import Text.Cassius (cassius)
|
||||||
import Data.Text (Text, isPrefixOf)
|
import Data.Text (Text, isPrefixOf)
|
||||||
import qualified Yesod.Auth.Message as Msg
|
import qualified Yesod.Auth.Message as Msg
|
||||||
|
|||||||
@ -24,6 +24,7 @@ library
|
|||||||
, authenticate >= 1.3
|
, authenticate >= 1.3
|
||||||
, bytestring >= 0.9.1.4
|
, bytestring >= 0.9.1.4
|
||||||
, yesod-core >= 1.4 && < 1.5
|
, yesod-core >= 1.4 && < 1.5
|
||||||
|
, yesod-shakespeare >= 1.5 && < 1.6
|
||||||
, wai >= 1.4
|
, wai >= 1.4
|
||||||
, template-haskell
|
, template-haskell
|
||||||
, base16-bytestring
|
, base16-bytestring
|
||||||
|
|||||||
@ -3,8 +3,6 @@ module YesodCoreTest (specs) where
|
|||||||
|
|
||||||
import YesodCoreTest.CleanPath
|
import YesodCoreTest.CleanPath
|
||||||
import YesodCoreTest.Exceptions
|
import YesodCoreTest.Exceptions
|
||||||
import YesodCoreTest.Widget
|
|
||||||
import YesodCoreTest.Media
|
|
||||||
import YesodCoreTest.Links
|
import YesodCoreTest.Links
|
||||||
import YesodCoreTest.NoOverloadedStrings
|
import YesodCoreTest.NoOverloadedStrings
|
||||||
import YesodCoreTest.InternalRequest
|
import YesodCoreTest.InternalRequest
|
||||||
@ -28,8 +26,6 @@ specs :: Spec
|
|||||||
specs = do
|
specs = do
|
||||||
cleanPathTest
|
cleanPathTest
|
||||||
exceptionsTest
|
exceptionsTest
|
||||||
widgetTest
|
|
||||||
mediaTest
|
|
||||||
linksTest
|
linksTest
|
||||||
noOverloadedTest
|
noOverloadedTest
|
||||||
internalRequestTest
|
internalRequestTest
|
||||||
|
|||||||
@ -5,7 +5,7 @@ module YesodCoreTest.ErrorHandling
|
|||||||
( errorHandlingTest
|
( errorHandlingTest
|
||||||
) where
|
) where
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Shakespeare (whamlet)
|
import Text.Hamlet (hamlet)
|
||||||
import Yesod.Core.Widget
|
import Yesod.Core.Widget
|
||||||
import Test.Hspec
|
import Test.Hspec
|
||||||
import Network.Wai
|
import Network.Wai
|
||||||
@ -81,7 +81,7 @@ postAfterRunRequestBodyR = do
|
|||||||
getErrorInBodyR :: Handler Html
|
getErrorInBodyR :: Handler Html
|
||||||
getErrorInBodyR = do
|
getErrorInBodyR = do
|
||||||
let foo = error "error in body 19328" :: String
|
let foo = error "error in body 19328" :: String
|
||||||
defaultLayout [whamlet|#{foo}|]
|
defaultLayout $ toWidget [hamlet|#{foo}|]
|
||||||
|
|
||||||
getErrorInBodyNoEvalR :: Handler (DontFullyEvaluate Html)
|
getErrorInBodyNoEvalR :: Handler (DontFullyEvaluate Html)
|
||||||
getErrorInBodyNoEvalR = fmap DontFullyEvaluate getErrorInBodyR
|
getErrorInBodyNoEvalR = fmap DontFullyEvaluate getErrorInBodyR
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import YesodCoreTest.NoOverloadedStringsSub
|
|||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Core.Widget
|
import Yesod.Core.Widget
|
||||||
import Yesod.Shakespeare
|
import Text.Hamlet (hamlet)
|
||||||
import Network.Wai.Test
|
import Network.Wai.Test
|
||||||
import Network.Wai (pathInfo)
|
import Network.Wai (pathInfo)
|
||||||
import Data.Monoid (mempty)
|
import Data.Monoid (mempty)
|
||||||
@ -22,11 +22,11 @@ getBarR :: Monad m => m T.Text
|
|||||||
getBarR = return $ T.pack "BarR"
|
getBarR = return $ T.pack "BarR"
|
||||||
|
|
||||||
getBazR :: Yesod master => HandlerT Subsite (HandlerT master IO) Html
|
getBazR :: Yesod master => HandlerT Subsite (HandlerT master IO) Html
|
||||||
getBazR = lift $ defaultLayout [whamlet|Used Default Layout|]
|
getBazR = lift $ defaultLayout $ toWidget [hamlet|Used Default Layout|]
|
||||||
|
|
||||||
getBinR :: Yesod master => HandlerT Subsite (HandlerT master IO) Html
|
getBinR :: Yesod master => HandlerT Subsite (HandlerT master IO) Html
|
||||||
getBinR = do
|
getBinR = do
|
||||||
widget <- widgetToParentWidget [whamlet|
|
widget <- widgetToParentWidget $ toWidget [hamlet|
|
||||||
<p>Used defaultLayoutT
|
<p>Used defaultLayoutT
|
||||||
<a href=@{BazR}>Baz
|
<a href=@{BazR}>Baz
|
||||||
|]
|
|]
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
module YesodCoreTest.StubSslOnly ( App ( App ) ) where
|
module YesodCoreTest.StubSslOnly ( App ( App ) ) where
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Shakespeare
|
import Text.Hamlet (hamlet)
|
||||||
import qualified Web.ClientSession as CS
|
import qualified Web.ClientSession as CS
|
||||||
|
|
||||||
data App = App
|
data App = App
|
||||||
@ -17,8 +17,8 @@ instance Yesod App where
|
|||||||
fmap Just $ defaultClientSessionBackend 120 CS.defaultKeyFile
|
fmap Just $ defaultClientSessionBackend 120 CS.defaultKeyFile
|
||||||
|
|
||||||
getHomeR :: Handler Html
|
getHomeR :: Handler Html
|
||||||
getHomeR = defaultLayout
|
getHomeR = defaultLayout $ toWidget
|
||||||
[whamlet|
|
[hamlet|
|
||||||
<p>
|
<p>
|
||||||
Welcome to my test application.
|
Welcome to my test application.
|
||||||
|]
|
|]
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
module YesodCoreTest.StubUnsecured ( App ( App ) ) where
|
module YesodCoreTest.StubUnsecured ( App ( App ) ) where
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Shakespeare
|
import Text.Hamlet (hamlet)
|
||||||
|
|
||||||
data App = App
|
data App = App
|
||||||
|
|
||||||
@ -13,8 +13,8 @@ mkYesod "App" [parseRoutes|
|
|||||||
instance Yesod App
|
instance Yesod App
|
||||||
|
|
||||||
getHomeR :: Handler Html
|
getHomeR :: Handler Html
|
||||||
getHomeR = defaultLayout
|
getHomeR = defaultLayout $ toWidget
|
||||||
[whamlet|
|
[hamlet|
|
||||||
<p>
|
<p>
|
||||||
Welcome to my test application.
|
Welcome to my test application.
|
||||||
|]
|
|]
|
||||||
|
|||||||
@ -16,7 +16,6 @@ extra-source-files:
|
|||||||
test/YesodCoreTest.hs
|
test/YesodCoreTest.hs
|
||||||
test/YesodCoreTest/*.hs
|
test/YesodCoreTest/*.hs
|
||||||
test/YesodCoreTest/JsLoaderSites/Bottom.hs
|
test/YesodCoreTest/JsLoaderSites/Bottom.hs
|
||||||
test/en.msg
|
|
||||||
test/test.hs
|
test/test.hs
|
||||||
ChangeLog.md
|
ChangeLog.md
|
||||||
README.md
|
README.md
|
||||||
@ -68,7 +67,6 @@ library
|
|||||||
, word8
|
, word8
|
||||||
, auto-update
|
, auto-update
|
||||||
, semigroups
|
, semigroups
|
||||||
, shakespeare
|
|
||||||
|
|
||||||
exposed-modules: Yesod.Core
|
exposed-modules: Yesod.Core
|
||||||
Yesod.Core.Content
|
Yesod.Core.Content
|
||||||
@ -80,7 +78,6 @@ library
|
|||||||
Yesod.Core.Types
|
Yesod.Core.Types
|
||||||
Yesod.Core.Unsafe
|
Yesod.Core.Unsafe
|
||||||
Yesod.Routes.TH.Types
|
Yesod.Routes.TH.Types
|
||||||
Yesod.Shakespeare
|
|
||||||
other-modules: Yesod.Core.Internal.Session
|
other-modules: Yesod.Core.Internal.Session
|
||||||
Yesod.Core.Internal.Request
|
Yesod.Core.Internal.Request
|
||||||
Yesod.Core.Class.Handler
|
Yesod.Core.Class.Handler
|
||||||
@ -104,7 +101,7 @@ library
|
|||||||
Yesod.Routes.TH.ParseRoute
|
Yesod.Routes.TH.ParseRoute
|
||||||
Yesod.Routes.TH.RouteAttrs
|
Yesod.Routes.TH.RouteAttrs
|
||||||
|
|
||||||
ghc-options: -Wall -ddump-splices -ddump-to-file
|
ghc-options: -Wall
|
||||||
-- Following line added due to: https://github.com/yesodweb/yesod/issues/545
|
-- Following line added due to: https://github.com/yesodweb/yesod/issues/545
|
||||||
-- This looks like a GHC bug
|
-- This looks like a GHC bug
|
||||||
extensions: MultiParamTypeClasses
|
extensions: MultiParamTypeClasses
|
||||||
@ -167,19 +164,6 @@ test-suite tests
|
|||||||
ghc-options: -Wall -fno-warn-unused-binds
|
ghc-options: -Wall -fno-warn-unused-binds
|
||||||
extensions: TemplateHaskell
|
extensions: TemplateHaskell
|
||||||
|
|
||||||
benchmark widgets
|
|
||||||
type: exitcode-stdio-1.0
|
|
||||||
hs-source-dirs: bench
|
|
||||||
build-depends: base
|
|
||||||
, criterion
|
|
||||||
, bytestring
|
|
||||||
, text
|
|
||||||
, transformers
|
|
||||||
, yesod-core
|
|
||||||
, blaze-html
|
|
||||||
main-is: widget.hs
|
|
||||||
ghc-options: -Wall -O2
|
|
||||||
|
|
||||||
source-repository head
|
source-repository head
|
||||||
type: git
|
type: git
|
||||||
location: https://github.com/yesodweb/yesod
|
location: https://github.com/yesodweb/yesod
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import Control.Monad (liftM)
|
|||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Data.String (IsString(..))
|
import Data.String (IsString(..))
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
|
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
|
|
||||||
|
|||||||
@ -62,6 +62,7 @@ import Yesod.Form.Types
|
|||||||
import Yesod.Form.I18n.English
|
import Yesod.Form.I18n.English
|
||||||
import Yesod.Form.Functions (parseHelper)
|
import Yesod.Form.Functions (parseHelper)
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Text.Hamlet
|
import Text.Hamlet
|
||||||
import Text.Blaze (ToMarkup (toMarkup), unsafeByteString)
|
import Text.Blaze (ToMarkup (toMarkup), unsafeByteString)
|
||||||
#define ToHtml ToMarkup
|
#define ToHtml ToMarkup
|
||||||
|
|||||||
@ -59,6 +59,7 @@ import Text.Blaze (Markup, toMarkup)
|
|||||||
#define Html Markup
|
#define Html Markup
|
||||||
#define toHtml toMarkup
|
#define toHtml toMarkup
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Network.Wai (requestMethod)
|
import Network.Wai (requestMethod)
|
||||||
import Text.Hamlet (shamlet)
|
import Text.Hamlet (shamlet)
|
||||||
import Data.Monoid (mempty)
|
import Data.Monoid (mempty)
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import Yesod.Form.Types
|
|||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Control.Applicative (Applicative (..))
|
import Control.Applicative (Applicative (..))
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Control.Monad (liftM, (<=<))
|
import Control.Monad (liftM, (<=<))
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
import Data.Maybe (fromMaybe)
|
import Data.Maybe (fromMaybe)
|
||||||
|
|||||||
@ -15,6 +15,7 @@ module Yesod.Form.Jquery
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Yesod.Form
|
import Yesod.Form
|
||||||
import Data.Time (Day)
|
import Data.Time (Day)
|
||||||
import Data.Default
|
import Data.Default
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import Yesod.Form.Types
|
|||||||
import Yesod.Form.Functions
|
import Yesod.Form.Functions
|
||||||
import Yesod.Form.Fields (checkBoxField)
|
import Yesod.Form.Fields (checkBoxField)
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Control.Monad.Trans.RWS (get, put, ask)
|
import Control.Monad.Trans.RWS (get, put, ask)
|
||||||
import Data.Maybe (fromMaybe)
|
import Data.Maybe (fromMaybe)
|
||||||
import Data.Text.Read (decimal)
|
import Data.Text.Read (decimal)
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import Control.Monad (liftM)
|
|||||||
import Control.Monad.Trans.Class
|
import Control.Monad.Trans.Class
|
||||||
import Data.String (IsString (..))
|
import Data.String (IsString (..))
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
import Data.Semigroup (Semigroup, (<>))
|
import Data.Semigroup (Semigroup, (<>))
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ library
|
|||||||
build-depends: base >= 4 && < 5
|
build-depends: base >= 4 && < 5
|
||||||
, yesod-core >= 1.4 && < 1.5
|
, yesod-core >= 1.4 && < 1.5
|
||||||
, yesod-persistent >= 1.4 && < 1.5
|
, yesod-persistent >= 1.4 && < 1.5
|
||||||
|
, yesod-shakespeare >= 1.5 && < 1.6
|
||||||
, time >= 1.1.4
|
, time >= 1.1.4
|
||||||
, shakespeare >= 2.0
|
, shakespeare >= 2.0
|
||||||
, persistent
|
, persistent
|
||||||
|
|||||||
3
yesod-shakespeare/ChangeLog.md
Normal file
3
yesod-shakespeare/ChangeLog.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
## 1.5
|
||||||
|
|
||||||
|
* split off from yesod-core
|
||||||
20
yesod-shakespeare/LICENSE
Normal file
20
yesod-shakespeare/LICENSE
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
6
yesod-shakespeare/README.md
Normal file
6
yesod-shakespeare/README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## yesod-shakespeare
|
||||||
|
|
||||||
|
This package adds shakespeare integration on top of yesod-core.
|
||||||
|
The yesod package automatically adds in shakespeare functionality.
|
||||||
|
|
||||||
|
Yesod is well documented on [its website](http://www.yesodweb.com/).
|
||||||
@ -69,12 +69,13 @@ import Text.Hamlet (hamlet, shamlet, xhamlet)
|
|||||||
import Text.Lucius (Css, renderCss, CssUrl, renderCssUrl, lucius)
|
import Text.Lucius (Css, renderCss, CssUrl, renderCssUrl, lucius)
|
||||||
import Text.Cassius (cassius)
|
import Text.Cassius (cassius)
|
||||||
|
|
||||||
|
import Yesod.Core ( HandlerSite, MonadHandler
|
||||||
|
, getUrlRenderParams, toTextUrl, invalidArgs, permissionDenied, RedirectUrl, withUrlRenderer, getRequest, getYesod, sendResponse
|
||||||
|
, ToContent(..), ToTypedContent(..), HasContentType(..), typeJavascript, typeCss
|
||||||
|
, Route
|
||||||
|
, ToWidget(..), ToWidgetBody(..), ToWidgetMedia(..), ToWidgetHead(..), MonadWidget(..), asWidgetT, tellWidget, GWData(..), setMessage, setTitle
|
||||||
|
)
|
||||||
import Yesod.Core.Types
|
import Yesod.Core.Types
|
||||||
import Yesod.Core.Widget
|
|
||||||
import Yesod.Core.Class.Handler (HandlerSite, MonadHandler)
|
|
||||||
import Yesod.Core.Handler (getUrlRenderParams, toTextUrl, invalidArgs, permissionDenied, RedirectUrl, withUrlRenderer, getRequest, getYesod, sendResponse)
|
|
||||||
import Yesod.Core.Content (ToContent(..), ToTypedContent(..), HasContentType(..), typeJavascript, typeCss)
|
|
||||||
import Yesod.Routes.Class (Route)
|
|
||||||
|
|
||||||
-- for hamlet expansion
|
-- for hamlet expansion
|
||||||
import qualified Data.Foldable
|
import qualified Data.Foldable
|
||||||
@ -5,7 +5,7 @@
|
|||||||
module Main where
|
module Main where
|
||||||
|
|
||||||
import Criterion.Main
|
import Criterion.Main
|
||||||
import Text.Hamlet
|
import Yesod.Shakespeare
|
||||||
import Numeric (showInt)
|
import Numeric (showInt)
|
||||||
import qualified Data.ByteString.Lazy as L
|
import qualified Data.ByteString.Lazy as L
|
||||||
import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8
|
import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8
|
||||||
@ -2,15 +2,15 @@
|
|||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# LANGUAGE FlexibleInstances, ViewPatterns #-}
|
{-# LANGUAGE FlexibleInstances, ViewPatterns #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||||
module YesodCoreTest.Media (mediaTest, Widget) where
|
module YesodShakespeareTest.Media (mediaTest, Widget) where
|
||||||
|
|
||||||
import Test.Hspec
|
import Test.Hspec
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Core.Widget
|
import Yesod.Core.Widget
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Network.Wai
|
import Network.Wai
|
||||||
import Network.Wai.Test
|
import Network.Wai.Test
|
||||||
import Text.Lucius
|
import YesodShakespeareTest.MediaData
|
||||||
import YesodCoreTest.MediaData
|
|
||||||
|
|
||||||
mkYesodDispatch "Y" resourcesY
|
mkYesodDispatch "Y" resourcesY
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
|
{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# LANGUAGE FlexibleInstances #-}
|
{-# LANGUAGE FlexibleInstances #-}
|
||||||
module YesodCoreTest.MediaData where
|
module YesodShakespeareTest.MediaData where
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
|
||||||
@ -1,16 +1,13 @@
|
|||||||
{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
|
{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# LANGUAGE FlexibleInstances, ViewPatterns #-}
|
{-# LANGUAGE FlexibleInstances, ViewPatterns #-}
|
||||||
module YesodCoreTest.Widget (widgetTest) where
|
module YesodShakespeareTest.Widget (widgetTest) where
|
||||||
|
|
||||||
import Test.Hspec
|
import Test.Hspec
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Core.Widget
|
import Yesod.Core.Widget
|
||||||
import Yesod.Shakespeare
|
import Yesod.Shakespeare
|
||||||
import Text.Julius
|
|
||||||
import Text.Lucius
|
|
||||||
import Text.Hamlet
|
|
||||||
|
|
||||||
import Network.Wai
|
import Network.Wai
|
||||||
import Network.Wai.Test
|
import Network.Wai.Test
|
||||||
11
yesod-shakespeare/test/test.hs
Normal file
11
yesod-shakespeare/test/test.hs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import Test.Hspec
|
||||||
|
import YesodShakespeareTest.Widget
|
||||||
|
import YesodShakespeareTest.Media
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = hspec specs
|
||||||
|
|
||||||
|
specs :: Spec
|
||||||
|
specs = do
|
||||||
|
widgetTest
|
||||||
|
mediaTest
|
||||||
73
yesod-shakespeare/yesod-shakespeare.cabal
Normal file
73
yesod-shakespeare/yesod-shakespeare.cabal
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
name: yesod-shakespeare
|
||||||
|
version: 1.5
|
||||||
|
license: MIT
|
||||||
|
license-file: LICENSE
|
||||||
|
author: Michael Snoyman <michael@snoyman.com>
|
||||||
|
maintainer: Michael Snoyman <michael@snoyman.com>
|
||||||
|
synopsis: Creation of type-safe, RESTful web applications.
|
||||||
|
description: API docs and the README are available at <http://www.stackage.org/package/yesod-core>
|
||||||
|
category: Web, Yesod
|
||||||
|
stability: Stable
|
||||||
|
cabal-version: >= 1.8
|
||||||
|
build-type: Simple
|
||||||
|
homepage: http://www.yesodweb.com/
|
||||||
|
extra-source-files:
|
||||||
|
test/YesodShakespeareTest/*.hs
|
||||||
|
test/en.msg
|
||||||
|
test/test.hs
|
||||||
|
ChangeLog.md
|
||||||
|
README.md
|
||||||
|
|
||||||
|
library
|
||||||
|
build-depends: base >= 4.3 && < 5
|
||||||
|
, shakespeare
|
||||||
|
, yesod-core >= 1.4
|
||||||
|
, text >= 0.7
|
||||||
|
, template-haskell
|
||||||
|
, bytestring >= 0.9.1.4
|
||||||
|
, transformers >= 0.2.2
|
||||||
|
, blaze-html >= 0.5
|
||||||
|
, containers >= 0.2
|
||||||
|
|
||||||
|
exposed-modules: Yesod.Shakespeare
|
||||||
|
|
||||||
|
ghc-options: -Wall -ddump-splices -ddump-to-file
|
||||||
|
-- Following line added due to: https://github.com/yesodweb/yesod/issues/545
|
||||||
|
-- This looks like a GHC bug
|
||||||
|
extensions: MultiParamTypeClasses
|
||||||
|
|
||||||
|
-- Workaround for: http://ghc.haskell.org/trac/ghc/ticket/8443
|
||||||
|
extensions: TemplateHaskell
|
||||||
|
|
||||||
|
test-suite tests
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
main-is: test.hs
|
||||||
|
hs-source-dirs: test
|
||||||
|
|
||||||
|
cpp-options: -DTEST
|
||||||
|
build-depends: base
|
||||||
|
,hspec >= 1.3
|
||||||
|
,hspec-expectations
|
||||||
|
,yesod-core
|
||||||
|
,yesod-shakespeare
|
||||||
|
,wai
|
||||||
|
,wai-extra
|
||||||
|
ghc-options: -Wall -fno-warn-unused-binds
|
||||||
|
extensions: TemplateHaskell
|
||||||
|
|
||||||
|
benchmark widgets
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
hs-source-dirs: bench
|
||||||
|
build-depends: base
|
||||||
|
, yesod-shakespeare
|
||||||
|
, yesod-core
|
||||||
|
, transformers
|
||||||
|
, blaze-html
|
||||||
|
, bytestring
|
||||||
|
, criterion
|
||||||
|
main-is: widget.hs
|
||||||
|
ghc-options: -Wall -O2
|
||||||
|
|
||||||
|
source-repository head
|
||||||
|
type: git
|
||||||
|
location: https://github.com/yesodweb/yesod
|
||||||
@ -11,6 +11,7 @@ import Network.Wai.Test (SResponse(simpleHeaders))
|
|||||||
import Test.HUnit (assertFailure, assertBool)
|
import Test.HUnit (assertFailure, assertBool)
|
||||||
import Test.Hspec (Spec)
|
import Test.Hspec (Spec)
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Yesod.EmbeddedStatic
|
import Yesod.EmbeddedStatic
|
||||||
import Yesod.Test
|
import Yesod.Test
|
||||||
import qualified Data.ByteString as B
|
import qualified Data.ByteString as B
|
||||||
|
|||||||
@ -80,6 +80,7 @@ test-suite tests
|
|||||||
build-depends: base
|
build-depends: base
|
||||||
, hspec >= 1.3
|
, hspec >= 1.3
|
||||||
, yesod-test >= 1.4
|
, yesod-test >= 1.4
|
||||||
|
, yesod-shakespeare >= 1.5
|
||||||
, wai-extra
|
, wai-extra
|
||||||
, HUnit
|
, HUnit
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import Test.Hspec
|
|||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
import Yesod.Form
|
import Yesod.Form
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Yesod.Test
|
import Yesod.Test
|
||||||
import Yesod.Test.CssQuery
|
import Yesod.Test.CssQuery
|
||||||
import Yesod.Test.TransversingCSS
|
import Yesod.Test.TransversingCSS
|
||||||
|
|||||||
@ -57,6 +57,7 @@ test-suite test
|
|||||||
, containers
|
, containers
|
||||||
, html-conduit
|
, html-conduit
|
||||||
, yesod-core
|
, yesod-core
|
||||||
|
, yesod-shakespeare
|
||||||
, yesod-form
|
, yesod-form
|
||||||
, text
|
, text
|
||||||
, wai
|
, wai
|
||||||
|
|||||||
@ -4,10 +4,12 @@
|
|||||||
module Yesod
|
module Yesod
|
||||||
( -- * Re-exports from yesod-core
|
( -- * Re-exports from yesod-core
|
||||||
module Yesod.Core
|
module Yesod.Core
|
||||||
|
, module Yesod.Shakespeare
|
||||||
, module Yesod.Form
|
, module Yesod.Form
|
||||||
, module Yesod.Persist
|
, module Yesod.Persist
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Yesod.Core
|
import Yesod.Core
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Yesod.Form
|
import Yesod.Form
|
||||||
import Yesod.Persist
|
import Yesod.Persist
|
||||||
|
|||||||
@ -17,6 +17,7 @@ module Yesod.Default.Util
|
|||||||
import qualified Data.ByteString.Lazy as L
|
import qualified Data.ByteString.Lazy as L
|
||||||
import Data.Text (Text, pack, unpack)
|
import Data.Text (Text, pack, unpack)
|
||||||
import Yesod.Core -- purposely using complete import so that Haddock will see addStaticContent
|
import Yesod.Core -- purposely using complete import so that Haddock will see addStaticContent
|
||||||
|
import Yesod.Shakespeare
|
||||||
import Control.Monad (when, unless)
|
import Control.Monad (when, unless)
|
||||||
import System.Directory (doesFileExist, createDirectoryIfMissing)
|
import System.Directory (doesFileExist, createDirectoryIfMissing)
|
||||||
import Language.Haskell.TH.Syntax
|
import Language.Haskell.TH.Syntax
|
||||||
|
|||||||
@ -19,6 +19,7 @@ library
|
|||||||
|
|
||||||
build-depends: base >= 4.3 && < 5
|
build-depends: base >= 4.3 && < 5
|
||||||
, yesod-core >= 1.4 && < 1.5
|
, yesod-core >= 1.4 && < 1.5
|
||||||
|
, yesod-shakespeare >= 1.5 && < 1.6
|
||||||
, yesod-auth >= 1.4 && < 1.5
|
, yesod-auth >= 1.4 && < 1.5
|
||||||
, yesod-persistent >= 1.4 && < 1.5
|
, yesod-persistent >= 1.4 && < 1.5
|
||||||
, yesod-form >= 1.4 && < 1.5
|
, yesod-form >= 1.4 && < 1.5
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user