Script: Implement a proper type check

Use `printf "%T"` to get a string that indicates the type of the `resource`
context item. Build a resource if its a string.

Pass a minify argument through to the build_js template.
This commit is contained in:
Eryn Wells 2024-08-08 09:55:08 -10:00
parent 8ae8136b8a
commit 23f31c4c10

View file

@ -3,20 +3,27 @@
Emit an HTML script element referring to a JavaScript resource. The resource can
be either a path or a Hugo Resource object. If the former, the resource will be
looked up and built.
@context {string|Resource} resource
The Resource
@context {bool} isModule
@context {bool} minify
If true and the resource is a string, it will be minified as part of the build
step.
@context {bool} module
If true, add information to the script element indicating it should be loaded
as a module
*/ -}}
{{- $resource := .resource -}}
{{- $shouldMinify := .minify -}}
{{- $isModule := .module -}}
{{ if $resource.resource }}
{{ $resource = partial "resource_builders/build_js.html" $resource }}
{{ if eq (printf "%T" $resource) "string" }}
{{
$resource = partial "resource_builders/build_js.html"
(dict "resource" $resource "minify" $shouldMinify)
}}
{{ end }}
{{ with $resource }}