{{/* style/GetMainCSS Process the main css stylesheet and return as resource @author @regisphilibert @context Any (.) @returns Resource @uses - func/style/GetResource */}} {{ $main_style := dict }} {{/* We prepare a slice of resources to be concatenated as one */}} {{ $assets_to_concat := slice }} {{/* We add locale css files to the slice in the proper order */}} {{ range slice "_tachyons.css" "_code.css" "_hugo-internal-templates.css" "_social-icons.css" "_styles.css" }} {{ with partialCached "func/style/GetResource" . . }} {{ $assets_to_concat = $assets_to_concat | append . }} {{ end }} {{ end }} {{ with partialCached "func/socials/Get" "socials/Get" }} {{ $socials_rules := slice }} {{ range $service := . }} {{ with .color }} {{ $rule := printf ` .ananke-socials a.%s:hover { color: %s }` $service.name $service.color }} {{ $socials_rules = $socials_rules | append $rule }} {{ end }} {{ end }} {{ with $socials_rules }} {{ $socials_rules = delimit . "" }} {{ $socials_css := $socials_rules | resources.FromString "ananke/css/generated_socials.css" }} {{ $assets_to_concat = $assets_to_concat | append $socials_css }} {{ end }} {{ end }} {{/* We look for any custom css files registered by the user under `site.params.custom_css and if found in the theme's css asset directory we (unless condition below) add to aforementioned slice */}} {{ with site.Params.custom_css }} {{ range . }} {{ with partialCached "func/style/GetResource" . . }} {{ if eq .MediaType.SubType "x-scss" "x-sass" "scss" "sass" }} {{ if hugo.IsExtended }} {{/* as we cannot concatenate styles of different types, we sass/scss to be transformed to css beforehand */}} {{ $assets_to_concat = $assets_to_concat | append (. | resources.ToCSS) }} {{ else }} {{ partial "func/warn" (printf "Processing of stylesheet %s of type %s has been skipped. You need Hugo Extended to process such files." .Name .MediaType.SubType) }} {{ end }} {{ else }} {{ $assets_to_concat = $assets_to_concat | append . }} {{ end }} {{ end }} {{ end }} {{ end }} {{ with $assets_to_concat }} {{/* We proceed to concatenate the $assets_to_concat */}} {{ $style := . | resources.Concat "ananke/css/main.css" }} {{/* We then use toCSS to add sourceMap and minify */}} {{ $options := dict "enableSourceMap" true "precision" 6 }} {{ $style = $style | resources.ToCSS $options | minify }} {{/* We fingerprint in production for cache busting purposes */}} {{ if eq (getenv "HUGO_ENV") "production" }} {{ $style = $style | fingerprint }} {{ end }} {{/* We're ready to set returning variable with resulting resource */}} {{ $main_style = $style }} {{ end }} {{ return $main_style }}