hugo-theme-relearn/layouts/partials/shortcodes/openapi.html
Sören Weber b0c38a6257
openapi: adjust to Hugo's build-in link render hook #860
- resolve render hook destination with leading ./
- configurable message for unresolved local adresses
2024-05-28 22:17:36 +02:00

36 lines
No EOL
1.3 KiB
HTML

{{- $page := .page }}
{{- if and (not $page) .context }}
{{- $page = .context }}
{{- warnf "%q: DEPRECATED parameter 'context' for shortcode 'openapi' found, use 'page' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#5180" $page.File.Filename }}
{{- end }}
{{- $u := urls.Parse .src }}
{{- $src := $u.String }}
{{- $spec := "" }}
{{- $id := cond (or (eq .id nil) (eq .id "")) (partial "make-random-md5.hugo" $page) .id }}
{{- if not $u.IsAbs }}
{{- $path := strings.TrimPrefix "./" $u.Path }}
{{- with or
($page.Resources.Get $path)
(resources.Get $path)
}}
{{- $src = "" }}
{{- $spec = .Content }}
{{- else }}
{{- if eq $page.Site.Params.openapi.errorlevel "warning" }}
{{- warnf "%q: OpenAPI spec link '%s' is not a resource but linked anyways" $page.File.Filename .url }}
{{- else if eq $page.Site.Params.openapi.errorlevel "error" }}
{{- errorf "%q: OpenAPI spec link '%s' is not a resource" $page.File.Filename .url }}
{{- end }}
{{- end }}
{{- end }}
{{- with $page }}
<div class="sc-openapi-wrapper is-loading helper-loading-container">
<div
class="sc-openapi-container"
id="R-openapi-{{ $id }}"
data-openapi-url="{{ $src }}"
data-openapi-spec="{{ $spec | safeHTMLAttr }}"
></div>
</div>
{{- .Store.Set "hasOpenApi" true }}
{{- end }}