feat(helm): Allow generating markdown docs headers

For backwards-compatibility, the generation of markdown headers is
only enabled through the --generate-headers flag.

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
pull/9029/head
Marc Khouzam 4 years ago committed by Marc Khouzam
parent b266c2ef0f
commit d9c5754dfc

@ -16,8 +16,11 @@ limitations under the License.
package main package main
import ( import (
"fmt"
"io" "io"
"path"
"path/filepath" "path/filepath"
"strings"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
@ -38,9 +41,10 @@ It can also generate bash autocompletions.
` `
type docsOptions struct { type docsOptions struct {
dest string dest string
docTypeString string docTypeString string
topCmd *cobra.Command topCmd *cobra.Command
generateHeaders bool
} }
func newDocsCmd(out io.Writer) *cobra.Command { func newDocsCmd(out io.Writer) *cobra.Command {
@ -62,6 +66,7 @@ func newDocsCmd(out io.Writer) *cobra.Command {
f := cmd.Flags() f := cmd.Flags()
f.StringVar(&o.dest, "dir", "./", "directory to which documentation is written") f.StringVar(&o.dest, "dir", "./", "directory to which documentation is written")
f.StringVar(&o.docTypeString, "type", "markdown", "the type of documentation to generate (markdown, man, bash)") f.StringVar(&o.docTypeString, "type", "markdown", "the type of documentation to generate (markdown, man, bash)")
f.BoolVar(&o.generateHeaders, "generate-headers", false, "generate standard headers for markdown files")
return cmd return cmd
} }
@ -69,6 +74,18 @@ func newDocsCmd(out io.Writer) *cobra.Command {
func (o *docsOptions) run(out io.Writer) error { func (o *docsOptions) run(out io.Writer) error {
switch o.docTypeString { switch o.docTypeString {
case "markdown", "mdown", "md": case "markdown", "mdown", "md":
if o.generateHeaders {
standardLinks := func(s string) string { return s }
hdrFunc := func(filename string) string {
base := filepath.Base(filename)
name := strings.TrimSuffix(base, path.Ext(base))
title := strings.Title(strings.Replace(name, "_", " ", -1))
return fmt.Sprintf("---\ntitle: \"%s\"\n---\n\n", title)
}
return doc.GenMarkdownTreeCustom(o.topCmd, o.dest, hdrFunc, standardLinks)
}
return doc.GenMarkdownTree(o.topCmd, o.dest) return doc.GenMarkdownTree(o.topCmd, o.dest)
case "man": case "man":
manHdr := &doc.GenManHeader{Title: "HELM", Section: "1"} manHdr := &doc.GenManHeader{Title: "HELM", Section: "1"}

Loading…
Cancel
Save