stylist-traits-0.1.3.1: Traits, datatypes, & parsers for Haskell Stylist
Safe HaskellNone
LanguageHaskell2010

Stylist.Parse

Description

Parses a CSS stylesheet See StyleSheet & parseForURL.

Synopsis

Documentation

parse :: StyleSheet s => s -> Text -> s Source #

Parse a CSS stylesheet

parse' :: StyleSheet t => t -> [Token] -> t Source #

Parse a tokenized (via `css-syntax`) CSS stylesheet

parseForURL :: StyleSheet s => s -> URI -> Text -> s Source #

Parse a CSS stylesheet, resolving all URLs to absolute form.

data TrivialStyleSheet Source #

Gathers StyleRules into a list, mainly for testing.

class StyleSheet s where Source #

Describes how to store, and to some extent parse, CSS stylesheets. These methods are used to construct the results from parse, etc.

Minimal complete definition

addRule

Methods

setPriority :: Int -> s -> s Source #

Sets the stylesheet priority (useragent vs user vs author), optional. Favor setPriorities for richer API.

setPriorities :: [Int] -> s -> s Source #

Sets the multi-layered stylesheet priority (for the sake of @layer rules), optional.

addRule :: s -> StyleRule -> s Source #

Stores a parsed selector+properties rule.

addAtRule :: s -> Text -> [Token] -> (s, [Token]) Source #

Stores and parses an identified at-rule.

Instances

Instances details
StyleSheet () Source #

In case an indirect caller doesn't actually want to use Haskell Stylist.

Instance details

Defined in Stylist.Parse

Methods

setPriority :: Int -> () -> () Source #

setPriorities :: [Int] -> () -> () Source #

addRule :: () -> StyleRule -> () Source #

addAtRule :: () -> Text -> [Token] -> ((), [Token]) Source #

StyleSheet TrivialStyleSheet Source # 
Instance details

Defined in Stylist.Parse

skipAtRule :: [Token] -> [Token] Source #

Returns tokens after an at-rule, as per scanAtRule.

scanAtRule :: Parser [Token] Source #

Returns tokens before & after an at-rule value, terminated after a curly-bracketed block or a semicolon.

scanBlock :: Parser [Token] Source #

Returns tokens until the next unbalanced closing brace.

skipSpace :: [Token] -> [Token] Source #

Removes preceding Whitespace tokens.

data StyleRule Source #

The properties to set for elements matching the given selector.

Constructors

StyleRule Selector [(Text, [Token])] Text 

Instances

Instances details
Eq StyleRule Source # 
Instance details

Defined in Stylist.Parse

Methods

(==) :: StyleRule -> StyleRule -> Bool

(/=) :: StyleRule -> StyleRule -> Bool

Show StyleRule Source # 
Instance details

Defined in Stylist.Parse

Methods

showsPrec :: Int -> StyleRule -> ShowS

show :: StyleRule -> String

showList :: [StyleRule] -> ShowS

parseProperties :: Parser ([(Text, [Token])], Text) Source #

Parse "{key: value; ...}" property values, with a psuedoelement.

parseProperties' :: Parser [(Text, [Token])] Source #

Parse "key: value;"... property values, as per the HTML "style" property.

scanValue :: Parser [Token] Source #

Returns tokens before & after a semicolon.