diff --git a/commands/gen.go b/commands/gen.go index 67aa7a896..3cb05927d 100644 --- a/commands/gen.go +++ b/commands/gen.go @@ -21,6 +21,7 @@ import ( "os" "path" "path/filepath" + "slices" "strings" "github.com/alecthomas/chroma/v2" @@ -60,6 +61,10 @@ func newGenCommand() *genCommand { See https://xyproto.github.io/splash/docs/all.html for a preview of the available styles`, run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error { + style = strings.ToLower(style) + if !slices.Contains(styles.Names(), style) { + return fmt.Errorf("invalid style: %s", style) + } builder := styles.Get(style).Builder() if highlightStyle != "" { builder.Add(chroma.LineHighlight, highlightStyle) diff --git a/testscripts/commands/gen.txt b/testscripts/commands/gen.txt index 092b4e129..2d57c8ec0 100644 --- a/testscripts/commands/gen.txt +++ b/testscripts/commands/gen.txt @@ -11,4 +11,6 @@ hugo gen man --dir manpages hugo gen chromastyles -h stdout 'Generate CSS stylesheet for the Chroma code highlighter' hugo gen chromastyles --style monokai -stdout '/\* LineHighlight \*/ \.chroma \.hl \{ background-color:#3c3d38 \}' +stdout 'Generated using: hugo gen chromastyles --style monokai' +! hugo gen chromastyles --style __invalid_style__ +stderr 'invalid style: __invalid_style__'