Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/janraasch/hugo-product-launch.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Raasch <jan@janraasch.com>2020-08-17 13:56:05 +0300
committerJan Raasch <jan@janraasch.com>2020-09-07 12:20:21 +0300
commit9f00958a5c8a48670b109d0d184576bf53906c39 (patch)
tree9ddceda1b76e22a5b83b7652ef6f0ad3b392ecd5 /postcss.config.js
chore: initial commit 🧗🏼‍♂️
Diffstat (limited to 'postcss.config.js')
-rw-r--r--postcss.config.js38
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] : []),
+ ],
+};