github.com/esnet/gdg@v0.6.1-0.20240412190737-6b6eba9c14d8/website/config/postcss.config.js (about)

     1  const autoprefixer = require('autoprefixer');
     2  const purgecss = require('@fullhuman/postcss-purgecss');
     3  const whitelister = require('purgecss-whitelister');
     4  
     5  module.exports = {
     6    plugins: [
     7      autoprefixer(),
     8      purgecss({
     9        content: [ './hugo_stats.json' ],
    10        extractors: [
    11          {
    12            extractor: (content) => {
    13              const els = JSON.parse(content).htmlElements;
    14              return els.tags.concat(els.classes, els.ids);
    15            },
    16            extensions: ['json'],
    17          },
    18        ],
    19        dynamicAttributes: [
    20          'aria-expanded',
    21          'data-bs-popper',
    22          'data-bs-target',
    23          'data-bs-theme',
    24          'data-dark-mode',
    25          'data-global-alert',
    26          'data-pane',             // tabs.js
    27          'data-popper-placement',
    28          'data-sizes',
    29          'data-toggle-tab',       // tabs.js
    30          'id',
    31          'size',
    32          'type',
    33        ],
    34        safelist: [
    35          'active',
    36          'btn-clipboard',         // clipboards.js
    37          'clipboard',             // clipboards.js
    38          'disabled',
    39          'hidden',
    40          'modal-backdrop',        // search-modal.js
    41          'selected',              // search-modal.js
    42          'show',
    43          'img-fluid',
    44          'blur-up',
    45          'lazyload',
    46          'lazyloaded',
    47          'alert-link',
    48          'container-fw ',
    49          'container-lg',
    50          'container-fluid',
    51          'offcanvas-backdrop',
    52          'figcaption',
    53          'dt',
    54          'dd',
    55          'showing',
    56          'hiding',
    57          'page-item',
    58          'page-link',
    59          ...whitelister([
    60            './assets/scss/**/*.scss',
    61            './node_modules/@hyas/doks-core/assets/scss/components/_code.scss',
    62            './node_modules/@hyas/doks-core/assets/scss/components/_expressive-code.scss',
    63            './node_modules/@hyas/doks-core/assets/scss/common/_syntax.scss',
    64          ]),
    65        ],
    66      }),
    67    ],
    68  }