package main import ( "bytes" "context" "git.dev.alexdunmow.com/block/core/blocks" ) // LeadershipGridMeta is the block metadata for corporate-modernist:leadership_grid. var LeadershipGridMeta = blocks.BlockMeta{ Key: "leadership_grid", Title: "Leadership Grid", Description: "Responsive 2/3/4-up grid of leadership profiles.", Source: "corporate-modernist", Category: blocks.CategoryContent, } // LeadershipGridMember represents one leader entry. type LeadershipGridMember struct { Name string Role string Bio string Photo string LinkedIn string } // LeadershipGridData carries the parsed content for the leadership_grid block. type LeadershipGridData struct { Title string Members []LeadershipGridMember } // LeadershipGridBlock renders the leadership_grid block. func LeadershipGridBlock(ctx context.Context, content map[string]any) string { rawMembers := getSlice(content, "members") members := make([]LeadershipGridMember, 0, len(rawMembers)) for _, m := range rawMembers { name := getString(m, "name") if name == "" { continue } members = append(members, LeadershipGridMember{ Name: name, Role: getString(m, "role"), Bio: getString(m, "bio"), Photo: getString(m, "photo"), LinkedIn: getString(m, "linkedin"), }) } data := LeadershipGridData{ Title: getString(content, "title"), Members: members, } var buf bytes.Buffer _ = leadershipGridComponent(data).Render(ctx, &buf) return buf.String() }