diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..6811a54 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,38 @@ +const removeNewlines = (string) => string.replace(/\n$/g, ""); + +// See https://gohugo.io/hugo-pipes/postprocess/#css-purging-with-postcss +const purgecss = require("@fullhuman/postcss-purgecss")({ + content: [ + // + // TODO: Maybe use process.cwd() to get some heuristics of what + // is going on, i.e. which of the following cases we are in. + // + + // When this file is copied to the root of your Hugo site + "./hugo_stats.json", + // When your Hugo site does not have its own postcss.config.js + // and hence this file is used inside ./themes/hugo-product-launch + "../../hugo_stats.json", + // When building the exampleSite during development + "./exampleSite/hugo_stats.json", + ], + defaultExtractor: (content) => { + let els = JSON.parse(content).htmlElements; + // An HTML element-name may include a newline, e.g. + // Yo! + // Thus we remove those newlines. + return els.tags.concat(els.classes, els.ids).map(removeNewlines); + }, +}); + +module.exports = { + plugins: [ + require("postcss-import"), + require("tailwindcss"), + require("autoprefixer"), + // ...(process.env.HUGO_ENVIRONMENT === "production" ? [purgecss] : []), + ], +};