Skip to content

jrit/declassify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

declassify

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

Example

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>

Options

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.

MIT Licensed

About

Remove any classes or IDs not found in CSS from HTML - modifies HTML, not CSS.

Resources

License

Stars

Watchers

Forks

Packages

No packages published