11const autoprefixer = require ( 'autoprefixer' ) ( { } )
22const cssnano = require ( 'cssnano' ) ( {
3- preset : 'advanced'
3+ preset : [ 'advanced' , {
4+ discardUnused : {
5+ fontFace : false // Preserve all @font -face declarations
6+ }
7+ } ]
48} )
5- const whitelister = require ( 'purgecss-whitelister' )
69const purgeImport = require ( '@fullhuman/postcss-purgecss' )
710const purgeCSSPlugin = purgeImport . purgeCSSPlugin || purgeImport . default || purgeImport
811const purgecss = purgeCSSPlugin ( {
@@ -12,38 +15,66 @@ const purgecss = purgeCSSPlugin({
1215 return [ ...( els . tags || [ ] ) , ...( els . classes || [ ] ) , ...( els . ids || [ ] ) ]
1316 } ,
1417 dynamicAttributes : [ 'data-bs-theme' , 'data-bs-theme-animate' ] ,
15- safelist : [ 'was-validated' ,
16- ...whitelister ( [
17- './assets/scss/components/_clipboard.scss' ,
18- './assets/scss/components/_command.scss' ,
19- './assets/scss/components/_nav.scss' ,
20- './assets/scss/components/_navbar.scss' ,
21- './assets/scss/components/_pagination.scss' ,
22- './assets/scss/components/_search.scss' ,
23- './assets/scss/components/_syntax.scss' ,
24- './assets/scss/components/_syntax-dark.scss' ,
25- './assets/scss/components/_syntax-light.scss' ,
26- './assets/scss/components/_table.scss' ,
27- './assets/scss/components/_testimonial.scss' ,
28- './assets/scss/components/_video.scss' ,
29- './assets/scss/theme/fonts.scss' ,
30- './assets/scss/theme/theme.scss' ,
31- './component-library/components/list/list.scss' ,
32- './_vendor/github.com/gethinode/mod-cookieyes/v2/assets/scss/cookieyes.scss' ,
33- './_vendor/github.com/gethinode/mod-flexsearch/v3/assets/scss/modules/flexsearch/flexsearch.scss' ,
34- './_vendor/github.com/gethinode/mod-katex/dist/katex.scss' ,
35- './_vendor/github.com/gethinode/mod-leaflet/v2/dist/leaflet.scss' ,
36- './_vendor/github.com/gethinode/mod-mermaid/v3/assets/scss/mermaid.scss' ,
37- './_vendor/github.com/gethinode/mod-simple-datatables/v3/dist/simple-datatables.scss' ,
38- './_vendor/github.com/twbs/bootstrap/scss/_carousel.scss' ,
39- './_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss' ,
40- './_vendor/github.com/twbs/bootstrap/scss/_modal.scss' ,
41- './_vendor/github.com/twbs/bootstrap/scss/_reboot.scss' ,
42- './_vendor/github.com/twbs/bootstrap/scss/_tooltip.scss' ,
43- './_vendor/github.com/twbs/bootstrap/scss/_transitions.scss' ,
44- './_vendor/github.com/twbs/bootstrap/scss/_utilities.scss'
45- ] )
46- ]
18+ fontFace : false ,
19+ safelist : {
20+ standard : [
21+ // Bootstrap form validation
22+ 'was-validated' ,
23+ // Bootstrap dynamic states
24+ 'show' ,
25+ 'showing' ,
26+ 'hiding' ,
27+ 'active' ,
28+ 'disabled' ,
29+ 'collapsed' ,
30+ 'collapsing'
31+ ] ,
32+ // Classes with these patterns will be preserved along with their children
33+ deep : [
34+ // Bootstrap components that get dynamically modified
35+ / m o d a l / ,
36+ / d r o p d o w n / ,
37+ / c a r o u s e l / ,
38+ / t o o l t i p / ,
39+ / p o p o v e r / ,
40+ / c o l l a p s e / ,
41+ / o f f c a n v a s /
42+ ] ,
43+ // Preserve any selector containing these patterns
44+ greedy : [
45+ // Third-party library prefixes (well-namespaced, safe to use greedy)
46+ / ^ f a - / , // FontAwesome
47+ / ^ l e a f l e t - / , // Leaflet maps
48+ / ^ k a t e x - / , // KaTeX math (note: using katex- not just katex)
49+ / ^ m e r m a i d / , // Mermaid diagrams
50+ / ^ d a t a t a b l e / i, // SimpleDatatables
51+ / ^ c k y - / , // CookieYes
52+
53+ // Component-specific prefixes
54+ / c l i p b o a r d - / , // Clipboard component
55+ / c o m m a n d - / , // Command component
56+ / s e a r c h - / , // Search functionality
57+ / s u g g e s t i o n _ _ / , // Search suggestions (FlexSearch)
58+ / t e s t i m o n i a l - / , // Testimonial component
59+
60+ // Syntax highlighting (multiple possible engines)
61+ / ^ h l j s - / , // highlight.js
62+ / ^ l a n g u a g e - / , // Prism/generic
63+ / ^ c h r o m a - / , // Chroma (Hugo's highlighter)
64+ / ^ h i g h l i g h t / , // Generic highlighting classes
65+
66+ // Pagination and navigation
67+ / p a g e - i t e m / ,
68+ / p a g e - l i n k / ,
69+ / n a v - i t e m / ,
70+ / n a v - l i n k / ,
71+ / n a v b a r - / ,
72+
73+ // Bootstrap transitions and utilities that get added via JS
74+ / f a d e / ,
75+ / ^ t r a n s l a t e / // Bootstrap utilities
76+ ]
77+ }
4778} )
4879
4980module . exports = {
0 commit comments