code: func Parse(buf []byte) (*Secret, error) {
  	s := &Secret{}
  	lines := bytes.SplitN(buf, []byte("\n"), 2)
  	if len(lines) > 0 {
  		s.password = string(bytes.TrimSpace(lines[0]))
  	}
  	if len(lines) > 1 {
  		s.body = string(bytes.TrimSpace(lines[1]))
  	}
  	if err := s.decode(); err != nil {
  		return s, err
  	}
  	return s, nil
  }
docs: // Parse decodes an secret. It will always return a valid secret. If decoding
  // the body to YAML is may return an error which can be ignored.