func main() { cmd.RootCmd.DisableAutoGenTag = true identity := func(s string) string { return fmt.Sprintf(`{{< relref "docs/%s" >}}`, s) } emptyStr := func(s string) string { return "" } doc.GenMarkdownTreeCustom(cmd.RootCmd, "./", emptyStr, identity) }
` var gendocsCmd = &cobra.Command{ Use: "gendocs output_directory", Short: `Output markdown docs for rclone to the directory supplied.`, Long: ` This produces markdown docs for the rclone commands to the directory supplied. These are in a format suitable for hugo to render into the rclone.org website.`, RunE: func(command *cobra.Command, args []string) error { cmd.CheckArgs(1, 1, command, args) out := args[0] err := os.MkdirAll(out, 0777) if err != nil { return err } now := time.Now().Format(time.RFC3339) prepender := func(filename string) string { name := filepath.Base(filename) base := strings.TrimSuffix(name, path.Ext(name)) url := "/commands/" + strings.ToLower(base) + "/" return fmt.Sprintf(gendocFrontmatterTemplate, now, strings.Replace(base, "_", " ", -1), base, url) } linkHandler := func(name string) string { base := strings.TrimSuffix(name, path.Ext(name)) return "/commands/" + strings.ToLower(base) + "/" } return doc.GenMarkdownTreeCustom(cmd.Root, out, prepender, linkHandler) }, }
jww.FEEDBACK.Println("Directory", gendocdir, "does not exist, creating...") hugofs.OsFs.MkdirAll(gendocdir, 0777) } now := time.Now().Format(time.RFC3339) prepender := func(filename string) string { name := filepath.Base(filename) base := strings.TrimSuffix(name, path.Ext(name)) url := "/commands/" + strings.ToLower(base) + "/" return fmt.Sprintf(gendocFrontmatterTemplate, now, strings.Replace(base, "_", " ", -1), base, url) } linkHandler := func(name string) string { base := strings.TrimSuffix(name, path.Ext(name)) return "/commands/" + strings.ToLower(base) + "/" } jww.FEEDBACK.Println("Generating Hugo command-line documentation in", gendocdir, "...") doc.GenMarkdownTreeCustom(cmd.Root(), gendocdir, prepender, linkHandler) jww.FEEDBACK.Println("Done.") return nil }, } func init() { gendocCmd.PersistentFlags().StringVar(&gendocdir, "dir", "/tmp/hugodoc/", "the directory to write the doc.") // For bash-completion gendocCmd.PersistentFlags().SetAnnotation("dir", cobra.BashCompSubdirsInDir, []string{}) }