package main import ( "bytes" "context" "strconv" ) // BrutalistHeadingBlock applies brutalist treatment to heading blocks: kills // default rounding/leading, uses var(--font-heading), tracking-tight, // uppercase on h1/h2. func BrutalistHeadingBlock(ctx context.Context, content map[string]any) string { text := getString(content, "text") textClass := getString(content, "textClass") level := parseBrutalistHeadingLevel(content) var buf bytes.Buffer _ = brutalistHeadingComponent(level, text, textClass).Render(ctx, &buf) return buf.String() } func parseBrutalistHeadingLevel(content map[string]any) int { if v, ok := content["level"].(float64); ok { if l := int(v); l >= 1 && l <= 6 { return l } } if v, ok := content["level"].(int); ok { if v >= 1 && v <= 6 { return v } } if v, ok := content["level"].(string); ok { if n, err := strconv.Atoi(v); err == nil && n >= 1 && n <= 6 { return n } } return 2 }