@@ -157,7 +157,7 @@ func (g *generator) Generate(ctx context.Context) error {
157157 return err
158158 }
159159
160- err = g .renderStaticWebsite ()
160+ err = g .renderStaticWebsite (providerName , providerSchema )
161161 if err != nil {
162162 return err
163163 }
@@ -319,7 +319,7 @@ func (g *generator) renderMissingDocs(providerName string, providerSchema *tfjso
319319 return nil
320320}
321321
322- func (g * generator ) renderStaticWebsite () error {
322+ func (g * generator ) renderStaticWebsite (providerName string , providerSchema * tfjson. ProviderSchema ) error {
323323 g .infof ("cleaning rendered website dir" )
324324 err := os .RemoveAll (renderedWebsiteDir )
325325 if err != nil {
@@ -357,7 +357,6 @@ func (g *generator) renderStaticWebsite() error {
357357 if err != nil {
358358 return fmt .Errorf ("unable to read file %q: %w" , rel , err )
359359 }
360- tmpl := docTemplate (tmplData )
361360
362361 out , err := os .Create (renderedPath )
363362 if err != nil {
@@ -366,11 +365,59 @@ func (g *generator) renderStaticWebsite() error {
366365 defer out .Close ()
367366
368367 g .infof ("rendering %q" , rel )
368+
369+ relDir , relFile := filepath .Split (rel )
370+ switch relDir {
371+ case "data-sources" :
372+ resName := removeAllExt (relFile )
373+ resSchema , ok := providerSchema .DataSourceSchemas [resName ]
374+ if ok {
375+ tmpl := resourceTemplate (tmplData )
376+ render , err := tmpl .Render ("Data Source" , providerName , resName , "" , "" , resSchema )
377+ if err != nil {
378+ return fmt .Errorf ("unable to render data source template %q: %w" , rel , err )
379+ }
380+ _ , err = out .WriteString (render )
381+ if err != nil {
382+ return fmt .Errorf ("unable to write rendered string: %w" , err )
383+ }
384+ return nil
385+ }
386+ case "resources" :
387+ resName := removeAllExt (relFile )
388+ resSchema , ok := providerSchema .ResourceSchemas [resName ]
389+ if ok {
390+ tmpl := resourceTemplate (tmplData )
391+ render , err := tmpl .Render ("Resource" , providerName , resName , "" , "" , resSchema )
392+ if err != nil {
393+ return fmt .Errorf ("unable to render resource template %q: %w" , rel , err )
394+ }
395+ _ , err = out .WriteString (render )
396+ if err != nil {
397+ return fmt .Errorf ("unable to write regindered string: %w" , err )
398+ }
399+ return nil
400+ }
401+ case "" : // provider
402+ if relFile == "index.md.tmpl" {
403+ tmpl := providerTemplate (tmplData )
404+ render , err := tmpl .Render (providerName , "" , providerSchema .ConfigSchema )
405+ if err != nil {
406+ return fmt .Errorf ("unable to render provider template %q: %w" , rel , err )
407+ }
408+ _ , err = out .WriteString (render )
409+ if err != nil {
410+ return fmt .Errorf ("unable to write rendered string: %w" , err )
411+ }
412+ return nil
413+ }
414+ }
415+
416+ tmpl := docTemplate (tmplData )
369417 err = tmpl .Render (out )
370418 if err != nil {
371419 return fmt .Errorf ("unable to render template %q: %w" , rel , err )
372420 }
373-
374421 return nil
375422 })
376423 if err != nil {
0 commit comments