From ad71f8cf9f62ddd095728d64dccfabacfc3bf4b4 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Mon, 6 May 2024 18:00:54 +0100 Subject: [PATCH] Output `JSON Fields` section in Markdown Signed-off-by: Babak K. Shandiz --- internal/docs/markdown.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/docs/markdown.go b/internal/docs/markdown.go index 8a193d0b6..19899110d 100644 --- a/internal/docs/markdown.go +++ b/internal/docs/markdown.go @@ -8,12 +8,24 @@ import ( "path/filepath" "strings" + "github.com/cli/cli/v2/internal/text" "github.com/cli/cli/v2/pkg/cmd/root" "github.com/spf13/cobra" "github.com/spf13/cobra/doc" "github.com/spf13/pflag" ) +func printJSONFields(w io.Writer, cmd *cobra.Command) { + raw, ok := cmd.Annotations["help:json-fields"] + if !ok { + return + } + + fmt.Fprint(w, "### JSON Fields\n\n") + fmt.Fprint(w, text.FormatSlice(strings.Split(raw, ","), 0, 0, "`", "`", true)) + fmt.Fprint(w, "\n\n") +} + func printOptions(w io.Writer, cmd *cobra.Command) error { flags := cmd.NonInheritedFlags() flags.SetOutput(w) @@ -135,6 +147,7 @@ func genMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) if err := printOptions(w, cmd); err != nil { return err } + printJSONFields(w, cmd) fmt.Fprint(w, "{% endraw %}\n") if len(cmd.Example) > 0 {