code: func findIncludes(data []byte, opts *Options, includes *[]*File, targetFile *File) error {
  	includePaths, err := findIncludePaths(data, opts, targetFile)
  	if err != nil {
  		return err
  	}
  
  	for _, includePath := range includePaths {
  		if !hasFile(*includes, includePath) {
  			f, err := readFile(includePath, opts)
  			if err != nil {
  				return err
  			}
  
  			*includes = append(*includes, f)
  
  			if err := findIncludes(f.data, opts, includes, f); err != nil {
  				return err
  			}
  		}
  	}
  
  	return nil
  }
docs: // findIncludes finds and adds include files.