Skip to content

Commit

Permalink
fix(internal/godocfx): only put TOC status on mod if all pkgs have sa…
Browse files Browse the repository at this point in the history
…me status (#4974)
  • Loading branch information
tbpg committed Oct 11, 2021
1 parent 3441e1f commit 309b59e
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions internal/godocfx/parse.go
Expand Up @@ -543,9 +543,23 @@ func processExamples(exs []*doc.Example, fset *token.FileSet) []example {
func buildTOC(mod string, pis []pkgload.Info, extraFiles []extraFile) tableOfContents {
toc := tableOfContents{}

// If all of the packages have the same status, only put the status on
// the module instead of all of the individual packages.
uniqueStatuses := map[string]struct{}{}
for _, pi := range pis {
uniqueStatuses[pi.Status] = struct{}{}
}
modStatus := ""
if len(uniqueStatuses) == 1 {
for status := range uniqueStatuses {
modStatus = status
}
}

modTOC := &tocItem{
UID: mod,
Name: mod,
UID: mod,
Name: mod,
Status: modStatus,
}

for _, ef := range extraFiles {
Expand All @@ -563,10 +577,14 @@ func buildTOC(mod string, pis []pkgload.Info, extraFiles []extraFile) tableOfCon
importPath := pi.Doc.ImportPath
if importPath == mod {
// Add the module root package immediately with the full name.
rootPkgStatus := pi.Status
if modStatus != "" {
rootPkgStatus = ""
}
modTOC.addItem(&tocItem{
UID: mod,
Name: mod,
Status: pi.Status,
Status: rootPkgStatus,
})
continue
}
Expand All @@ -575,7 +593,9 @@ func buildTOC(mod string, pis []pkgload.Info, extraFiles []extraFile) tableOfCon
}
trimmed := strings.TrimPrefix(importPath, mod+"/")
trimmedPkgs = append(trimmedPkgs, trimmed)
statuses[trimmed] = pi.Status
if modStatus == "" {
statuses[trimmed] = pi.Status
}
}

sort.Strings(trimmedPkgs)
Expand Down

0 comments on commit 309b59e

Please sign in to comment.