From 0cdc57bf9ad05ff8bbde6548209d64c6bf9fb413 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Wed, 6 Nov 2024 00:28:17 +0100 Subject: [PATCH] Add function description parsing --- function.go | 7 ++++--- function.tmpl | 2 ++ html-parser.go | 10 ++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/function.go b/function.go index 7ef5230..a69d467 100644 --- a/function.go +++ b/function.go @@ -29,9 +29,10 @@ func init() { type ( Function struct { - Name string - Arguments []Parameter - Returns []Parameter + Name string + Description string + Arguments []Parameter + Returns []Parameter } Parameter struct { Name string diff --git a/function.tmpl b/function.tmpl index 3799f1c..f46c489 100644 --- a/function.tmpl +++ b/function.tmpl @@ -1,8 +1,10 @@ ---@diagnostic disable: missing-return, lowercase-global + {{range .Arguments -}} ---@param {{.Name}} {{.Type}} {{.Description}} {{end -}} {{range .Returns -}} ---@return {{.Type}} {{.Name}} {{if .Description}}#{{.Description}}{{end}} {{end -}} +{{if .Description}}---{{.Description}}{{end}} function {{.Name}}({{range $index, $param := .Arguments}}{{if $index}}, {{end}}{{$param.Name}}{{end}}) end \ No newline at end of file diff --git a/html-parser.go b/html-parser.go index 960e634..bfedb02 100644 --- a/html-parser.go +++ b/html-parser.go @@ -38,6 +38,16 @@ func ParseDoc(html string) (Function, error) { return res, fmt.Errorf("failed parsing html: %v", err) } + doc.Find("div.api-desc").Each(func(i int, s *goquery.Selection) { + log.Printf("Parsing description %s", s.Text()) + desc := s.Text() + desc = strings.ReplaceAll(desc, "\n", " ") + desc = strings.ReplaceAll(desc, "\t", " ") + desc = strings.ReplaceAll(desc, " ", " ") + desc = strings.TrimSpace(desc) + res.Description = desc + }) + isArgs := false isReturn := false doc.Find("div.api-listing > p, div.api-listing > ul").Each(func(i int, s *goquery.Selection) {