@@ -157,7 +157,7 @@ func (g *generator) Generate(ctx context.Context) error {
157
157
return err
158
158
}
159
159
160
- err = g .renderStaticWebsite ()
160
+ err = g .renderStaticWebsite (providerName , providerSchema )
161
161
if err != nil {
162
162
return err
163
163
}
@@ -319,7 +319,7 @@ func (g *generator) renderMissingDocs(providerName string, providerSchema *tfjso
319
319
return nil
320
320
}
321
321
322
- func (g * generator ) renderStaticWebsite () error {
322
+ func (g * generator ) renderStaticWebsite (providerName string , providerSchema * tfjson. ProviderSchema ) error {
323
323
g .infof ("cleaning rendered website dir" )
324
324
err := os .RemoveAll (renderedWebsiteDir )
325
325
if err != nil {
@@ -357,7 +357,6 @@ func (g *generator) renderStaticWebsite() error {
357
357
if err != nil {
358
358
return fmt .Errorf ("unable to read file %q: %w" , rel , err )
359
359
}
360
- tmpl := docTemplate (tmplData )
361
360
362
361
out , err := os .Create (renderedPath )
363
362
if err != nil {
@@ -366,11 +365,59 @@ func (g *generator) renderStaticWebsite() error {
366
365
defer out .Close ()
367
366
368
367
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 )
369
417
err = tmpl .Render (out )
370
418
if err != nil {
371
419
return fmt .Errorf ("unable to render template %q: %w" , rel , err )
372
420
}
373
-
374
421
return nil
375
422
})
376
423
if err != nil {
0 commit comments