Test basics of counter substitution.
Test counters() handling against longhand rather than shorthand.
Because that's where it'll be passed
Start testing counters implementations, fix syntactic shorthand lowering for counter[s]() functions.
Release XML Conduit Stylist 2.0.0.0!
Refactor style application API to use StyleTree abstraction.
XML Conduit Stylist Refactor: convert XML Conduit tree to Haskell Stylist Element StyleTree.
Drop legacy html2css parsing functions.
Release new Haskell Stylist & XML Conduit Stylist!
XML Conduit Stylist changed to abstract away Haskell Stylist's breaking datastructure changes.
Correct pseudoclass to pseudoelement rewrites to apply to only rightmost selector.
I previously got the semantics of my datastructures backwards: the head is the rightmost selector.
ISSUES: Namespaces have just been implemented.
Remove preceding whitespace from all CSS at-rules.
Lower psuedoclasses & namespaces throughout CSS selectors.
Previously I just applied to them to the rightmost.
Rewrite parsed namespaces according to @namespace rules.
Evaluate attribute namespace selectors.
Parse namespace selectors.
Rewrite trivial cases of :where & :is.
This is mostly for the psuedoselector rewrites performed in Data.CSS.Preprocessor.PsuedoClasses
Compute correct specificity for :is() & :not() pseudoclasses.
Implement :nth-child() & :nth-of-type().
I don't think I'll implement :nth-last-child() & :nth-last-of-type() until I'm shown their value,
Haskell Stylist doesn't yet have access to the data to support them.
Implement :is, :where, & :not functional pseudoclasses.
This is needed by some of the lowerings for other pseudoclasses.
TODO correctly compute specificity.