func mermaidFromArchitectureRecursion()

in internal/doc/doc.go [168:185]


func mermaidFromArchitectureRecursion(sb *strings.Builder, mg *alzlib.ArchitectureManagementGroup) {
	archs := mg.Archetypes()
	archetypes := make([]string, len(archs))
	for i, a := range archs {
		archetypes[i] = a.Name()
	}
	archetypesStr := strings.Join(archetypes, ", ")
	fmtStr := `  %s["%s
(%s)"]
`
	sb.WriteString(fmt.Sprintf(fmtStr, mg.Id(), mg.DisplayName(), archetypesStr))
	children := mg.Children()
	slices.SortFunc(children, sortFuncArchitectureManagementGroup)
	for _, child := range children {
		sb.WriteString(fmt.Sprintf("  %s --> %s\n", mg.Id(), child.Id()))
		mermaidFromArchitectureRecursion(sb, child)
	}
}