cssoptim is a C99 tool that removes unused CSS classes from a stylesheet based on usage in HTML and JavaScript files.
make
make test./build/cssoptim -o output.css input.css input.html input.js-o <file>: Output file path.-v: Enable verbose logging.[files]: List of input files (.css, .html, .js).
- src/main.c: Entry point. Orchestrates the flow.
- src/args.c: Command-line argument parsing using
argparse. - src/css_proc.c: CSS processing using
liblexbor. Parses CSS, filters rules, and serializes output. - src/html_scan.c:
- HTML scanning using
liblexborHTML parser. - JS scanning using a custom simple lexer.
- HTML scanning using
css_optimize(css, len, used_classes, count): Main function to filter CSS.- Uses
liblexborto build an AST, traverses it to find Style rules, checks selectors againstused_classes, and removes unused ones.
scan_html(content, len, list): Parses HTML and extractsclassattributes.scan_js(content, len, list): Scans JS strings for potential class names.