Go to file
jolheiser 763d358701
Mention aliases
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2022-09-03 21:40:17 -05:00
examples Mention aliases 2022-09-03 21:40:17 -05:00
.gitignore Initial commit 2021-10-29 17:11:34 -05:00
LICENSE Initial commit 2021-10-29 17:11:34 -05:00
README.md Mention aliases 2022-09-03 21:40:17 -05:00
ffmd.go Add alias support 2022-09-03 21:32:49 -05:00
ffmd.tmpl Add alias support 2022-09-03 21:32:49 -05:00
go.mod Initial commit 2021-10-29 17:11:34 -05:00
go.sum Initial commit 2021-10-29 17:11:34 -05:00
tree.go Split examples and fix tree 2021-10-30 16:47:47 -05:00
tree_test.go Initial commit 2021-10-29 17:11:34 -05:00

README.md

ffmd

Go Reference

One of the things that I really liked about urfave/cli was that it could generate markdown docs for my commands.

With ffmd you can generate markdown docs for both flag.FlagSet and ffcli.Command (with any amount of sub-commands).

Check out examples for some sample generated docs.

Generate your docs

//go:build generate
// +build generate

package main

import (
	"os"
	
	"go.jolheiser.com/ffmd"
)

func main() {
	fi, err := os.Create("docs.md")
	if err != nil {
		panic(err)
    }
	defer fi.Close()

	// cmd is the ffcli.Command 
	md, err := ffmd.Command(cmd)
	if err != nil {
		panic(err)
    }
	
	if _, err := fi.WriteString(md); err != nil {
		panic(err)
    }
}

Aliases

While the stdlib doesn't directly support flag aliases, this library allows for neater generation using a special syntax.

package main

import "flag"

func main() {
	fs := flag.NewFlagSet("myapp", flag.ExitOnError)
	stringFlag := fs.String("string", "", "String flag")
	fs.StringVar(stringFlag, "s", *stringFlag, "--string")
}

In the above code, a second flag was registered with the special Usage that simply declared what the long-form flag name was.
In this scenario, ffmd will generate docs similar to

--string,-s

See the example.

License

MIT