code: func ParseTemplateError(err error) (templateName string, line int, description string) {
  	if e, ok := err.(*Error); ok {
  		return "", e.Line, e.Description
  	}
  
  	description = err.Error()
  	i := regexp.MustCompile(`:\d+:`).FindStringIndex(description)
  	if i != nil {
  		line, err = strconv.Atoi(description[i[0]+1 : i[1]-1])
  		if err != nil {
  			templateLog.Error("ParseTemplateError: Failed to parse line number from error message:", "error", err)
  		}
  		templateName = description[:i[0]]
  		if colon := strings.Index(templateName, ":"); colon != -1 {
  			templateName = templateName[colon+1:]
  		}
  		templateName = strings.TrimSpace(templateName)
  		description = description[i[1]+1:]
  	}
  	return templateName, line, description
  }
docs: // Parse the line, and description from an error message like:
  // html/template:Application/Register.html:36: no such template "footer.html"