78 lines
2.8 KiB
HTML
78 lines
2.8 KiB
HTML
|
{{/*
|
||
|
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 }}
|