fix: restore inline navigation in docs-generator writers.go
This commit is contained in:
@@ -22,18 +22,27 @@ var CloudOutputByServiceID = map[int]types.CloudOutputSnapshot{}
|
||||
func ResourceDocs(docsDir string, spec types.ServiceSpec, version string, apiEndpoint string, providerSource string) {
|
||||
base := spec.Name
|
||||
|
||||
WriteFile(filepath.Join(docsDir, base+".md"), buildManualPage(spec))
|
||||
WriteFile(filepath.Join(docsDir, base+"_example.md"), buildExamplePage(spec, version, apiEndpoint, providerSource))
|
||||
WriteFile(filepath.Join(docsDir, base+"_params_create.md"), buildCreateParamsPage(spec))
|
||||
WriteFile(filepath.Join(docsDir, base+"_params_modify.md"), buildModifyParamsPage(spec))
|
||||
WriteFile(filepath.Join(docsDir, base+"_outputs.md"), buildOutputsPage(spec))
|
||||
WriteFile(filepath.Join(docsDir, base+"_ops.md"), buildOpsPage(spec, docsDir))
|
||||
WriteFile(filepath.Join(docsDir, base+"_params.md"), buildParamsLandingPage(spec))
|
||||
navManual := fmt.Sprintf("**Manual** · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base)
|
||||
navCreate := fmt.Sprintf("[Manual](%s.md) · **Create params** · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base)
|
||||
navModify := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · **Modify params** · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base)
|
||||
navOutputs := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · **Output params** · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base)
|
||||
navOps := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · **Operations** · [Example](%s_example.md)", base, base, base, base, base)
|
||||
navExample := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · **Example**", base, base, base, base, base)
|
||||
|
||||
WriteFile(filepath.Join(docsDir, base+".md"), buildManualPage(spec, navManual))
|
||||
WriteFile(filepath.Join(docsDir, base+"_example.md"), buildExamplePage(spec, navExample, version, apiEndpoint, providerSource))
|
||||
WriteFile(filepath.Join(docsDir, base+"_params_create.md"), buildCreateParamsPage(spec, navCreate))
|
||||
WriteFile(filepath.Join(docsDir, base+"_params_modify.md"), buildModifyParamsPage(spec, navModify))
|
||||
WriteFile(filepath.Join(docsDir, base+"_outputs.md"), buildOutputsPage(spec, navOutputs))
|
||||
WriteFile(filepath.Join(docsDir, base+"_ops.md"), buildOpsPage(spec, navOps, docsDir))
|
||||
WriteFile(filepath.Join(docsDir, base+"_params.md"), buildParamsLandingPage(spec, navManual))
|
||||
|
||||
for _, srName := range CollectSubresources(spec) {
|
||||
srBase := fmt.Sprintf("%s_%s", base, Slug(srName))
|
||||
WriteFile(filepath.Join(docsDir, srBase+".md"), buildSubresourcePage(spec, srName))
|
||||
WriteFile(filepath.Join(docsDir, srBase+"_example.md"), buildSubresourceExamplePage(spec, srName, version, apiEndpoint, providerSource))
|
||||
srNav := fmt.Sprintf("[%s (основной)](%s.md) | [Operations](%s_ops.md) | [%s](%s.md) | [Example](%s_example.md)",
|
||||
spec.ServiceDisplayName, base, base, Capitalize(srName), srBase, srBase)
|
||||
WriteFile(filepath.Join(docsDir, srBase+".md"), buildSubresourcePage(spec, srName, srNav))
|
||||
WriteFile(filepath.Join(docsDir, srBase+"_example.md"), buildSubresourceExamplePage(spec, srName, srNav, version, apiEndpoint, providerSource))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,17 +123,17 @@ func FindSubresourceParams(ops []types.OperationSpec, srName, action string) []t
|
||||
|
||||
// ===== internal helpers =====
|
||||
|
||||
func buildHeader(spec types.ServiceSpec) string {
|
||||
func buildHeader(spec types.ServiceSpec, nav string) string {
|
||||
name := spec.ServiceDisplayName
|
||||
if name == "" {
|
||||
name = spec.Name
|
||||
}
|
||||
return fmt.Sprintf("# Resource nubes_%s · Service ID: %d · Service Name: %s\n\n", spec.Name, spec.ServiceID, name)
|
||||
return fmt.Sprintf("# Resource nubes_%s · Service ID: %d · Service Name: %s\n\n%s\n\n", spec.Name, spec.ServiceID, name, nav)
|
||||
}
|
||||
|
||||
func buildManualPage(spec types.ServiceSpec) string {
|
||||
func buildManualPage(spec types.ServiceSpec, nav string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString("## MAN\n\n")
|
||||
man := strings.TrimSpace(spec.ServiceMan)
|
||||
if man == "" {
|
||||
@@ -175,9 +184,9 @@ func htmlToMarkdown(s string) string {
|
||||
return strings.TrimSpace(s)
|
||||
}
|
||||
|
||||
func buildExamplePage(spec types.ServiceSpec, version string, apiEndpoint string, providerSource string) string {
|
||||
func buildExamplePage(spec types.ServiceSpec, nav string, version string, apiEndpoint string, providerSource string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString(fmt.Sprintf("## Minimal example — only required parameters\n\n"))
|
||||
b.WriteString("```hcl\n")
|
||||
b.WriteString(minimalExampleBlock(spec, version, apiEndpoint, providerSource))
|
||||
@@ -272,9 +281,9 @@ func minimalExampleBlock(spec types.ServiceSpec, version string, apiEndpoint str
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func buildCreateParamsPage(spec types.ServiceSpec) string {
|
||||
func buildCreateParamsPage(spec types.ServiceSpec, nav string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString("## Create params\n\n")
|
||||
createParams := FindParams(spec.Operations, "create")
|
||||
requiredParams, defaultParams := SplitParams(createParams)
|
||||
@@ -313,18 +322,18 @@ func buildCreateParamsPage(spec types.ServiceSpec) string {
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func buildModifyParamsPage(spec types.ServiceSpec) string {
|
||||
func buildModifyParamsPage(spec types.ServiceSpec, nav string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString("## Modify params\n\n")
|
||||
modifyParams := FindParams(spec.Operations, "modify")
|
||||
b.WriteString(renderModifyTable(modifyParams))
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func buildOutputsPage(spec types.ServiceSpec) string {
|
||||
func buildOutputsPage(spec types.ServiceSpec, nav string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString("## Output params\n\n")
|
||||
if len(spec.Outputs.Params) == 0 {
|
||||
b.WriteString("None.\n")
|
||||
@@ -397,9 +406,9 @@ func containsString(values []string, target string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func buildOpsPage(spec types.ServiceSpec, docsDir string) string {
|
||||
func buildOpsPage(spec types.ServiceSpec, nav string, docsDir string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString("## Operations\n\n")
|
||||
for _, op := range spec.Operations {
|
||||
name := op.Name
|
||||
@@ -445,16 +454,16 @@ func buildOpsPage(spec types.ServiceSpec, docsDir string) string {
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func buildParamsLandingPage(spec types.ServiceSpec) string {
|
||||
func buildParamsLandingPage(spec types.ServiceSpec, nav string) string {
|
||||
var b strings.Builder
|
||||
b.WriteString(buildHeader(spec))
|
||||
b.WriteString(buildHeader(spec, nav))
|
||||
b.WriteString("## Parameters\n\n")
|
||||
b.WriteString(fmt.Sprintf("- [Create params](%s_params_create.md)\n", spec.Name))
|
||||
b.WriteString(fmt.Sprintf("- [Modify params](%s_params_modify.md)\n", spec.Name))
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func buildSubresourcePage(spec types.ServiceSpec, srName string) string {
|
||||
func buildSubresourcePage(spec types.ServiceSpec, srName string, nav string) string {
|
||||
var b strings.Builder
|
||||
srResourceName := fmt.Sprintf("nubes_%s_%s", spec.Name, Slug(srName))
|
||||
b.WriteString(fmt.Sprintf("# Resource %s\n\n", srResourceName))
|
||||
@@ -491,7 +500,7 @@ func buildSubresourcePage(spec types.ServiceSpec, srName string) string {
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func buildSubresourceExamplePage(spec types.ServiceSpec, srName string, version string, apiEndpoint string, providerSource string) string {
|
||||
func buildSubresourceExamplePage(spec types.ServiceSpec, srName string, nav string, version string, apiEndpoint string, providerSource string) string {
|
||||
var b strings.Builder
|
||||
srResourceName := fmt.Sprintf("nubes_%s_%s", spec.Name, Slug(srName))
|
||||
b.WriteString(fmt.Sprintf("# Resource %s — Example\n\n", srResourceName))
|
||||
|
||||
Reference in New Issue
Block a user