func ProcessMarkdown()

in provider-schema/processors/md.go [13:58]


func ProcessMarkdown(providerDir string) (map[string]*model.ResourceDoc, error) {
	allDocs := make(map[string]*model.ResourceDoc)

	// do below for resources and data sources
	resourceMarkdownDir := filepath.Join(providerDir, "website", "docs", "r")
	dataSourceMarkdownDir := filepath.Join(providerDir, "website", "docs", "d")

	// Walk through the markdown directory
	processDir := func(dir string, isDataSource bool) error {
		err := filepath.Walk(providerDir, func(path string, info os.FileInfo, err error) error {
			if err != nil {
				return err
			}
			if !info.IsDir() && filepath.Ext(path) == ".markdown" {
				// Parse the markdown file
				mark := md.MustNewMarkFromFile(path)
				doc := mark.BuildResourceDoc()

				if isDataSource {
					doc.ResourceName = "datasource#" + doc.ResourceName
				}

				allDocs[doc.ResourceName] = doc
			}
			return nil
		})

		if err != nil {
			return fmt.Errorf("error walking through markdown directory: %v", err)
		}

		return nil
	}

	err := processDir(resourceMarkdownDir, false)
	if err != nil {
		return nil, fmt.Errorf("error processing resource markdown files: %v", err)
	}

	err = processDir(dataSourceMarkdownDir, true)
	if err != nil {
		return nil, fmt.Errorf("error processing data source markdown files: %v", err)
	}

	return allDocs, nil
}