From 64abc83fc4b70c70458c582ae2cf67fc9c67bb3f Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 8 Oct 2021 22:34:08 -0700 Subject: [PATCH] Allow multiple plugins in the PostCSS options map Usage: {{ $options := dict "use" "autoprefixer postcss-color-alpha" }} {{ $style := resources.Get "main.css" | resources.PostCSS $options }} Fixes #9015 --- docs/content/en/hugo-pipes/postcss.md | 11 +++++++---- resources/resource_transformers/postcss/postcss.go | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/content/en/hugo-pipes/postcss.md b/docs/content/en/hugo-pipes/postcss.md index 391868c59..2a119258e 100755 --- a/docs/content/en/hugo-pipes/postcss.md +++ b/docs/content/en/hugo-pipes/postcss.md @@ -15,12 +15,10 @@ sections_weight: 40 draft: false --- - Any asset file can be processed using `resources.PostCSS` which takes for argument the resource object and a slice of options listed below. The resource will be processed using the project's or theme's own `postcss.config.js` or any file set with the `config` option. - ```go-html-template {{ $css := resources.Get "css/main.css" }} {{ $style := $css | resources.PostCSS }} @@ -31,6 +29,7 @@ Hugo Pipe's PostCSS requires the `postcss-cli` JavaScript package to be installe If you are using the Hugo Snap package, PostCSS and plugin(s) need to be installed locally within your Hugo site directory, e.g., `npm install postcss-cli` without the `-g` flag. {{% /note %}} + ### Options config [string] @@ -48,7 +47,7 @@ Hugo will look for imports relative to the module mount and will respect theme o _If no configuration file is used:_ use [string] -: List of PostCSS plugins to use +: Space-delimited list of PostCSS plugins to use parser [string] : Custom PostCSS parser @@ -60,7 +59,11 @@ syntax [string] : Custom postcss syntax ```go-html-template -{{ $style := resources.Get "css/main.css" | resources.PostCSS (dict "config" "customPostCSS.js" "noMap" true) }} +{{ $options := dict "config" "customPostCSS.js" "noMap" true }} +{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }} + +{{ $options := dict "use" "autoprefixer postcss-color-alpha" }} +{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }} ``` ## Check Hugo Environment from postcss.config.js diff --git a/resources/resource_transformers/postcss/postcss.go b/resources/resource_transformers/postcss/postcss.go index 5fcadd937..8104d0336 100644 --- a/resources/resource_transformers/postcss/postcss.go +++ b/resources/resource_transformers/postcss/postcss.go @@ -113,7 +113,8 @@ func (opts Options) toArgs() []string { args = append(args, "--no-map") } if opts.Use != "" { - args = append(args, "--use", opts.Use) + args = append(args, "--use") + args = append(args, strings.Fields(opts.Use)...) } if opts.Parser != "" { args = append(args, "--parser", opts.Parser)