packages feed

shakespeare-css 0.10.0 → 0.10.1

raw patch · 3 files changed

+17/−7 lines, 3 files

Files

Text/Css.hs view
@@ -26,7 +26,7 @@     { _cssSelectors :: Builder     , _cssAttributes :: [(Builder, Builder)]     }-data CssTop = Media String [Css'] | Css Css'+data CssTop = Media String [Css'] | Css Css' | Charset String  type Css = [CssTop] @@ -55,6 +55,7 @@     return $ cr `AppE` parseBlocks'' `AppE` (LitE $ StringL fp) `AppE` ListE c   where     go :: TopLevel -> [Content] -- FIXME use blockToCss+    go (TopCharset cs) = [ContentRaw "@charset ", ContentRaw cs, ContentRaw ";"]     go (MediaBlock _ blocks) = concatMap (go . TopBlock) blocks     go (TopBlock (Block x y z)) =         intercalate [ContentRaw ","] x ++@@ -79,6 +80,7 @@     return $ foldr ($) [] $ map goTop a   where     goTop :: TopLevel -> Css -> Css+    goTop (TopCharset cs) x = Charset cs : x     goTop (TopBlock b) x = map Css (go b []) ++ x     goTop (MediaBlock s b) x = Media s (foldr go [] b) : x     go :: Block -> [Css'] -> [Css']@@ -127,7 +129,7 @@  data Block = Block Selector Pairs [Block] -data TopLevel = TopBlock Block | MediaBlock String [Block]+data TopLevel = TopBlock Block | MediaBlock String [Block] | TopCharset String  type Pairs = [Pair] @@ -138,6 +140,7 @@ compressTopLevel :: TopLevel -> TopLevel compressTopLevel (TopBlock b) = TopBlock $ compressBlock b compressTopLevel (MediaBlock s b) = MediaBlock s $ map compressBlock b+compressTopLevel x@TopCharset{} = x  compressBlock :: Block -> Block compressBlock (Block x y blocks) =@@ -187,6 +190,7 @@   where     go r (TopBlock b) = [|(++) $ map Css ($(blockToCss r b) [])|]     go r (MediaBlock s b) = [|(:) $ Media $(lift s) $(blocksToCassius r b)|]+    go r (TopCharset cs) = [|(:) $ Charset $(lift cs)|]  blocksToCassius :: Name -> [Block] -> Q Exp blocksToCassius r a = do@@ -202,6 +206,9 @@         fromText (pack s) `mappend`         singleton '{' `mappend`         foldr mappend (singleton '}') (map renderCss' x)+    go (Charset cs) = fromText (pack "@charset ") `mappend`+                      fromText (pack cs) `mappend`+                      singleton ';'  renderCss' :: Css' -> Builder renderCss' (Css' _x []) = mempty
Text/Lucius.hs view
@@ -17,9 +17,7 @@ import Text.Shakespeare.Base import Language.Haskell.TH.Quote (QuasiQuoter (..)) import Language.Haskell.TH.Syntax-import qualified Data.Text as TS import qualified Data.Text.Lazy as TL-import qualified Text.Cassius as C import Text.ParserCombinators.Parsec hiding (Line) import Text.Css import Data.Char (isSpace)@@ -140,10 +138,15 @@   where     go front = do         whiteSpace-        ((media <|> fmap TopBlock parseBlock) >>= \x -> go (front . (:) x))+        ((charset <|> media <|> fmap TopBlock parseBlock) >>= \x -> go (front . (:) x))             <|> (return $ map compressTopLevel $ front [])+    charset = do+        _ <- try $ string "@charset "+        cs <- many1 $ noneOf ";"+        _ <- char ';'+        return $ TopCharset cs     media = do-        try $ string "@media "+        _ <- try $ string "@media "         name <- many1 $ noneOf "{"         _ <- char '{'         b <- parseBlocks id
shakespeare-css.cabal view
@@ -1,5 +1,5 @@ name:            shakespeare-css-version:         0.10.0+version:         0.10.1 license:         BSD3 license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>