summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicole Rauch <nicole.m@gmx.de>2016-08-14 20:00:16 +0200
committerNicole Rauch <nicole.m@gmx.de>2016-08-14 22:13:31 +0200
commite4c7cb547d8c4754b4b54b82b4315740b7bff37c (patch)
tree16eabfde9d1c91a688d483fc7d8083708514fca0
parentce9730758e5d9317c3b0f060a7db995f52467115 (diff)
downloadhakyll-e4c7cb547d8c4754b4b54b82b4315740b7bff37c.tar.gz
Do not strip comments that are inside constants.
-rw-r--r--src/Hakyll/Web/CompressCss.hs2
-rw-r--r--tests/Hakyll/Web/CompressCss/Tests.hs5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/Hakyll/Web/CompressCss.hs b/src/Hakyll/Web/CompressCss.hs
index 8f67c7c..a032b10 100644
--- a/src/Hakyll/Web/CompressCss.hs
+++ b/src/Hakyll/Web/CompressCss.hs
@@ -65,6 +65,8 @@ compressWhitespace str
stripComments :: String -> String
stripComments [] = []
stripComments str
+ | isPrefixOf "\"" str = head str : retainConstants stripComments "\"" (drop 1 str)
+ | isPrefixOf "'" str = head str : retainConstants stripComments "'" (drop 1 str)
| isPrefixOf "/*" str = stripComments $ eatComments $ drop 2 str
| otherwise = head str : stripComments (drop 1 str)
where
diff --git a/tests/Hakyll/Web/CompressCss/Tests.hs b/tests/Hakyll/Web/CompressCss/Tests.hs
index 065a588..c3fc840 100644
--- a/tests/Hakyll/Web/CompressCss/Tests.hs
+++ b/tests/Hakyll/Web/CompressCss/Tests.hs
@@ -30,7 +30,10 @@ tests = testGroup "Hakyll.Web.CompressCss.Tests" $ concat
compressCss "abc ' \t\n\r ' xyz"
-- strip comments
- , "" @=? compressCss "/* abc { } ;; \n\t\r */"
+ , "before after" @=? compressCss "before /* abc { } ;; \n\t\r */ after"
+ -- don't strip comments inside constants
+ , "before \"/* abc { } ;; \n\t\r */\" after"
+ @=? compressCss "before \"/* abc { } ;; \n\t\r */\" after"
-- compress separators
, "}" @=? compressCss "; }"