diff options
author | Jan Raasch <jan@janraasch.com> | 2020-08-17 13:56:05 +0300 |
---|---|---|
committer | Jan Raasch <jan@janraasch.com> | 2020-09-07 12:20:21 +0300 |
commit | 9f00958a5c8a48670b109d0d184576bf53906c39 (patch) | |
tree | 9ddceda1b76e22a5b83b7652ef6f0ad3b392ecd5 /postcss.config.js |
chore: initial commit 🧗🏼♂️
Diffstat (limited to 'postcss.config.js')
-rw-r--r-- | postcss.config.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..e6e0e17 --- /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. + // <a + // href="https://www.yo.com" + // class="pretty-link" + // >Yo!</a> + // 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] : []), + ], +}; |