mirror of
https://github.com/tiennm99/HugoBlox-kit.git
synced 2026-10-14 04:15:40 +00:00
BREAKING CHANGE Module paths moved to `github.com/HugoBlox/kit` with new names: - core `blox-tailwind` → `blox` - analytics → `analytics` - netlify → `integrations/netlify` - slides (reveal) → `slides` Update go.mod, module.yaml/params, scripts, tests, and v0.11 migration guide accordingly.
43 lines
1.5 KiB
HTML
43 lines
1.5 KiB
HTML
{{/*
|
|
HugoBlox Image Engine: Get website favicon/icon
|
|
|
|
SVG-first detection for modern browser support.
|
|
Auto-detects from assets/media/:
|
|
1. icon.svg (preferred - vector, supports dark mode)
|
|
2. icon.png (fallback - raster, processed by Hugo)
|
|
|
|
Input: size (int) - Only used for PNG processing
|
|
Output: dict with:
|
|
- resource: The icon resource
|
|
- type: MIME type ("image/svg+xml" or "image/png")
|
|
- is_svg: boolean
|
|
*/}}
|
|
|
|
{{ $size := . | default 32 }}
|
|
{{ $result := dict "resource" nil "type" "" "is_svg" false }}
|
|
|
|
{{/* 1. Check for SVG first (preferred) */}}
|
|
{{ $icon_svg := resources.Get "media/icon.svg" }}
|
|
{{ if $icon_svg }}
|
|
{{ $result = dict "resource" $icon_svg "type" "image/svg+xml" "is_svg" true }}
|
|
{{ else }}
|
|
{{/* 2. Fallback to PNG */}}
|
|
{{ $icon_png := resources.Get "media/icon.png" }}
|
|
{{ if $icon_png }}
|
|
{{ $icon_resized := $icon_png.Fill (printf "%sx%s Center" (string $size) (string $size)) }}
|
|
{{ $result = dict "resource" $icon_resized "type" "image/png" "is_svg" false }}
|
|
{{ else }}
|
|
{{/* 3. Ultimate fallback: Try to generate from logo */}}
|
|
{{ $logo_png := resources.Get "media/logo.png" }}
|
|
{{ if $logo_png }}
|
|
{{ $icon_from_logo := $logo_png.Fill (printf "%sx%s Center" (string $size) (string $size)) }}
|
|
{{ $result = dict "resource" $icon_from_logo "type" "image/png" "is_svg" false }}
|
|
{{ else }}
|
|
{{/* 4. No icon found */}}
|
|
{{ warnf "No favicon found. Please add assets/media/icon.svg (preferred) or assets/media/icon.png" }}
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
{{ return $result }}
|