Files
FixIt/layouts/_partials/plugin/icon.html
T
Cell b5419ef704 fix(assets): fix nil pointer in icon.html and correct QQ icon names
Use `with` block to guard against nil resource in icon.html, preventing
panic when `resources.Get` fails. Correct simple-icons names from
`tencentqq` to `qq` for QQ and QQ Group social links.
2026-07-10 21:12:56 +08:00

37 lines
1.3 KiB
HTML

{{- /*
Icon renderer for Font Awesome classes and SVG sources.
- Renders <i> element when Class is provided.
- Resolves local SVG resources or external SVG URL fallback.
- Supports Simple Icons shorthand by icon name.
@param {String} [.Class] - Icon class name for <i>
@param {String} [.Src] - SVG source path or URL
@param {String} [.Simpleicons] - Simple-icons icon name
@param {String} [.Prefix] - Custom prefix for simple-icons source path
*/ -}}
{{- with .Class -}}
<i class="{{ . }}" aria-hidden="true"></i>
{{- else -}}
{{- $src := .Src -}}
{{- with .Simpleicons -}}
{{- $prefix := $.Prefix | default "lib/simple-icons/icons" | strings.TrimSuffix "/" -}}
{{- $src = printf "%v/%v.svg" $prefix . -}}
{{- end -}}
{{- if not $src -}}
{{- errorf "Icon src is missing: %s" templates.Current.Filename -}}
{{- end -}}
{{- if (urls.Parse $src).Host | not -}}
{{- with resources.Get $src -}}
{{- $resource := . | resources.Minify -}}
{{- $resource.Content | replaceRE `<svg ` `<svg class="icon" ` | safeHTML -}}
{{- else -}}
{{- errorf "Icon does not exist %v" $src -}}
{{- end -}}
{{- else -}}
{{- /* fetch svg icon from external source */ -}}
<i data-svg-src="{{ $src }}" aria-hidden="true"></i>
{{- end -}}
{{- end -}}