package svg import ( "fmt" "html" "maps" "slices" "strings" ) type ( Style map[string]string ) func (m Style) PrintKey() string { return "style" } func (m Style) PrintValue() (string, bool) { keys := slices.Collect(maps.Keys(m)) slices.Sort(keys) parts := make([]string, len(m)) for i, k := range keys { parts[i] = fmt.Sprintf(`%s: %s`, k, html.EscapeString(m[k])) } return fmt.Sprintf("%q", strings.Join(parts, "; ")), true }