shakespeare 2.0.25.1 → 2.0.26
raw patch · 5 files changed
+45/−2 lines, 5 files
Files
- ChangeLog.md +4/−0
- Text/Lucius.hs +7/−1
- shakespeare.cabal +1/−1
- test/Text/CssSpec.hs +26/−0
- test/cassiuses/external-supports.lucius +7/−0
ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for shakespeare +### 2.0.26++* Support `@supports` [#263](https://github.com/yesodweb/shakespeare/pull/263)+ ### 2.0.25.1 * Support for GHC 9.2 and aeson 2 [#260](https://github.com/yesodweb/shakespeare/pull/260)
Text/Lucius.hs view
@@ -238,7 +238,7 @@ ignore = many (whiteSpace1 <|> string' "<!--" <|> string' "-->") >> return () ignore- tl <- ((charset <|> media <|> impor <|> topAtBlock <|> var <|> fmap TopBlock parseBlock) >>= \x -> go (front . (:) x))+ tl <- ((charset <|> media <|> impor <|> supports <|> topAtBlock <|> var <|> fmap TopBlock parseBlock) >>= \x -> go (front . (:) x)) <|> (return $ map compressTopLevel $ front []) ignore return tl@@ -258,6 +258,12 @@ val <- parseContents ";" _ <- char ';' return $ TopAtDecl "import" val+ supports = do+ try $ stringCI "@supports "+ selector <- parseContents "{"+ _ <- char '{'+ b <- parseBlocks id+ return $ TopAtBlock "supports" selector b var = try $ do _ <- char '@' isPage <- (try $ string "page " >> return True) <|>
shakespeare.cabal view
@@ -1,5 +1,5 @@ name: shakespeare-version: 2.0.25.1+version: 2.0.26 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>
test/Text/CssSpec.hs view
@@ -288,6 +288,17 @@ } |] + it "lucius supports" $ do + celper "@supports only screen{hana dul{set:net}}" $(luciusFile "test/cassiuses/external-supports.lucius") + celper "@supports only screen {\n hana dul {\n set: net;\n }\n}\n" $(luciusFileDebug "test/cassiuses/external-supports.lucius") + celper "@supports only screen {hana,dul{set:net;dasut:yeosut}}" [lucius| + @supports only screen { + hana, dul { + set: net; + dasut: yeosut; + } + } + |] {- it "cassius removes whitespace" $ do @@ -366,6 +377,21 @@ celper "@media (max-width: 400px){foo{color:red}}" [lucius| @mobileWidth: 400px; @media (max-width: #{mobileWidth}){ foo { color: red; } } +|] + -- note: this file format is window (CR;NL) + it "variables in supports selector" $ + celper "@supports ((perspective: 1px)\r\n and (not (-webkit-overflow-scrolling: touch))) {html,body{overflow:hidden;height:100%}body{transform:translateZ(0px)}}" [lucius| +@perspectiveTestValue: 1px; +@supports ((perspective: #{perspectiveTestValue}) + and (not (-webkit-overflow-scrolling: touch))) { + html, body { + overflow: hidden; + height:100%; + } + body { + transform: translateZ(0px); + } +} |] it "URLs in import" $ celper "@import url(\"suburl\");" [lucius|
+ test/cassiuses/external-supports.lucius view
@@ -0,0 +1,7 @@+@supports only screen{+ hana {+ dul {+ set: net;+ }+ }+}