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 }} |