Skip to content

Commit

Permalink
fileserver: Export BrowseTemplate
Browse files Browse the repository at this point in the history
This allows programs embedding Caddy to customize the browse template.
  • Loading branch information
mholt committed Aug 29, 2023
1 parent b7e472d commit ed8bb13
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
12 changes: 9 additions & 3 deletions modules/caddyhttp/fileserver/browse.go
Expand Up @@ -36,12 +36,18 @@ import (
"github.com/caddyserver/caddy/v2/modules/caddyhttp/templates"
)

// BrowseTemplate is the default template document to use for
// file listings. By default, its default value is an embedded
// document. You can override this value at program start, or
// if you are running Caddy via config, you can specify a
// custom template_file in the browse configuration.
//
//go:embed browse.html
var defaultBrowseTemplate string
var BrowseTemplate string

// Browse configures directory browsing.
type Browse struct {
// Use this template file instead of the default browse template.
// Filename of the template to use instead of the embedded browse template.
TemplateFile string `json:"template_file,omitempty"`
}

Expand Down Expand Up @@ -205,7 +211,7 @@ func (fsrv *FileServer) makeBrowseTemplate(tplCtx *templateContext) (*template.T
}
} else {
tpl = tplCtx.NewTemplate("default_listing")
tpl, err = tpl.Parse(defaultBrowseTemplate)
tpl, err = tpl.Parse(BrowseTemplate)
if err != nil {
return nil, fmt.Errorf("parsing default browse template: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion modules/caddyhttp/fileserver/command.go
Expand Up @@ -66,7 +66,7 @@ respond with a file listing.`,
Short: "Exports the default file browser template",
Example: "caddy file-server export-template > browse.html",
RunE: func(cmd *cobra.Command, args []string) error {
_, err := io.WriteString(os.Stdout, defaultBrowseTemplate)
_, err := io.WriteString(os.Stdout, BrowseTemplate)
return err
},
})
Expand Down

0 comments on commit ed8bb13

Please sign in to comment.