You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Signed-off-by: jolheiser <john.olheiser@gmail.com> |
9 months ago | |
---|---|---|
examples | 9 months ago | |
.gitignore | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 9 months ago | |
ffmd.go | 9 months ago | |
ffmd.tmpl | 9 months ago | |
go.mod | 2 years ago | |
go.sum | 2 years ago | |
tree.go | 2 years ago | |
tree_test.go | 2 years ago |
README.md
ffmd
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.