diff --git a/sources.txt b/sources.txt index 1452bfc6..eb7aeb70 100644 --- a/sources.txt +++ b/sources.txt @@ -1,4 +1,5 @@ ./yesod-core +./yesod-shakespeare ./yesod-static ./yesod-persistent ./yesod-newsfeed diff --git a/stack.yaml b/stack.yaml index 0560587e..9150af5f 100644 --- a/stack.yaml +++ b/stack.yaml @@ -13,5 +13,6 @@ packages: - ./yesod - ./yesod-eventsource - ./yesod-websockets + - ./yesod-shakespeare extra-deps: - wai-app-static-3.1.0 diff --git a/yesod-auth-oauth/Yesod/Auth/OAuth.hs b/yesod-auth-oauth/Yesod/Auth/OAuth.hs index 79ab12ac..b48a0608 100644 --- a/yesod-auth-oauth/Yesod/Auth/OAuth.hs +++ b/yesod-auth-oauth/Yesod/Auth/OAuth.hs @@ -24,6 +24,7 @@ import Web.Authenticate.OAuth import Yesod.Auth import Yesod.Form import Yesod.Core +import Yesod.Shakespeare data YesodOAuthException = CredentialError String Credential | SessionError String diff --git a/yesod-auth-oauth/yesod-auth-oauth.cabal b/yesod-auth-oauth/yesod-auth-oauth.cabal index be3659ef..f63632a2 100644 --- a/yesod-auth-oauth/yesod-auth-oauth.cabal +++ b/yesod-auth-oauth/yesod-auth-oauth.cabal @@ -24,6 +24,7 @@ library build-depends: authenticate-oauth >= 1.5 && < 1.6 , bytestring >= 0.9.1.4 , yesod-core >= 1.4 && < 1.5 + , yesod-shakespeare >= 1.5 && < 1.6 , yesod-auth >= 1.4 && < 1.5 , text >= 0.7 , yesod-form >= 1.4 && < 1.5 diff --git a/yesod-auth/Yesod/Auth.hs b/yesod-auth/Yesod/Auth.hs index 197f7244..c7b82c46 100644 --- a/yesod-auth/Yesod/Auth.hs +++ b/yesod-auth/Yesod/Auth.hs @@ -63,6 +63,7 @@ import qualified Network.Wai as W import Yesod.Core import Yesod.Persist +import Yesod.Shakespeare import Yesod.Auth.Message (AuthMessage, defaultMessage) import qualified Yesod.Auth.Message as Msg import Yesod.Form (FormMessage) @@ -146,7 +147,7 @@ class (Yesod master, PathPiece (AuthId master), RenderMessage master FormMessage authPlugins :: master -> [AuthPlugin master] -- | What to show on the login page. - -- + -- -- Default handler concatenates plugin widgets and wraps the result -- in 'authLayout'. Override if you need fancy widget containers -- or entirely custom page. diff --git a/yesod-auth/Yesod/Auth/Email.hs b/yesod-auth/Yesod/Auth/Email.hs index 3829bb1e..00e1d26a 100644 --- a/yesod-auth/Yesod/Auth/Email.hs +++ b/yesod-auth/Yesod/Auth/Email.hs @@ -61,6 +61,7 @@ import Data.Text.Encoding (encodeUtf8, decodeUtf8With) import Data.Text.Encoding.Error (lenientDecode) import Data.Text (Text) import Yesod.Core +import Yesod.Shakespeare import qualified Yesod.PasswordStore as PS import qualified Text.Email.Validate import qualified Yesod.Auth.Message as Msg diff --git a/yesod-auth/Yesod/Auth/GoogleEmail.hs b/yesod-auth/Yesod/Auth/GoogleEmail.hs index 509ea283..d9f481c0 100644 --- a/yesod-auth/Yesod/Auth/GoogleEmail.hs +++ b/yesod-auth/Yesod/Auth/GoogleEmail.hs @@ -21,6 +21,7 @@ import Yesod.Auth import qualified Web.Authenticate.OpenId as OpenId import Yesod.Core +import Yesod.Shakespeare import Data.Text (Text) import qualified Yesod.Auth.Message as Msg import qualified Data.Text as T diff --git a/yesod-auth/Yesod/Auth/GoogleEmail2.hs b/yesod-auth/Yesod/Auth/GoogleEmail2.hs index 92608623..b5ee0666 100644 --- a/yesod-auth/Yesod/Auth/GoogleEmail2.hs +++ b/yesod-auth/Yesod/Auth/GoogleEmail2.hs @@ -83,8 +83,9 @@ import Yesod.Core (HandlerSite, MonadHandler, getYesod, invalidArgs, lift, lookupGetParam, lookupSession, notFound, redirect, - setSession, whamlet, (.:), + setSession, (.:), TypedContent, HandlerT, liftIO) +import Yesod.Shakespeare (whamlet) pid :: Text pid = "googleemail2" diff --git a/yesod-auth/Yesod/Auth/OpenId.hs b/yesod-auth/Yesod/Auth/OpenId.hs index 387454eb..3af0db98 100644 --- a/yesod-auth/Yesod/Auth/OpenId.hs +++ b/yesod-auth/Yesod/Auth/OpenId.hs @@ -17,6 +17,7 @@ import qualified Web.Authenticate.OpenId as OpenId import Yesod.Form import Yesod.Core +import Yesod.Shakespeare import Text.Cassius (cassius) import Data.Text (Text, isPrefixOf) import qualified Yesod.Auth.Message as Msg @@ -92,7 +93,7 @@ completeHelper idType gets' = do eres <- try $ OpenId.authenticateClaimed gets' (authHttpManager master) either onFailure onSuccess eres where - onFailure err = do + onFailure err = do tm <- getRouteToParent lift $ loginErrorMessage (tm LoginR) $ T.pack $ show (err :: SomeException) diff --git a/yesod-auth/yesod-auth.cabal b/yesod-auth/yesod-auth.cabal index bae4db4f..656576e0 100644 --- a/yesod-auth/yesod-auth.cabal +++ b/yesod-auth/yesod-auth.cabal @@ -24,6 +24,7 @@ library , authenticate >= 1.3 , bytestring >= 0.9.1.4 , yesod-core >= 1.4 && < 1.5 + , yesod-shakespeare >= 1.5 && < 1.6 , wai >= 1.4 , template-haskell , base16-bytestring diff --git a/yesod-core/test/YesodCoreTest.hs b/yesod-core/test/YesodCoreTest.hs index 9d40de40..5778086f 100644 --- a/yesod-core/test/YesodCoreTest.hs +++ b/yesod-core/test/YesodCoreTest.hs @@ -1,10 +1,8 @@ {-# LANGUAGE CPP #-} -module YesodCoreTest (specs) where +module YesodCoreTest (specs) where import YesodCoreTest.CleanPath import YesodCoreTest.Exceptions -import YesodCoreTest.Widget -import YesodCoreTest.Media import YesodCoreTest.Links import YesodCoreTest.NoOverloadedStrings import YesodCoreTest.InternalRequest @@ -28,8 +26,6 @@ specs :: Spec specs = do cleanPathTest exceptionsTest - widgetTest - mediaTest linksTest noOverloadedTest internalRequestTest diff --git a/yesod-core/test/YesodCoreTest/ErrorHandling.hs b/yesod-core/test/YesodCoreTest/ErrorHandling.hs index 27217d71..abc184fd 100644 --- a/yesod-core/test/YesodCoreTest/ErrorHandling.hs +++ b/yesod-core/test/YesodCoreTest/ErrorHandling.hs @@ -5,7 +5,7 @@ module YesodCoreTest.ErrorHandling ( errorHandlingTest ) where import Yesod.Core -import Yesod.Shakespeare (whamlet) +import Text.Hamlet (hamlet) import Yesod.Core.Widget import Test.Hspec import Network.Wai @@ -81,7 +81,7 @@ postAfterRunRequestBodyR = do getErrorInBodyR :: Handler Html getErrorInBodyR = do let foo = error "error in body 19328" :: String - defaultLayout [whamlet|#{foo}|] + defaultLayout $ toWidget [hamlet|#{foo}|] getErrorInBodyNoEvalR :: Handler (DontFullyEvaluate Html) getErrorInBodyNoEvalR = fmap DontFullyEvaluate getErrorInBodyR diff --git a/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs b/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs index 14092664..803b723a 100644 --- a/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs +++ b/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs @@ -8,7 +8,7 @@ import YesodCoreTest.NoOverloadedStringsSub import Yesod.Core import Yesod.Core.Widget -import Yesod.Shakespeare +import Text.Hamlet (hamlet) import Network.Wai.Test import Network.Wai (pathInfo) import Data.Monoid (mempty) @@ -22,11 +22,11 @@ getBarR :: Monad m => m T.Text getBarR = return $ T.pack "BarR" 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 = do - widget <- widgetToParentWidget [whamlet| + widget <- widgetToParentWidget $ toWidget [hamlet|