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