1
0
Fork 0
mirror of https://code.naskya.net/repos/ndqEd synced 2025-01-10 20:46:47 +09:00

Replace JS minifier with a custom all-discarding one

This commit is contained in:
fr33domlover 2016-05-06 10:23:31 +00:00
parent 6e2a8b259d
commit ae03aee099
2 changed files with 45 additions and 2 deletions

42
src/Text/Jasmine/Local.hs Normal file
View file

@ -0,0 +1,42 @@
{- This file is part of Vervis.
-
- Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
-- | Some of the handler and widget utilities Yesod provides include snippets
-- of Javascript which gets inserted into the page. Usually there is no way to
-- tell these utilities not to include the script. When you don't want it to be
-- included, one way to avoid it to maintain modified versions of the
-- utilities. Another, much easier way, is to use a modified Javascript
-- minifier.
--
-- I don't know whether a modified minifier can be a good filter which discards
-- some scripts and enables others, but there's definitely one case in which it
-- works well: Discarding all scripts.
--
-- This module collects such modified minifiers.
module Text.Jasmine.Local
( discardm
, reportm
)
where
import Prelude
import qualified Data.ByteString.Lazy as BL (ByteString, empty)
discardm :: BL.ByteString -> Either String BL.ByteString
discardm _ = Right BL.empty
reportm :: BL.ByteString -> Either String BL.ByteString
reportm _ = Left "The app disables all JS through the minifier"

View file

@ -19,7 +19,7 @@ import Prelude (init, last)
import Database.Persist.Sql (ConnectionPool, runSqlPool) import Database.Persist.Sql (ConnectionPool, runSqlPool)
import Text.Hamlet (hamletFile) import Text.Hamlet (hamletFile)
import Text.Jasmine (minifym) --import Text.Jasmine (minifym)
import Yesod.Auth.HashDB (authHashDB) import Yesod.Auth.HashDB (authHashDB)
import Yesod.Auth.Message (AuthMessage (IdentifierNotFound)) import Yesod.Auth.Message (AuthMessage (IdentifierNotFound))
import Yesod.Default.Util (addStaticContentExternal) import Yesod.Default.Util (addStaticContentExternal)
@ -30,6 +30,7 @@ import qualified Yesod.Core.Unsafe as Unsafe
import Data.Text as T (pack) import Data.Text as T (pack)
--import qualified Data.Text.Encoding as TE --import qualified Data.Text.Encoding as TE
import Text.Jasmine.Local (discardm)
import Vervis.Import.NoFoundation hiding (last) import Vervis.Import.NoFoundation hiding (last)
import Vervis.Widget (breadcrumbBar) import Vervis.Widget (breadcrumbBar)
@ -137,7 +138,7 @@ instance Yesod App where
master <- getYesod master <- getYesod
let staticDir = appStaticDir $ appSettings master let staticDir = appStaticDir $ appSettings master
addStaticContentExternal addStaticContentExternal
minifym discardm
genFileName genFileName
staticDir staticDir
(StaticR . flip StaticRoute []) (StaticR . flip StaticRoute [])