Fingerprint and minify all resources, move custom css and js to assets dir

This commit is contained in:
Dmitry Kolosov 2020-11-04 19:46:19 +03:00
parent 4c1ba11756
commit e9ee82e764
3 changed files with 34 additions and 11 deletions

View File

@ -61,9 +61,9 @@ params:
images:
- images/og-featured.png # relative path to "static" directory
customCSS:
- css/my.css # relative path to "static" directory
- css/my.css # relative path to "assets" or "static" directory
customJS:
- js/main.js # relative path to "static" directory
- js/main.js # relative path to "assets" or "static" directory
dateFormat: "2006-01-02"
paginationSinglePost: true
style: light-without-switcher

View File

@ -14,20 +14,14 @@
<link rel="icon" type="image/x-icon" href="{{ "favicon.ico" | absURL }}">
<link rel="apple-touch-icon-precomposed" href="{{ "favicon.png" | absURL }}">
{{ $cssTemplate := resources.Get "css/main.css" }}
{{ $style := $cssTemplate | resources.ExecuteAsTemplate "css/style.css" . | resources.ToCSS }}
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
{{ $style = $style | resources.Minify }}
{{ end }}
{{ $style = $style | resources.Fingerprint "sha256" }}
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}">
{{ partial "resource.html" (dict "context" . "type" "css" "filename" "css/main.css") }}
{{ range .Site.Params.customCSS -}}
<link rel="stylesheet" href="{{ . | absURL }}?rnd={{ now.Unix }}">
{{ partial "resource.html" (dict "context" $ "type" "css" "filename" . ) }}
{{- end }}
{{ range .Site.Params.customJS -}}
<script src="{{ . | absURL }}?rnd={{ now.Unix }}" type="text/javascript" charset="utf-8"></script>
{{ partial "resource.html" (dict "context" $ "type" "js" "filename" . ) }}
{{- end }}
{{ template "_internal/opengraph.html" . }}

View File

@ -0,0 +1,29 @@
{{ $targetFilename := "file" }}
{{ if eq .type "css" }}
{{ $targetFilename = "css/style.css"}}
{{ else if eq .type "js" }}
{{ $targetFilename = "js/script.js"}}
{{ end }}
{{ $resource := resources.Get .filename }}
{{ if $resource }}
{{ $resource := $resource | resources.ExecuteAsTemplate $targetFilename . }}
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
{{ $resource = $resource | resources.Minify }}
{{ end }}
{{ $resource = $resource | resources.Fingerprint "sha256" }}
{{ if eq .type "css" }}
<link rel="stylesheet" href="{{ $resource.Permalink }}" integrity="{{ $resource.Data.Integrity }}">
{{ else if eq .type "js" }}
<script src="{{ $resource.Permalink }}" type="text/javascript" charset="utf-8" integrity="{{ $resource.Data.Integrity }}"></script>
{{ end }}
<!-- For backward compatibility -->
{{ else }}
{{ if eq .type "css" }}
<link rel="stylesheet" href="{{ .filename | absURL }}?rnd={{ now.Unix }}">
{{ else if eq .type "js" }}
<script src="{{ .filename | absURL }}?rnd={{ now.Unix }}" type="text/javascript" charset="utf-8"></script>
{{ end }}
{{ end }}