script/loader shortcode
·
1 min read
·
edit
Loader for JS codes in static/js and assets/js.
[no visual available]
usage
{{< script/loader >}}
plotly/3.3.0/plotly-cartesian.min.js
d3/3.5.17/d3.min.js
chartjs/4.5.1/chart.umd.min.js
canvasplot/0.0.0/canvasplot.js
butiran/0.0.29/butiran.min.js
{{< /script/loader >}}
{{< script/loader >}}
26a94.js
{{< /script/loader >}}
code
{{ range split .Inner "\n" }}
{{- $script := trim . " \r" -}}
{{- if ne $script "" -}}
{{- $asset := resources.Get (printf "js/%s" $script) -}}
{{- if $asset -}}
{{- /* assets/js → minify + fingerprint */ -}}
{{- $js := $asset | js.Build | resources.Minify | resources.Fingerprint -}}
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" defer></script>
{{- else -}}
{{- /* static/js → use as-is */ -}}
<script src="{{ printf "js/%s" $script | relURL }}" defer></script>
{{- end -}}
{{- end -}}
{{ end }}
notes
Previous version is as follow.
{{ $baseURL := site.BaseURL }}
{{ range split .Inner "\n" }}
{{- $script := trim . " \r" -}} <!-- Trim spaces and possible trailing \r -->
{{- if ne $script "" -}}
<script src="{{ printf "%sjs/%s?v=%d" $baseURL $script (now.Unix) | relURL }}"></script>
{{- end -}}
{{ end }}
It works only for JS in static/js and is modified as suggested 1 to be the current version.
refs
GPT-5.2, “Minifying JS in Hugo”, ChatGPT, 24 Jan 2026, url https://chatgpt.com/share/6974d6e1-b650-800a-8771-c96d6740dcf3 [20260124]. ↩︎