postcss-add-block-lint

A PostCSS plugin that is used to lint css for existence of classes that might trigger add blockers.

Usage no npm install needed!

<script type="module">
  import postcssAddBlockLint from 'https://cdn.skypack.dev/postcss-add-block-lint';
</script>

README

PostCSS Add Block Lint

IMPORTANT: This project is no longer maintained.

A PostCSS plugin that is used to lint css for existence of classes that might trigger add blockers.

Where do I start?

These instructions are only for this plugin. See the PostCSS website for framework information.

Install

Using Yarn

yarn add postcss-add-block-lint --exact --dev

Using NPM

npm install postcss-add-block-lint --save-dev --save-exact

Configure

Add to your PostCSS configuration.

With Gulp

const Gulp = require("gulp");
const PostCSS = require("gulp-postcss");
const AddBlockLint = require("postcss-add-block-lint");

Gulp.task("css", () =>
    Gulp.src("./src/*.css").pipe(
        PostCSS([
            AddBlockLint({
                rules: [
                    `${__dirname}/data/easylist.txt`,
                    `${__dirname}/data/easylist-cookie.txt`,
                    `${__dirname}/data/fanboy-social.txt`,
                    `${__dirname}/data/fanboy-annoyance.txt`,
                ],
            }),
        ])
    )
);

With WebPack

const AddBlockLint = require("postcss-add-block-lint");

module.exports = {
    module: {
        rules: [
            {
                test: /\.css$/,
                use: [
                    "style-loader",
                    { loader: "css-loader", options: { importLoaders: 1 } },
                    {
                        loader: "postcss-loader",
                        options: {
                            plugins: [
                                AddBlockLint({
                                    rules: [
                                        `${__dirname}/data/easylist.txt`,
                                        `${__dirname}/data/easylist-cookie.txt`,
                                        `${__dirname}/data/fanboy-social.txt`,
                                        `${__dirname}/data/fanboy-annoyance.txt`,
                                    ],
                                }),
                            ],
                        },
                    },
                ],
            },
        ],
    },
};

Based on example from https://webpack.js.org/loaders/postcss-loader/.

Prepare

Ensure that ad blocking lists are downloaded to ./data directory.

yarn prepare

Review

When matches are found, they will be outputted to the console.

Error Display

What options does it have?

Minimal

The minimal required configuration is the rules list, as shown in the above example.

AddBlockLint({
    rules: [
        `${__dirname}/data/easylist.txt`,
        `${__dirname}/data/easylist-cookie.txt`,
        `${__dirname}/data/fanboy-social.txt`,
        `${__dirname}/data/fanboy-annoyance.txt`,
    ],
});

Lists shown in the above example can be accessed from the following locations:

Want to lean more?

  • See our Contributing Guide for details on how this repository is developed.
  • See our Changelog for details on which features, improvements, and bug fixes have been implemented
  • See our License for details on how you can use the code in this repository.
  • See our Security Guide for details on how security is considered.