docs: add linters description (#3945)

Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
This commit is contained in:
AlduLonghi 2023-07-11 10:46:37 -03:00 committed by GitHub
parent c59e60aa9d
commit d58f140171
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -16,6 +16,8 @@ import (
"reflect" "reflect"
"sort" "sort"
"strings" "strings"
"unicode"
"unicode/utf8"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
@ -302,7 +304,20 @@ func getDesc(lc *linter.Config) string {
} }
} }
return strings.ReplaceAll(desc, "\n", "<br/>") return formatDesc(desc)
}
func formatDesc(desc string) string {
runes := []rune(desc)
r, _ := utf8.DecodeRuneInString(desc)
runes[0] = unicode.ToUpper(r)
if runes[len(runes)-1] != '.' {
runes = append(runes, '.')
}
return strings.ReplaceAll(string(runes), "\n", "<br/>")
} }
func check(b bool, title string) string { func check(b bool, title string) string {
@ -342,6 +357,10 @@ func getThanksList() string {
addedAuthors := map[string]*authorDetails{} addedAuthors := map[string]*authorDetails{}
for _, lc := range lintersdb.NewManager(nil, nil).GetAllSupportedLinterConfigs() { for _, lc := range lintersdb.NewManager(nil, nil).GetAllSupportedLinterConfigs() {
if lc.Internal {
continue
}
if lc.OriginalURL == "" { if lc.OriginalURL == "" {
continue continue
} }
@ -468,7 +487,7 @@ func extractExampleSnippets(example []byte) (*SettingSnippets, error) {
globalNode.Content = append(globalNode.Content, node, newNode) globalNode.Content = append(globalNode.Content, node, newNode)
if node.Value == "linters-settings" { if node.Value == "linters-settings" {
snippets.LintersSettings, err = getLintersSettingSnippets(node, nextNode) snippets.LintersSettings, err = getLintersSettingSections(node, nextNode)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -508,7 +527,19 @@ func extractExampleSnippets(example []byte) (*SettingSnippets, error) {
return &snippets, nil return &snippets, nil
} }
func getLintersSettingSnippets(node, nextNode *yaml.Node) (string, error) { func getLintersSettingSections(node, nextNode *yaml.Node) (string, error) {
lcs := lintersdb.NewManager(nil, nil).GetAllSupportedLinterConfigs()
var lintersDesc = make(map[string]string)
for _, lc := range lcs {
if lc.Internal {
continue
}
// it's important to use lc.Name() nor name because name can be alias
lintersDesc[lc.Name()] = getDesc(lc)
}
builder := &strings.Builder{} builder := &strings.Builder{}
for i := 0; i < len(nextNode.Content); i += 2 { for i := 0; i < len(nextNode.Content); i += 2 {
@ -530,6 +561,7 @@ func getLintersSettingSnippets(node, nextNode *yaml.Node) (string, error) {
} }
_, _ = fmt.Fprintf(builder, "### %s\n\n", nextNode.Content[i].Value) _, _ = fmt.Fprintf(builder, "### %s\n\n", nextNode.Content[i].Value)
_, _ = fmt.Fprintf(builder, "%s\n\n", lintersDesc[nextNode.Content[i].Value])
_, _ = fmt.Fprintln(builder, "```yaml") _, _ = fmt.Fprintln(builder, "```yaml")
encoder := yaml.NewEncoder(builder) encoder := yaml.NewEncoder(builder)