package threadspost import ( "strings" ) // FormatDraftText normalizes generated post bodies without destroying the author's voice. func FormatDraftText(text string) string { text = strings.ReplaceAll(text, "\r\n", "\n") text = strings.ReplaceAll(text, "\r", "\n") text = strings.TrimSpace(text) if text == "" { return "" } lines := strings.Split(text, "\n") out := make([]string, 0, len(lines)) blankCount := 0 for _, line := range lines { line = strings.TrimSpace(line) if line == "" { blankCount++ if blankCount <= 1 && len(out) > 0 { out = append(out, "") } continue } blankCount = 0 out = append(out, line) } for len(out) > 0 && out[len(out)-1] == "" { out = out[:len(out)-1] } return ClampPublish(strings.Join(out, "\n")) }