code: func (tc *TitleConverter) Title(s string) string {
  	idx, pos := 0, 0
  	t := sanitizer.Replace(s)
  	end := len(t)
  	return splitRE.ReplaceAllStringFunc(s, func(m string) string {
  		sm := strings.ToLower(m)
  		pos = strings.Index(t[idx:], m) + idx
  		prev := charAt(t, pos-1)
  		ext := utf8.RuneCountInString(m)
  		idx = pos + ext
  		if tc.ignore(sm, pos == 0 || idx == end) &&
  			(prev == ' ' || prev == '-' || prev == '/') &&
  			charAt(t, pos-2) != ':' && charAt(t, pos-2) != '-' &&
  			(charAt(t, pos+ext) != '-' || charAt(t, pos-1) == '-') {
  			return sm
  		}
  		return toTitle(m, prev)
  	})
  }
docs: // Title returns a copy of the string s in title case format.