Skip to content

Unity-Technologies/ExCSS

 
 

Repository files navigation

#ExCSS StyleSheet Parser for .NET - It's #BADA55!#

ExCSS (Pronounced Excess) is a CSS 2.1 and CSS 3 parser for .NET.

The goal of ExCSS is to make it easy to read and parse stylesheets into a friendly object model with full LINQ support.

#Version 2.0# Version 2 has been rewritten from the ground up! Unlike v1 which used Coco/r to generate a lexer and parser, version 2 is written entirely by hand. This gives the new parser an incredibly fine grained level of detail when parsing some of the more unusual edge cases for CSS 3 selectors.

#NuGet# Install the pagckage from the NuGet Package Manager or via command line

Install-Package ExCSS 

#Lexing and Parsing - How it all Works# ExCSS uses a Lexer and a Parser based on a CSS3-specific grammar. The Lexer and Parser read CSS text and parse each character as individual tokens run against a complex set of rules that define what CSS segment each token represents.
Once parsed, the input styles sheet is turned into a standard .NET object model. That means it's fully queryable using Linq to objects.

##A basic example:##

var parser = new Parser();
var stylesheet = parser.Parse(".someClass{color: red; background-image: url('/images/logo.png')");

var imageUrl = stylesheet.Rulesets
            .SelectMany(r => r.Declarations)
            .FirstOrDefault(d => d.Name.Equals("background-image", StringComparison.InvariantCultureIgnoreCase))
            .Term
            .ToString(); // Finds the url('/images/logo.png') image url

##CSS 3 Compatible## The project has a growing suite of tests. Currently the tests account for and pass all CSS Level 3 selector definitions found in the W3 CSS 3 Release Candidate documentation

To correctly build the project and run the tests

  • Use visual studio 2022
  • Install NUnit3TestAdapter:
    • Tools/NuGet Package Manager/Pacakge Manager Console
    • Execute the following command: NuGet\Install-Package NUnit3TestAdapter -Version 3.17.0
  • Build the ExCSS.Unity.VS2010 project (right-click on the project, build)
  • Build the EXCSs.Unity.Tests project (right-click on the project, build)
  • Open the Test Explorer: View / Test Explorer (from the menu).
  • Run all the tests by clicking on the play which has the tooltip "Run All Tests In View".

About

A CSS Parser for .NET. It's BADA55!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 98.5%
  • CSS 1.3%
  • Batchfile 0.2%