package main import ( "bytes" "context" ) // ImageOverrideData is the typed view for the image override component. type ImageOverrideData struct { Src string Alt string Caption string Frame string } // normaliseImageFrame clamps the frame option to the supported set. func normaliseImageFrame(v string) string { switch v { case "stepped", "scallop", "plain": return v default: return "stepped" } } // ArtDecoImageBlock overrides the built-in "image" block when the Art Deco theme is active. // Content: {"src": "...", "alt": "...", "caption": "...", "frame": "stepped|scallop|plain"} func ArtDecoImageBlock(ctx context.Context, content map[string]any) string { data := ImageOverrideData{ Src: getString(content, "src"), Alt: getString(content, "alt"), Caption: getString(content, "caption"), Frame: normaliseImageFrame(getString(content, "frame")), } if data.Src == "" { data.Src = fallbackImage() } var buf bytes.Buffer _ = artDecoImageComponent(data).Render(ctx, &buf) return buf.String() }