Remove any classes or IDs not found in CSS from HTML - modifies HTML, not CSS.
This only considers CSS contained in the HTML document inside <style>
tags to be in use right now. Currently limited to modifying class
and id
attributes, so won't do anything with [data]
or other attributes less commonly used in CSS.
npm install declassify
var declassify = require('declassify');
var result = declassify.process(html);
Input:
<html>
<head>
<style>
.used-class { color: red; }
#used-id { color: blue; }
</style>
</head>
<body class="unused" style="color: black;">
<div class="used-class unused-class"></div>
<div id="used-id"></div>
</body>
</html>
Output:
<html>
<head>
<style>
.used-class { color: red; }
#used-id { color: blue; }
</style>
</head>
<body style="color: black;"> // has removed class="unused"
<div class="used-class"></div> // has removed unused-class
<div id="used-id"></div>
</body>
</html>
var declassify = require('declassify');
var options = {
ignore: [
'ignored-class',
/ignored-regex-class\-[0-9]+/,
'ignored-id',
/ignored-regex-id\-[0-9]+/
],
attrs: ['id', 'class']
};
var result = declassify.process(html, options);
Input:
<html>
<head>
<style>
.used-class { color: gray; }
</style>
</head>
<body id="unused-id" class="unused-class">
<div class="unused-class ignored-class ignored-regex-class-1"></div>
<div class="used-class ignored-class ignored-regex-class-2"></div>
<div id="ignored-id"></div>
<div id="ignored-regex-id-1"></div>
</body>
</html>
Output:
<html>
<head>
<style>
.used-class { color: gray; }
</style>
</head>
<body>
<div class="ignored-class ignored-regex-class-1"></div>
<div class="used-class ignored-class ignored-regex-class-2"></div>
<div id="ignored-id"></div>
<div id="ignored-regex-id-1"></div>
</body>
</html>
There are some other methods exposed by the module which can be considered public and will be considered for versioning, but please see index.js
if you think you might need to use any of them.